上游的Nginx错误超时(110:连接超时),而SSL握手到上游

时间:2018-06-12 19:57:42

标签: nginx timeout reverse-proxy http-status-code-504

我的项目中有三个docker容器:Nginx,tornado-app和DB。我的Tornado应用程序提供WebSocket应用程序(URL是/ clientSocket和/ gatewaySocket)和Django应用程序(URL是除WebSocket URL之外的所有内容)。我使用上游为Nginx提供龙卷风应用程序(在端口8000中运行)。我的项目在过去几个月里运行良好,没有任何错误,直到今天我从Nginx得到奇怪的504错误。这是我的Nginx配置文件:

limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s;
limit_req_zone $binary_remote_addr zone=sms:10m rate=1r/m;

upstream my_server{
    server web_instance_1:8000;  # tornado app
}

map $http_upgrade $connection_upgrade {
    default upgrade;
    ''      close;
}

server {
    listen      80;
    server_name server.com;
    return 301 https://$host$request_uri;
}

server {
    listen       443 ssl;
    server_name  server.com;
    ssl on;

    ssl_certificate /etc/nginx/ssl/chained.crt;
    ssl_certificate_key /etc/nginx/ssl/nginx.key;


    location / {
#        limit_req zone=one burst=5;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header Host $host;
        proxy_pass      https://my_server;
    }

    location /rest/register/gateway/phone_number {
        limit_req zone=sms burst=5;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header Host $host;
        proxy_pass      https://my_server;
    }

    location ~ /.well-known {
        root /var/www/acme;
        allow all;
    }

    location ~ ^/(admin|main-panel) {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header Host $host;
        proxy_pass      https://my_server;
    }

    location /gatewaySocket {
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $connection_upgrade;
        proxy_pass      https://my_server;
    }

    location /clientSocket {
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $connection_upgrade;
        proxy_pass      https://my_server;
    }
}

这里奇怪的上游超时错误:

2018/06/12 19:23:09 [error] 5#5: *154 upstream timed out (110:Connection timed out) while reading response header from upstream,client: x.x.x.x, server: server.com, request: "GET /admin/main/serverlogs/834591/change/ HTTP/1.1", upstream:"https://172.18.0.3:8000/admin/main/serverlogs/834591/change/",host:"server.com", referrer: "https://server.com/admin/main/serverlogs/"


2018/06/12 19:23:09 [error] 5#5: *145 upstream timed out (110:Connection timed out) while reading response header from upstream,client: x.x.x.x, server: server.com, request: "GET /robots.txtHTTP/1.1", upstream:"https://172.18.0.3:8000/robots.txt",host:"server.com"


2018/06/12 19:40:51 [error] 5#5: *420 upstream timed out (110:Connection timed out) while SSL handshaking to upstream, client:x.x.x.x, server: server.com, request: "GET /gatewaySocket HTTP/1.1",upstream: "https://172.18.0.3:8000/gatewaySocket",host:"server.com:443"

0 个答案:

没有答案