Apache + php_mod или fastcgi, а может Lighttpd. Об идеальной конфигурации.

12 3
D
На сайте с 05.06.2007
Offline
155
4802

Здравствуйте.

Меня давно мучает вопрос, как собрать комбинацию webserver + php + макс. безопастности + макс. производительности с разными аккаунтами.

Многое перечитал пользуясь гуглем, перепробовал и перетестировал.

Хотелось бы описать свои мысли и выводы. И может кто-то может подсказать лучшее решение.

Интересным остаётся тот факт - какую конфигурацию используют профессиональные хостеры для своих клиентов.

Берём только свежие на данный момент версии

Apache2.2.4 или

Lighttpd1.5(Betta) или

Nginx 0.5.23

+ PHP5.2.3

Вырианты: (все сровнения по отношению к первому варианту)

Apache2

1. prefork + mod_php самое поппулярное

+ очень быстрый

- запуск пхп от вебсервера(эт очень плохо, проблемы с безопастность при отключении safemode), достигаем безопастность так - (openbase_dir + disable shell functions + safemode OFF + правильная настройка прав к папкам)

- 7мб на процесс (бедный RAM)

- проблема нехватки памяти при больщом кол-ве запросов/процессов (вероятное решение - отключить KeepAlive, но теряем скорость + доп. нагрузка на CPU)

2. prefork + suphp

+ запуск пхп от владельца акаунта - хорошая безопастность, фтп и пхп работают оба от юзера

- производительность ухудшается в 5-10 раз (ужас)

3. prefork + php as fastcgi

+ процесс апача становится легче, около 1-2мб, т.к. пхп отдельный сервер принимающий запросы

- как быть с разными акаунтами, каждому запускать пхп-сервер? иначе нет безопастности, нельза указать openbase_dir :/

- вероятно время уходящее на отправление запроса к ПХП и получение ответа значимо и немного ухудшает скорость

4. prefork + php as fastcgi + suexec

Этот вариант мне неудалось настроить и понять принцип работы, возможно это та самая золотая середина..

5. prefork + mod_php + (mod_suid or mod_ruid ...)

или peruser-MPM + mod_php

Это впринцепи тот же вариан (1) за исключением того что процессы вебсервера запускаются от юзера установленного в вирт. хостах, что убирает некоторые минусы (1)-го варианта. Есть вероятность ухудшения производительности!

Эти варианты мне также неудалось толком настроить, например apache peruser вообще недоделанный модуль хоть и есть различные патчи.

lighttpd или nginx

Впринцепи это очень лёгкие и быстрые вебсервера которые используют пхп как fastcgi.

Есть варианты связки этих серверов с apache(для пхп), что даёт неплохую производительность. Но например для использования в хостинге только lighttpd необходимо каждому юзеру запускать пхп-fastcgi-сервер, тот же случай что и в пункте (3)

Вот впринцепи и всё, может кто-нибуть поделится своими (безопастными, рабочими и стабильными) реализациями? Всё же интересно как это настраивают профессиональные вебхостеры, неужели сами програмируют свои модули и патчи и не с кем не делятся ? =)

Написал не мало шедевров ;)
Roxis
На сайте с 19.11.2006
Offline
40
#1

1. самое производительное, безопасность конечно мала.

4. самое оптимальное отношение производительности и безопасности.

5. самое безопасное, но производительности мала.

ну и nginx как акселератор (хотя можно и апач настроить вместо этого) и для отдачи статики

Andreyka
На сайте с 19.02.2005
Offline
822
#2

Я работал с peruser - считаю что на данный момент это оптимальный вариант.

Производительность не страдает.

Не стоит плодить сущности без необходимости
Roxis
На сайте с 19.11.2006
Offline
40
#3

я тестировал mpm-itk для апача 2.2, производительность была намного меньше чем fastcgi

mustafa
На сайте с 28.10.2005
Offline
202
#4
Dimanych:
1. prefork + mod_php самое поппулярное

неделю назад при нагрузке в 150к уников загнулся апач при такой конфигурации :( Причем все что требовалось от апача (backend), это только подключаться к бегуну (php) и брать объявления - но таких процессов, как вы понимаете было много, что и приводило к эффекту ддоса... Не нашел ничего лучше, чем на си переписать модуль бегуна. Зато теперь проц при любом трафе загружен не более 3% :)

p.s. пробовал и eAccelerator и xcache - ничего не помогало, apache уходил в ступор через секунду после запуска.

D
На сайте с 05.06.2007
Offline
155
#5

С 1м вариантом мне всё понятно, сам его использую .. в день 3 милиона хитов, спасает только отключенный KeepAlive, nginx неиспользую

mustafa, Что за бегун(php) который был переписан? Вероятно у вас был включен KeepAlive и поэтому апач несправлялся?

Andreyka, Имеется ввиду этот патч? http://www.telana.com/peruser.php или http://home.samfundet.no/~sesse/mpm-itk/ или свой дописанный? Наскоько я знаю на сайте апача этот модуль недоделан. Я также читал что существует доп. опасность т.к. апа работает под рутом для смены uid, разве не так?

Roxis, можно ли реализовать этот вариант для большого числа юзеров без последствий? Тот ли это случай когда пхп-фастцги-сервера для юзеров не запущенны, а если появляется активность на каком то хосте то запускается фастцги для данного юзера и последующие запросы обрабатываются с лёгкостью, а по ненадобности сново отрубаются (например после минуты покоя)??

Andreyka
На сайте с 19.02.2005
Offline
822
#6
mustafa:

p.s. пробовал и eAccelerator и xcache - ничего не помогало, apache уходил в ступор через секунду после запуска.

Так не дело это апачевское - надо было конструктивно подойти к решению.

Roxis
На сайте с 19.11.2006
Offline
40
#7

4. mod_fcgid + suexec

Andreyka
На сайте с 19.02.2005
Offline
822
#8

peruser. itk несекурный.

Если сайты посещаемые - то fastcgi каждому. Если нет - mod_php

Roxis
На сайте с 19.11.2006
Offline
40
#9

по моим тестам peruser не намного быстрей mod_fcgid

Andreyka
На сайте с 19.02.2005
Offline
822
#10

Значит плохо собран peruser или хорошо fcgid :)

12 3

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий