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

Тайм-аут прокси Nginx при загрузке больших файлов

У меня странное поведение с Nginx. В моем случае Nginx действует как прокси для Jetty. Конфигурация ниже:

server {
    listen   80;
    client_header_timeout 3m;
    client_body_timeout 3m;
    send_timeout 3m;
    client_max_body_size 5M;
    server_name test.com www.test.com
    location / {
         auth_basic     "Restricted area";
         auth_basic_user_file   /etc/nginx/htpasswd;
         proxy_pass        http://localhost:8080;
         proxy_set_header  X-Real-IP $remote_addr;
         proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
         proxy_set_header  X-Forwarded-Proto http;
         proxy_set_header  X-Real-IP $remote_addr;
         proxy_set_header  Host $http_host;
         gzip on;
    }
}

При загрузке файла размером более 5M я получаю «таймаут шлюза». Загрузка процессора составляет 0%. Понятия не имею, что случилось. Это не связано со скоростью сети, потому что я тестирую это локально.

Если я пропущу прокси и попытаюсь загрузить файл на сервер приложений напрямую (я имею в виду: через порт 8080), все будет работать как шарм.

Любая идея ?? С уважением!

Вероятно, нужно увеличить время ожидания восходящего потока nginx. Попробуйте добавить ниже в свою исходную конф.

proxy_connect_timeout       600;
proxy_send_timeout          600;
proxy_read_timeout          600;
send_timeout                600;

Возможно, вам нужно изменить лимит на

 client_max_body_size 5M;

к чему-то вроде

 client_max_body_size 10M;