背景

背景

背景

我厌倦了 Slack 太贵,所以我决定用 Mattermost 代替它。我买了一个有公共 IP 的 AWS Ubuntu 盒子,然后按照 Mattermost 的步骤安装说明(主要区别在于我在同一台服务器上运行所有内容,而不是拥有单独的数据库服务器和存储服务器等。它们都在同一台机器上运行,即http://127.0.0.1

我的域名 (lobolabshq.com) 由维克斯,因此我添加了一个子域名:mattermost.lobolabshq.com

我在 AWS 机器上安装了 mattermost 服务器,然后设置 nginx 以将请求代理到 nginx 服务器。我的 nginx 代理配置存储在/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它返回此错误:

网络错误(tcp_error)

发生通信错误:“操作超时”Web 服务器可能已关闭、太忙或遇到其他问题,导致无法响应请求。您可以稍后再试。

分析/我已尝试过

mattermost 服务器在本地运行良好

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

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

我确实知道 nginx 运行良好,因为当我运行时curl http://localhostcurl http://127.0.0.1我也得到了相同的 mattermost 欢迎页面。

域指向 AWS 机器

我确实知道http://mattermost.lobolabshq.com还指向我的 aws box 公共 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 时,并没有看到这样的条目

答案1

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

相关内容