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