Dear All,
Помогите разобраться новичку, пожалуйста.
Связка из двух серверов, frontend+backend, два соляриса sparc 9.
На бэкенде Апач 1.3.37, на фронтенде всегда был Sun Proxy Server.
Sun Proxy Server это -
?
Под влиянием отзывов про nginx захотелось его поставить да проверить,
поставил со всеми настройками по умолчанию, как на
, только весь
контент на Апаче, nginx ничего с локального диска не отдает.
На фронтенде stub_status показывает нагрузку ~500 реквестов в секунду. Так
оно примерно и есть.
Так вот, если worker_processes делать много и worker_connections много (до
32*1024), мы получаем тормоза при работе, и сообщения в лог сыпятся
upstream timed out (145: Connection timed out) while connecting to upstream
...
а потом вообще серии
accept() failed (24: Too many open files) while accepting new connection on
0.0.0.0:80
Если же workers и connections ставить немного (от 2*128), получаем в лог
128 worker_connections is not enough while connecting to upstream
и опять же сайт отдается медленно.
Что самое интересное, независимо от количества worker_processes и connections
количество открытых соединений между Апачем и nginx-ом дорастает до 2000. В
то время как Sun Proxy всегда держит не более 300 и не тормозит.
Если Sun Proxy Server кэширует, то дело в этом.
nginx не поддерживает кэширования.
Настаривать нужно примерно так:
worker_processes 2;
events {
worker_connections 10240;
}
Ну и увеличить число дескрипторов на процесс.
А статику отдавать локально с диска, а не проксировать её на бэкенд.
Эту ситуацию надо специально отлаживать, или я просто что-то неправильно
накрутил?
Последний рабочий конфиг вот, я там пробовал всякие параметры менять, не
помогает.