Для картинок можно вычислять 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.