2017-03-04 50 views
2

我有一个用Go编写的简单HTTP服务器。如何使用nginx运行Go http服务器

在开发中它工作正常,但对于生产,这台服务器一次处理100个请求,我需要一个适当的Web服务器,如nginx。

我怎么能把它放在nginx后面?

+0

你尝试谷歌?如果是的话,请添加你尝试过的以及它没有工作的地方? –

+0

我没有找到简单直接的解决方案,因此我在这里发布它,因为我是这些服务器部署的新手。 –

+1

stdlib包含的“正确的Web服务器”多于一次能够处理100个请求。 – Danilo

回答

10

我猜你需要一个简单的反向代理配置。

比方说你走的HTTP服务器监听http://example.com:8080

server { 
    listen 80; 
    server_name example.com; 

    location/{ 
     proxy_pass http://example.com:8080; 
     proxy_set_header Host $host; 
     proxy_set_header X-Real-IP $remote_addr; 
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
     proxy_set_header X-Forwarded-Proto $scheme; 
     proxy_http_version 1.1; 
     proxy_set_header Connection ""; 
    } 
} 
+0

感谢这工作,只有一件事,当我在做req.remoteAddr我得到127.0.0.1不是正确的IP。 任何想法如何解决它? –

+0

寻找'X-Real-IP'头,我们在那里嵌入remoteaddr。 –

+1

我建议添加'proxy_http_version 1.1;'和'proxy_set_header连接“”;'启用keepalive。否则,您将为每个请求打开一个新连接。请参阅:http://nginx.org/en/docs/http/ngx_http_upstream_module.html#keepalive – snap