Re[9]: очень много клиентов
Igor Sysoev
is at rambler-co.ru
Sat Feb 18 18:02:57 MSK 2006
On Sat, 18 Feb 2006, Anton Maksimenkov wrote:
>>>> Для картинок можно вычислять root и отдавать их nginx'ом:
>>>> location ~* \.(gif|jpe?g|png)$ {
>>>> вычисление рута, исходя из $http_host
>>>> }
>>> Ок, я так сделал. Картинки отдаются nginx'ом путем приведенного выше
>>> блока, а остальное проксируется на апач. Результат опять плачевный:
>
> Кстати говоря, "делается" это, преодолевая следующий глюк: если
> сделать так
> location ~* \.(gif|jpe?g|png)$ {
> if ($http_host ~* ^(.+)\.domen\.ru.*$) {
> set $rootdir /var/www/domen.ru/$1/;
> }
> root $rootdir;
> }
> то nginx будет пытаться взять файлы типа
> /var/nginx/var/www/domen.ru/vasya/...
> ^^^^^^^^^^
Если при конфигурации nginx не видит в начале пути "/", то он считает
его относительным от корня nginx (--prefix=).
> Если поставить ещё один слэш
> root /$rootdir;
> ^
> то будет //var/www/domen.ru/vasya/..., то есть работает. Но глючок
> есть :-)
Так и должно.
> И ещё. Почему то такая батва наблюдалась когда НА ЛЮБОМ из описанных
> серверов стояло root $rootdir; (без слэша). То есть на одном из них
> стоит без слэша, а на другом со слэшом, но всё равно на нём глюк есть.
> МОЖЕТ БЫТЬ это было и потому что не успел перезапуститься nginx (по
> сигналу -HUP делал), когда я поставил слэш. Но после 15-20 секунд я
> подключался, глюк был. После того как НА ВСЕХ ОСТАЛЬНЫХ server{}
> поставил слэш, заработало...
Если на момент получения -HUP nginx держит keepalive соединения, то
по каждому из них может обработаться по одному запросу со старой
конфигурацией. После этого соединение закрывается.
>>> на большом трафике задержки. Тормоза, потом появляется страничка,
>>> потом картинки с большими задержками постепенно отдаются. Иногда
>> Судя по top, nginx'ы блокируются на диске. Нужно уменьшить worker_processes
>> до 1, а потом постепенно увеличивать и смотреть на трафик.
>
> с 1-м периодически пролетает:
> [crit] 6711#0: accept() failed (53: Software caused connection abort)
> while accepting new connection on X.X.X.X:80
Это нормальная ошибка - клиент закрыл соединение до того, как nginx
его принял.
> Довел до 4-х и worker_connections до 8192;, всё равно crit
> возникают, хотя реже.
> Я добавил worker_connections 8192; (хотя параметр и не описан) потому
> что предположил, что он задает кол-во одновременно обслуживаемых
> подключений... Но не уверен.
Есть ли изменения в скорости отадачи ?
> Поэтому прошу разъяснить в общих словах, из каких соображений
> настраивать и чего ожидать от worker_processes и worker_connections.
worker_processes:
http://www.lexa.ru/nginx-ru/msg02429.html
worker_connections:
можно ставить очень большим, например, 30000. Главное, чтобы в ядре
хватило файлов, сокетов и памяти.
Игорь Сысоев
http://sysoev.ru
More information about the nginx-ru
mailing list