ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re[9]: очень много клиен тов



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



 




Copyright © Lexa Software, 1996-2009.