Назад | Перейти на главную страницу

Истекло время ожидания восходящего потока (110: время ожидания соединения истекло) с nginx + Tomcat + Amazon EC2

На инстансе Amazon EC2 у нас работают nginx и Tomcat. Nginx передает все запросы Tomcat на порт 8080, запущенный на том же экземпляре.

Это работало нормально в течение дня, но затем начало видеть много upstream timed out (110: Connection timed out) ошибки в логах nginx и сайт был недоступен. Теперь 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;
        }

    }
}

Любые идеи были бы полезны.

Обновить: После перезапуска экземпляра сайт заработал. Я совершенно не понимаю, в чем проблема, но я буду следить за такими проблемами какое-то время.

Пожалуйста, используйте следующее для перенаправления:

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

Добавьте в свою конфигурацию следующее:

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

И оцените, или разместите результат здесь.