我运行的网站使用Django,Nginx,Gunicorn,Supervisord和fail2ban(只允许ssh,http和https)。 该网站是生活和正常工作,但有一些nginx错误日志条目涉及:
connect() failed (111: Connection refused) while connecting to upstream, client: xxxx, server: www.example.com, request: "GET /example/url/to/get/ HTTP/1.1", upstream: "http://[::1]:8000/example/url/to/get/", host: "www.example.com" upstream server temporarily disabled while connecting to upstream, client: xxxx, server: www.example.com, request: "GET /example/url/to/get/ HTTP/1.1", upstream: "http://[::1]:8000/example/url/to/get/", host: "www.example.com"
这是我的nginxconfiguration:
upstream app_server_wsgiapp { server localhost:8000 fail_timeout=0; } server { listen 80; server_name www.example.com; return 301 https://www.example.com$request_uri; } server { server_name www.example.com; listen 443 ssl; if ($host = 'example.com') { return 301 https://www.example.com$request_uri; } ssl_certificate /etc/nginx/example/example.crt; ssl_certificate_key /etc/nginx/example/example.key; ssl_session_timeout 1d; ssl_session_cache shared:SSL:50m; ssl_protocols TLSv1.1 TLSv1.2; ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA- AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM- SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM- SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128- SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256- SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA- AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128- SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256- SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256- SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3- SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES- CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA'; ssl_prefer_server_ciphers on; access_log /var/log/nginx/www.example.com.access.log; error_log /var/log/nginx/www.example.com.error.log info; keepalive_timeout 5; proxy_read_timeout 120s; # nginx serve up static and media files location /static { autoindex on; alias /static/path; } location /media { autoindex on; alias /media/path; } location / { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_redirect off; if (!-f $request_filename) { proxy_pass http://app_server_wsgiapp; break; } } }
我在Gunicorn日志中没有任何错误。
就像我说的,该网站正常工作。 但我不想忽略错误日志,以后可能会成为一个更大的问题。
这可能是因为你的系统是双栈的,但是你的上行是IPv4吗?
它看起来好像localhost是解决[::1] ,这取决于你的上游可能是本身的问题。
鉴于你通过回送进行通信,我倾向于认为Connection refused是“真实的” – 这是实际问题的反映。
您可以通过在上游configuration中将127.0.0.1replace为localhost来检查是否存在问题:
upstream app_server_wsgiapp { server 127.0.0.1:8000 fail_timeout=0; }
我得到了以下nginx error.log通过取代上游本地主机到127.0.0.1得到解决。 对于同一个调用,我在access.log中获得了一个成功的条目,并在error.log中拒绝了连接。 非常感谢帮忙。
2017/08/15 16:41:27 [error] 17337#0:* 382749 connect()失败(111:Connection refused)连接上游时,client:10.10.xx.xx,server:test.myhost.com,请求:“GET / test / relaystate HTTP / 1.1”,上游:“ http:// [:: 1]:8800 / test / relaystate ”,主机:“test.myhost.com”