Читал кучу обзоров, сравнений, статей, и просто холиворов на тему что лучше apache+mod_php или nginx+apache+mod_php или таки nginx+php-fpm. Пришел к выводу что последняя связка смотрится немного удобнее и выгоднее.
Отсюда вопрос, так как я с php-fcgi близко дела не имел - нужно ли как-то специально писать код для него? В статьях, которые я читал, попадались обрывки фраз что "ничего менять не нужно", но хотелось бы услышать четко
Спасибо!
Спустя 12 дней, 12 часов, 54 минуты, 39 секунд (27.04.2011 - 19:07) liw написал(а):
Я конечно понимаю что тема уже наверное не актуальна, но всё же оставлю тут запись, вдруг кто прийдёт из поиска.
Да действительно менять ничего не нужно.
Единственное по умолчанию ошибки валятся в лог а не в браузер. И nginx любит выдавать 502 при косяках FPM.
Не думаю что будет ощутимое увеличение производительности - если достаточно ресурсов было апачу.
Встречный вопрос: на сколько увеличилась производительность, - если уже перешёл, и если вообще замерял конечно?
Да действительно менять ничего не нужно.
Единственное по умолчанию ошибки валятся в лог а не в браузер. И nginx любит выдавать 502 при косяках FPM.
Не думаю что будет ощутимое увеличение производительности - если достаточно ресурсов было апачу.
Встречный вопрос: на сколько увеличилась производительность, - если уже перешёл, и если вообще замерял конечно?
Спустя 3 часа, 11 минут, 25 секунд (27.04.2011 - 22:19) kirik написал(а):
Цитата (liw @ 27.04.2011 - 12:07) |
на сколько увеличилась производительность, - если уже перешёл, и если вообще замерял конечно? |
На продакшене ещё апач стоит, а локально проводил синтетические тесты с помощью ab (apache benchmark). При небольшом количестве запросов (100, при 10 конкурентных) разницы никакой нет. Чем больше запросов, тем больше начинает выигрывать fpm; как по скорости так и по памяти. Там где apache создает под 50 воркеров (если поставить ограничение в конфиге, то он тупо не сможет обслужить всех) и при этом отдает страницу с 2х секундной задержкой, php-fpm работает при 10 воркерах и отдаёт страницу как будто бы и нет никакой нагрузки. Вобщем по тестам fpm круче. Как запущу на основном сервере, отпишу сюда результаты.
Спустя 1 час, 9 минут, 32 секунды (27.04.2011 - 23:28) Arni написал(а):
На тестовый сервер поставил и то и другое. Связка nginx+php-fpm чувствительна к утечкам памяти из за незакрытых соединений с базой данных , или просто банальное нежелание уничтожать переменные или объекты, которые жрут память по взрослому. Проще говоря, то на что можна забить в пхп как модуль апаче, нельзя игнорировать в php-fpm. Также, бяка с ЧПУ. Ибо .htaccess упс, нету. Можна сделать, если всетаки запустить апача через прокси, nginx как на передовую. Выиграш будет ли? Еще какой! Но, это все еще в тесте, и торопиться не стоит. И я уверен что апача списывать тоже не стоит. Ну не дураки же они. И не зря они приутихли. Я уверен они ощутили дыхание конкурентов в затылок, (а в целом то ктоего знает, может в затылок уже дышит и сам апаче великий.), потому, есть вероятность что разработчики апаче ответят nginx не хуже. В любом случае привязка к формату .htaccess в данный момент настолько сильна, что рискнуть не предоставить такую возможность клиенту, врятли позволит себе хоть один хостер провайдер. И вам спешить не советую.
Спустя 6 часов, 23 минуты, 25 секунд (28.04.2011 - 05:52) liw написал(а):
Arni
Спешить? Да уже море серверов под nginx крутится.
Привязка к .htaccess нужна только для shared хостинга. Nginx для других целей, и тем кто им пользуется нафиг не нужен .htaccess.
С ЧПУ - проблемы? - да с чего бы. - Ниразу не слышал о невозможности перенести .htaccess apache в конфиг nginx.
Правда обычно как раз из за нежелания с ним возиться apache остаётся на backend - тут конечно действительно удобно, практически ничего не меняя ставить nginx впереди.
Исключение составляют сервера, где что то жёстко привязано к модулям апача конечно.
kirik
Хорошо спасибо буду знать, ибо nginx то стоит давно, а вот тестов не проводил, ибо сейчас всего с запасом, и я думаю тут и apache бы легко тянул.
Встречал где то тест, в котором сравнивались apache 1.x, 2.x mod_apache,fastcgi nginx + fpm
так вот там, всё шло примерно поровну (про расход памяти при этом не скажу, не помню) (жаль сейчас ссылку уже не найду)
Спешить? Да уже море серверов под nginx крутится.
Привязка к .htaccess нужна только для shared хостинга. Nginx для других целей, и тем кто им пользуется нафиг не нужен .htaccess.
С ЧПУ - проблемы? - да с чего бы. - Ниразу не слышал о невозможности перенести .htaccess apache в конфиг nginx.
Правда обычно как раз из за нежелания с ним возиться apache остаётся на backend - тут конечно действительно удобно, практически ничего не меняя ставить nginx впереди.
Исключение составляют сервера, где что то жёстко привязано к модулям апача конечно.
kirik
Хорошо спасибо буду знать, ибо nginx то стоит давно, а вот тестов не проводил, ибо сейчас всего с запасом, и я думаю тут и apache бы легко тянул.
Встречал где то тест, в котором сравнивались apache 1.x, 2.x mod_apache,fastcgi nginx + fpm
так вот там, всё шло примерно поровну (про расход памяти при этом не скажу, не помню) (жаль сейчас ссылку уже не найду)
Спустя 1 час, 2 минуты, 36 секунд (28.04.2011 - 06:54) kirik написал(а):
Цитата (liw @ 27.04.2011 - 22:52) |
про расход памяти при этом не скажу |
Расход для одного процесса не сильно разнится, но количество воркеров у апача больше, при более медленном обслуживании. Я не знаю в чем именно разница, может быть fpm более грамотно распределяет задачи между воркерами.
Но опять, синтетический тест это не есть настоящая нагрузка..
Arni
htaccess это одновременно и плюс и минус: плюс - есть возможность realtime настройки, минус - скорость работы конфигурации, прописанной в htaccess гораздо ниже чем тоже, но прописанное напрямую в конфиг апача.
Как уже сказал liw для шаред хостинга прокатит, а для своего сервера держать апач только ради htaccess - роскошь. Тем паче конфиг nginx намного более гибкий чем апачевский (и еще есть куча полезных плюшек типа ресайза картинок и кэширования оных на определённое время).
Цитата (Arni @ 27.04.2011 - 16:28) |
Связка nginx+php-fpm чувствительна к утечкам памяти из за незакрытых соединений с базой данных , или просто банальное нежелание уничтожать переменные или объекты, которые жрут память по взрослому. |
Можно в конфиге прописать чтобы воркер перезапускался после n операций, тогда память будет возвращаться. Но конечно, всегда стоит следить за расходом памяти (unset, *_free_result).
Цитата (Arni @ 27.04.2011 - 16:28) |
есть вероятность что разработчики апаче ответят nginx не хуже |
Будет ответ, будем тестить его Кстати lighttpd тоже шустрый, но у nginx больше фишек на борту.
Спустя 3 часа, 2 минуты, 30 секунд (28.04.2011 - 09:57) Arni написал(а):
Цитата (liw @ 28.04.2011 - 02:52) |
Спешить? Да уже море серверов под nginx крутится. Привязка к .htaccess нужна только для shared хостинга. |
Да верно, и на наших серверах тоже стоит nginx, но в связке с апаче, ибо не могу еще отказаться от его присутствия. И многие еще очень многие не смогут себе это позволить. Причину я уже озвучил выше. Аналог мод реврайт в nginx конечно же есть. Но правила эти пишутся в конфиге хостов. Вы дадите всем кому не лень там поковыряться? Вот именно что нет. Если сервер ваш, и вы хотите что-то заточить под свои нужды то вам никто в этом не помешает. А вот на хостинге, такого вам сделать не дадут. Ибо нефиг.