|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Andrey Ostanovsky 2:5030/1957 16 Jun 2006 14:12:48 To : Oleg Gawriloff Subject : Диагностика высокой утилизации CPU апачем -------------------------------------------------------------------------------- 16 Jun 06 10:39, you wrote to me: AO>> Значит пора переходить на схему фронтенд-бакенд, где апач будет AO>> бакендом. По опыту - раньше на сервере одновременно работало AO>> 60-80 копий апача и все задыхалось, после перехода на связку AO>> nginx-apache соотношение стало 2-15 и производительность, на AO>> глаз, возросла процентов на 20. OG> Да, будет следующим шагом. Апач без прогруженного Mod_php выкушивает OG> 7Мб, с прогружженым 16Мб. Что не есть хорошо. Будем делать для начала: Только не надо ставить апача на фронтенд - выигрыш будет очень небольшой. Ставь сразу nginx из портов. OG> http://linuxgazette.net/123/vishnu.html Один момент меня смущает: Hа OG> этом апаче около 100 name-based виртуальных хостов, с Hу и что? В конфиге nginx можно сделать примерно такую конструкцию: server { listen external_ip:80 default; location / { limit_rate 6000; proxy_pass http://127.0.0.1:80/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } # end of server section Таким образом все соединения, пришедшие на external_ip будут проброшены на внутреннего апача. Это начальный этап, при котором уже можно начинать работать. Единственная серьезная грабля - у внутреннего апача все клиенты будут приходить с адреса external_ip - это беда любой связки. Если мы добавляем в конфиг внутреннего апача: LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined LogFormat "%{X-Real-IP}i %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined2 и указываем типа лога для виртуалхоста "combined2" мы частично снимем проблему, т.е., в логах будут видны внешние адреса, но, например, механизмы ограничения доступа через .htaccess на внутреннем - работать не будут, что, вообще говоря, правильно, т.к., ограничивать надо на фронтенде. А дальше, у меня, например, в конфиг nginx добавлена строка # # *********** virtual host files from ./Include directory ************ # include v_include.nginx; В этом файле перечислены конфиги для виртуалхостов. ==== v_include.nginx ==== # 2006-06-08 include ./Includes/a01.conf; include ./Includes/a02.conf; include ./Includes/a03.conf; include ./Includes/a04.conf; include ./Includes/a05.conf; ========================= Сами конфиги содержат описание "server" по образу и подобию приведенного выше, только без слова default: server { server_name .a01.ru; listen external_ip:80; # limit_rate 9000; charset windows-1251; include ng_aliases.conf; location ~* ^/images/.+\.(jpg|jpeg|gif|png|swf)$ { root /path/to/virtualhost/root/; expires 10d; access_log off; } location / { proxy_pass http://127.0.0.1:80/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } # end of server config Эти секции можно добавлять по одной уже "на ходу" и практически незаметно для клиента. OG> переопределенными DocumentRoot, как это внести в апач для статического OG> контента? Плодить там же схему с виртуальными хостами очень не OG> хочеться, поддерживать потом трудно будет (при прописывании и удалении OG> сайта). Есть ли решения? Как вариант может быть mod_vhost_alias на OG> статическом, и ничего не менять на динамическом, но имхо криво. Проще скрипт для синхронизации написать.:) Andrey --- GoldED+/BSD 1.1.5 * Origin: PGP KeyID 2ABEC67A andrey @ ostanovsky. spb. ru (2:5030/1957) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор Архивное /ru.unix.bsd/286044928915.html, оценка из 5, голосов 10
|