nginx + Tomcat + Amazon EC2 上游超时(110:连接超时)

nginx + Tomcat + Amazon EC2 上游超时(110:连接超时)

在 Amazon EC2 实例上,我们运行着 nginx 和 Tomcat。Nginx 将所有请求代理到同一实例上运行的端口 8080 上的 Tomcat。

运行了一天,一切正常,但之后 nginx 日志中出现大量 upstream timed out (110: Connection timed out)错误,网站无法访问。现在 Tomcat 可以在端口 8080 上正常访问。所以问题似乎出在 nginx 和 Tomcat 之间。

看起来是这样nginx.conf的,

worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    server {
        listen       80;
        server_name  domainname.com;
        rewrite ^/(.*) http://www.domainname.com/$1 permanent;
    }

    server {
        listen       80;
        server_name  www.domainname.com;
        location / {
            proxy_set_header X-Forwarded-Host $host;
            proxy_set_header X-Forwarded-Server $host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass http://127.0.0.1:8080;
            proxy_read_timeout 120;
            proxy_connect_timeout 120;
        }

    }
}

任何见解都会有帮助。

更新: 重启实例后,网站开始工作了。我完全不知道问题出在哪里,但我会监控一段时间,看看是否有这样的问题。

答案1

请使用以下方式进行重定向:

server {
    listen       80;
    server_name  domainname.com;
    return 301 $scheme://www.$server_name$request_uri;
}

将以下内容添加到您的配置中:

error_log /var/log/nginx/error.log debug;

并评估,或在此发布结果。

相关内容