On 14.05.2015 15:57, denis wrote:
> Иногда приходится слышать (и видеть) - "поставили nginx, всё стало
> тормозить". Напрямую запросы быстрые, после включения nginx В режиме
> proxy_pass (статики тоже, ибо с другого сервера) - ощутимо медленнее,
> time curl подтверждает, например 5с против 0.3
>
> Как диагностировать такие случаи?
Смотреть в логи nginx, там будет написано для каких файлов
"an upstream response is buffered to a temporary file".
Чтобы не было двойной буферизации статики - надо настроить
отдачу этих файлов напрямую через nginx или через возврат
X-Accel-Redirect со стороны апача.
Возможно пригодится https://github.com/defanator/mod_aclr2
Если это nginx на frontend, за которым стоит много бекендов
в виде nginx + php-fpm, тогда имеет смысл на самом первом
nginx сделать:
# If you want nginx to don't touch disk, use
# This will still allow in-memory buffering and wouldn't touch disk.
proxy_max_temp_file_size 0;
# proxy_buffering off;
- он тогда вообще не будет блокироваться на дисковых операциях.
Возможно на nginx не хватает воркеров, а те что есть -
блокируются на дисковых операциях. Тогда может помочь
увеличение количества воркеров или использование
http://nginx.org/en/docs/http/ngx_http_core_module.html#aio
в режиме aio threads
Если на nginx используется SSL - имеет смысл включить
http://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_session_cache
- будет работать быстрее. Если к ssl включить spdy - тогда еще быстрее.
--
Best regards,
Gena
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru