Re: Настройка протокола FastCGI для high load
Валентин Бартенев
vbart на nginx.com
Вт Ноя 6 12:52:19 UTC 2018
On Tuesday 06 November 2018 06:25:36 kseleznyov wrote:
> Добрый день!
>
> Проблема такая. Мы используем библиотеку libfcgi. Она популярная, хорошо про
> тестированная и т.д. и т.п., но... она не поддерживает переиспользование
> соединений. Может быть посоветуете другую библиотеку для c++?
>
> Если же использовать libfcgi, то поясню свой предыдущий вопрос. Допустим
> nginx уже открыл N соединений FastCGI и по каждому из них уже обрабатывается
> FastCGI-запрос. Допустим приходит ещё один HTTP-запрос и у nginx есть три
> пути: либо открывать ещё одно FastCGI-соединение для обработки нового
> HTTP-запроса, либо откладывать этот HTTP-запрос (пока не отработает один из
> N запросов), либо вообще возвращать ошибку. Как поступает nginx? Какие
> настройки на это влияют?
>
1. nginx по умолчанию _всегда_ открывает новое соединение. И это
должно работать с libfcgi без проблем.
2. Если вы настроили keepalive (http://nginx.org/r/keepalive/ru),
то при наличии свободного соединения (в котором не обрабатывается
запрос) - будет использоваться это соединение, в противном случае
открываться новое.
3. Если вы установили параметр max_conns у директивы server, то при
превышении данного значения nginx будет пытаться выбрать другой
сервер, а при неудаче - возвращать ошибку.
4. Откладывать nginx умеет только в коммерческой версии с помощью
директивы queue (http://nginx.org/r/queue/ru).
--
Валентин Бартенев
Подробная информация о списке рассылки nginx-ru