如何使nginx服务公共ip

背景

我厌倦了太贵,所以我决定用mattermostreplace它。 我得到了一个带有公共IP的AWS ubuntu盒子,并遵循了mattermost 安装说明 (主要的区别是我在同一台服务器上运行所有的东西,而不是单独的数据库服务器和存储服务器等等。所有运行在同一台机器上,即http://127.0.0.1 )

我的域名(lobolabshq.com)由wixpipe理,所以我添加了一个子域名: mattermost.lobolabshq.com

我在AWS框中安装了mattermost服务器,然后设置nginx将请求代理到nginx服务器。 我的nginx代理configuration存储在/etc/nginx/sites-available/mattermost ,如下所示:

 upstream backend { server 127.0.0.1:8065; } proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=mattermost_cache:10m max_size=3g inactive=120m use_temp_path=off; server { listen 80; server_name mattermost.lobolabshq.com; location /api/v3/users/websocket { proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; client_max_body_size 50M; proxy_set_header Host $http_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_set_header X-Frame-Options SAMEORIGIN; proxy_buffers 256 16k; proxy_buffer_size 16k; proxy_read_timeout 600s; proxy_pass http://backend; } location / { client_max_body_size 50M; proxy_set_header Connection ""; proxy_set_header Host $http_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_set_header X-Frame-Options SAMEORIGIN; proxy_buffers 256 16k; proxy_buffer_size 16k; proxy_read_timeout 600s; proxy_cache mattermost_cache; proxy_cache_revalidate on; proxy_cache_min_uses 2; proxy_cache_use_stale timeout; proxy_cache_lock on; proxy_pass http://backend; } } 

问题

当我去http://mattermost.lobolabshq.com它返回这个错误:

networking错误(tcp_error)

发生通信错误:“操作超时”Web服务器可能closures,太忙或遇到其他问题,无法响应请求。 你不妨在稍后再试一次。

分析/我曾经试过

mattermost服务器在本地运行正常

我知道我的mattermost服务器在本地运行得很好,因为根据我运行curl http://127.0.0.01:8065时的文档 ,它将返回mattermost欢迎页面

nginx服务器成功地将请求重新路由到:80端口

我知道nginx运行良好,b / c运行curl http://localhostcurl http://127.0.0.1我也得到相同的mattermost欢迎页面。

域指向AWS机器

我知道http://mattermost.lobolabshq.com也指向我的aws框公共ip:

 dig mattermost.lobolabshq.com ; <<>> DiG 9.8.3-P1 <<>> mattermost.lobolabshq.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 62124 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;mattermost.lobolabshq.com. IN A ;; ANSWER SECTION: mattermost.lobolabshq.com. 1800 IN A 54.165.78.199 

netstat输出

 sudo netstat -anp | grep tcp tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1803/nginx -g daemo tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1134/sshd tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN 1249/postgres tcp 0 0 172.31.50.32:22 185.81.141.147:54411 ESTABLISHED 1860/sshd: ubuntu [ tcp 0 72 172.31.50.32:22 185.81.141.147:60344 ESTABLISHED 1603/sshd: ubuntu [ tcp6 0 0 :::22 :::* LISTEN 1134/sshd tcp6 0 0 :::8065 :::* 

外部的请求是不是让它ngix

当我在本地运行curl localhost本地我的nginx访问日志得到更新:

 127.0.0.1 - - [18/Jan/2017:06:41:09 +0000] "GET / HTTP/1.1" 200 2246 "-" "curl/7.47.0" 

但是当我从浏览器打到mattermost.lobolabshq.com时,我没有得到这样的条目

我只需更新我的aws盒子所属的安全组,并允许端口80上的所有传入TCP连接正常工作