Рейтинг:2

почему тайм-аут nginx?

флаг ro

Вот моя конфигурация nginx, связанная с тайм-аутом:

http {

...

proxy_read_timeout 300;
proxy_connect_timeout 300;
proxy_send_timeout 300;

...

}

и моя настройка обратного прокси:

восходящий узел {
        сервер 127.0.0.1:2200;
}

сервер {
  слушать 80;
 
  место расположения / {
        прокси_пароль http://узел;
    }
}


Я отправляю запрос на свой веб-сервер, и время ожидания nginx истекает через 1 минуту со следующим сообщением:

16.07.2021, 14:35:42 [ошибка] 881124#881124: *14744 истекло время ожидания восходящего потока (110: время ожидания соединения истекло) при чтении заголовка ответа восходящего потока, клиент: 172.68.144.214, сервер: , запрос: "POST / photos/download_photos HTTP/1.1", восходящий поток: "http://127.0.0.1:2200/photos/download_photos", хост: "myhost.com", реферер: "https://myhost.com/"

Вывод судо nginx-T :

nginx: синтаксис файла конфигурации /etc/nginx/nginx.conf в порядке
nginx: проверка файла конфигурации /etc/nginx/nginx.conf прошла успешно
# файл конфигурации /etc/nginx/nginx.conf:
www-данные пользователя;
рабочие_процессы авто;
pid /run/nginx.pid;
включить /etc/nginx/modules-enabled/*.conf;

События {
        worker_connections 768;
        # multi_accept on;
}

http {

        ##
        # Основные настройки
        ##

        отправить файл включен;
        tcp_nopush включен;
        tcp_nodelay включен;
        keepalive_timeout 65;
        типы_хэш_макс_размер 2048;
        # server_tokens off;

        # server_names_hash_bucket_size 64;
        # server_name_in_redirect off;

        client_max_body_size 100 м;
        включить /etc/nginx/mime.types;
        default_type application/octet-stream;

        ##
        # Настройки SSL
        ##

        ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # Удаление SSLv3, ссылка: POODLE
        ssl_prefer_server_ciphers включен;

        ##
        # Настройки ведения журнала
        ##

        журнал_доступа /var/log/nginx/access.log;
        журнал_ошибок /var/log/nginx/error.log;

        ##
        # Настройки Gzip
        ##

        gzip включен;

        # gzip_vary on;
        # gzip_proxyed любой;
        # gzip_comp_level 6;
        # gzip_buffers 16 8k;
        # gzip_http_version 1.1;
        # gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

        ##
        # Конфигурации виртуального хоста
        ##

        включить /etc/nginx/conf.d/*.conf;
        включить /etc/nginx/sites-enabled/*;

        proxy_read_timeout 300;
        proxy_connect_timeout 300;
        proxy_send_timeout 300;
}


#почта {
# # См. пример сценария аутентификации по адресу:
# # http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript
#
# # auth_http localhost/auth.php;
# # pop3_capabilities "TOP" "USER";
# # imap_capabilities "IMAP4rev1" "UIDPLUS";
#
# сервер {
# слушать localhost:110;
# протокол pop3;
# прокси включен;
# }
#
# сервер {
# слушать localhost:143;
# протокол imap;
# прокси включен;
# }
#}

# файл конфигурации /etc/nginx/modules-enabled/50-mod-http-image-filter.conf:
модули загрузки_модуля/ngx_http_image_filter_module.so;

# файл конфигурации /etc/nginx/modules-enabled/50-mod-http-xslt-filter.conf:
модули load_module/ngx_http_xslt_filter_module.so;

# файл конфигурации /etc/nginx/modules-enabled/50-mod-mail.conf:
модули load_module/ngx_mail_module.so;

# файл конфигурации /etc/nginx/modules-enabled/50-mod-stream.conf:
модули load_module/ngx_stream_module.so;

# файл конфигурации /etc/nginx/mime.types:

типы {
    текст/html html htm shtml;
    текст/CSS CSS;
    текст/xml xml;
    изображение/gif gif;
    изображение/jpeg jpeg jpg;
    приложение/javascript js;
    приложение/атом+xml атом;
    приложение/rss+xml rss;

    текст/математика ммл;
    текст/простой текст;
    текст/vnd.sun.j2me.app-дескриптор jad;
    текст/vnd.wap.wml wml;
    текст/x-компонент htc;

    изображение/png png;
    изображение/tiff tif tiff;
    изображение/vnd.wap.wbmp wbmp;
    изображение/значок x ico;
    изображение/x-jng jng;
    изображение/x-ms-bmp bmp;
    изображение/svg+xml svg svgz;
    изображение/веб-сайт;

    приложение/шрифт-woff woff;
    приложение/java-архив jar war ear;
    приложение/json json;
    приложение/mac-binhex40 hqx;
    документ приложения/msword;
    заявка/pdf pdf;
    приложение/постскриптум ps eps ai;
    приложение/rtf rtf;
    приложение /vnd.apple.mpegurl m3u8;
    приложение/vnd.ms-excel xls;
    приложение /vnd.ms-fontobject eot;
    приложение /vnd.ms-powerpoint ppt;
    приложение /vnd.wap.wmlc wmlc;
    application/vnd.google-earth.kml+xml кмл;
    application/vnd.google-earth.kmz кмз;
    приложение /x-7z-сжатый 7z;
    приложение /x-cocoa cco;
    приложение/x-java-архив-diff jardiff;
    приложение/x-java-jnlp-файл jnlp;
    запуск приложения /x-makeself;
    приложение/x-perl pl pm;
    приложение/x-pilot prc pdb;
    приложение /x-rar-сжатый rar;
    application/x-redhat-package-manager об/мин;
    приложение /х-море море;
    приложение /x-shockwave-flash swf;
    приложение /x-stuffit сидеть;
    приложение/x-tcl tcl tk;
    application/x-x509-ca-cert der pem crt;
    приложение /x-xpinstall xpi;
    приложение/xhtml+xml xhtml;
    приложение/xspf+xml xspf;
    приложение/zip-архив;

    приложение/октет-поток bin exe dll;
    приложение/октетный поток deb;
    приложение/октет-поток dmg;
    приложение/октетный поток iso img;
    приложение/октет-поток msi msp msm;

    приложение/vnd.openxmlformats-officedocument.wordprocessingml.document docx;
    приложение/vnd.openxmlformats-officedocument.spreadsheetml.sheet xlsx;
    приложение/vnd.openxmlformats-officedocument.presentationml.presentation pptx;

    аудио/миди мид миди кар;
    аудио/мпег мп3;
    аудио/огг огг;
    аудио/x-m4a m4a;
    аудио/x-realaudio ra;

    видео/3gpp 3gpp 3gp;
    видео/mp2t ц;
    видео/mp4 mp4;
    видео/mpeg mpeg mpeg mpg;
    видео/быстрое перемещение;
    видео/вебм вебм;
    видео/x-flv flv;
    видео/x-m4v m4v;
    видео/x-мнг мнг;
    видео/x-ms-asf asx asf;
    видео/x-ms-wmv wmv;
    видео/x-msvideo avi;
}

# файл конфигурации /etc/nginx/sites-enabled/reverse-proxy:
восходящий узел {
        сервер 127.0.0.1:2200;
}


сервер {
  слушать 80;
 # имя_сервера tools.tryandreview.com;

  место расположения / {
        прокси_пароль http://узел;
    }
}

Почему nginx не учитывает мои настройки? Или я что-то упускаю?

флаг us
Вы уверены, что ваше приложение узла возвращает ответ через пять минут?
флаг ro
Спасибо за ответ. Да.
флаг ro
И в любом случае время ожидания истекает через 1 минуту.
mforsetti avatar
флаг tz
`ETIMEDOUT` или ошибка № 110 возникает, когда [клиент не может подключиться к сокету через определенное время](https://man7.org/linux/man-pages/man2/connect.2.html#ERRORS ). вы уверены, что ваш узел прослушивает `127.0.0.1:2200`? попробуйте `curl`-ing к вашему приложению node.
флаг ro
Он отлично работает для запросов, которые не занимают больше минуты, поэтому я уверен, что узел слушает.
флаг ro
Может ли это быть как-то связано с авторизацией пользователя, т.е. sudo vs non sudo? Мне всегда приходится использовать sudo для редактирования conf и/или печати nginx -T и т. д.
флаг in
Я думаю, вы пропустили один таймаут `send_timeout 300s;`
djdomi avatar
флаг za
Для Duplicity мне нужно было использовать `proxy_connect_timeout 600; proxy_send_timeout 600; proxy_read_timeout 600; send_timeout 600;` также может быть хорошей идеей использовать memcached для кэширования некоторых запросов, если хотите `set $memcached_key "$uri?$args"; memcached_pass 127.0.0.1:11211; будет хорошим вариантом для решения таких проблем с ответом
djdomi avatar
флаг za
я также нашел другую конфигурацию perl nginx `client_header_timeout 3600; client_body_timeout 3600; fastcgi_read_timeout 3600;`
mforsetti avatar
флаг tz
[`proxy_connect_timeout`](https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_connect_timeout) имеет жесткое ограничение в 75 секунд, но если более короткие запросы подходят, то фаза `connect` должна подойти, На этапе `чтения` могут возникнуть проблемы. попробуйте запустить с `error_log debug` и посмотрите, что получится до истечения времени ожидания.
Рейтинг:1
флаг in

Не хватает одного тайм-аута

send_timeout 300 с;

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.