Тайм-аут установки Nginx для dav_methods - PullRequest
2 голосов
/ 29 октября 2019

У меня есть экземпляр Nginx, который я использую в качестве кэша Bazel с конфигурацией ниже. Я хотел бы установить низкий (4 секунды) тайм-аут для запросов PUT (dav_methods).

http {
  ...
  # request timed out
  client_body_timeout 2;
  client_header_timeout 2;

  # server will close connection
  keepalive_timeout 5;

  send_timeout 1;

  gzip on;

  server {
    listen 80 default_server;
    server_name _;

    location ~ "<my regex>" {
      root <my dir>;
      dav_methods PUT;
      limit_except PUT GET { deny all; }
      create_full_put_path on;
    }
  }
}

С конфигурацией выше. Я никогда не вижу, чтобы GET время ответа на запрос превышало 2 секунды, но PUT запросы иногда занимают 30-80 секунд без истечения времени ожидания.

Я пропустил настройку?

1 Ответ

0 голосов
/ 08 ноября 2019

Это может помочь вам https://www.nginx.com/blog/tuning-nginx/

Особенно в разделе Limits ,

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

Также они могут помочь, если вы используете прокси

 fastcgi_read_timeout 3600s;
 proxy_connect_timeout       600;
 proxy_send_timeout          600;
 proxy_read_timeout          600;
 send_timeout                600;

https://nginx.org/en/docs/http/ngx_http_fastcgi_module.html#fastcgi_read_timeout

https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_connect_timeout

https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_read_timeout

https://nginx.org/en/docs/http/ngx_http_core_module.html#send_timeout

...