Это тоже конфиг спорный как по мне. Чем это лучше, нежели nginx+apahe/phpMOD, учитывая, что apache сам прекрасно работает как мультиплексор и процесс-менеджер? Или настроил как настроил, работает и ладно, локалка ж?
@Fell-x27 экспериментально. Но например на своем vasya.pro модуль. Это очень хорошо, что существует FastCGI для PHP. Но если нужно запускать CGI, например стандартную вебморду гита, то к nginx'у придется дополнительно устанавливать сервер приложений, поскольку всё что умеет nginx - отдавать статику и проксировать запросы.
Так не напрашивайся. Помочь с выбором очков ? Я даже не знаю как ответить чтобы ты проникся мои знанием и пониманием. PHP-FPM это менеджер процессов php-обработчиков, с возможностью плодить как статичные, так и динамичные. Для обработки множества запросов в реалтайме с поддержкой различных конфигураций. Убирая одинаковые nginx'ы с обоих сторон получаем менеджер процессов пыхи и apache с модом php. И принципиальная разница в том что apache является довеском со своим окружением, пусть и с уже загруженной конфигурацией под каждый форк. Он отъедает необходимый минимум ресурсов перед обработкой mod_php. В ситуации с php-fpm мы имеем чистый php процесс, пусть и с загрузкой конфигурации под каждый (что-то мне подсказывает что в динамическом режиме), но без прицепа. Тааак. Дичь подъехала. Ну-ка растолкуй разницу между голыми nginx и apache и обработку входящих соединений.
Нееет, это не принципиальная разница между связками. Я задал конкретный вопрос. Чем отличается принцип работы одной связки от другой. Ты мне начинаешь про отличия phpFPM и apache/phpMod. А речь не об этом. Хотя да, ты на верном пути. А я ничего не говорил про разницу между голыми apache и nginx, не включай демагогию. Я сказал, что твой ответ на вопрос "чем nginx лучше apache" - это херня. Тебе растолковать, почему ты ляпнул херню? Потому что: 1) Ты сказал, что nginx заменяет apache. Это херня. Nginx не способен заменить апач в полном смысле этого слова. Nginx не умеет в php и не способен обработать динамику. Следовательно...nginx-у нужен внешний интерпретатор. Таковым является что угодно, что может принять запрос на обработку php и вернуть ответ. Это может быть phpFPM. Это может быть phpCGI, это может быть apache/php_MOD, это может быть самописный обработчик на брейнфаке. При этом Nginx выступает в роли реверс-прокси и, соответственно, клиента для внешнего интерпретатора. 2) Ты сказал, что nginx лучше, чем apache, потому что он многопоточен. Это херня. Я с тем же успехом могу сказать, что apache лучше nginx, потому что apache/phpMod работает быстрее любой связки, а Nginx вообще лох не может в php. Но это тоже херня. Nginx не лучше Apache, а Apache не лучше Nginx. Это разные инструменты, заточенные под разные задачи. Apache заточен под максимально быструю обработку очереди, но дохнет на медленном клиенте, который забивает процессы статикой. Nginx заточен под максимально эффективную отдачу статики за счет этой самой многопоточности и очень легких процессов, но не умеет в php. Именно по этому, говорить, что Nginx лучше Apache в силу многопоточности - полная херня. И по этому ты ляпнул херню. Такие дела. Далее. Затраты ресурсов. phpFPM жрет, в среднем, всего на 2 метра памяти меньше, чем apache/phpMod. Надо говорить, что когда один процесс весит 10 метров, а другой 12 - то на разницу, в общем-то пофигу? Учитывая, что работают они с одинаковой скоростью, плюсминус? С огромной скоростью. Учитывая, что nginx снимает проблему медленного клиента, что апач, что фпм, работают как чертов пулемет. Но..с небольшой разницей. Apache умеет в рерайты-хренайты, прочие дефлейты, и вообще у него примочек не счесть. Можно даже одновременно держать на нем несколько интерпретаторов для разных языков, если они используются в проекте. Один процесс апача сожрет в одной очереди и php и python и небо со звездами и аллахом. Плюс .htaccess-ы, позволяющие творить чудеса. Отказываться от этого ради экономии 2 метров памяти - глупо. Ты знаешь сколько стоят 2 метра памяти? Вот вот. И да, очень многодохрена проектов активно юзают апачевые фичи. Если ты пилишь софт, который планируется на продажу в народ, ты тоже будешь юзать апачевые фишки, потому что апач как был, так и есть сервером, стоящим на первом месте в мире. Даже LiteSpeed не смог это обойти и его разрабы запилили совместимость с модулями апача и htaccess-ами. Единственное слабое место апача - выедание статикой. Но эта проблема раз и навсегда решается навешиванием nginx. Рядом, а не вместо. Это, вот бро, моя аргументация. Основанная на логике и фактах.
Ещё немного и можно написать статейку. Разница в форк/процесс. А кто-то говорил о полной замене ? nginx+php-fpm) Nginx перекрывает статику и проксирует в менеджер пышки. nginx+apache+mod_php) Nginx перекрывает статику и проксирует в апач, который форкает тредики с mod_php (давай за prefork расскажи). Как мы видим обе связки осуществляют задуманное. И в данном случае играет роль лишь производительность. Хотя я бы остерёгся сигфолта у процесса апача (под вопросом конечно, но думаю есть варик дропнуть все коннекты из-за одного). Затопило. Если ты не понял (а возможно понял из указанного выше), то я в итоге сравниваю связку и того и того и прихожу к выводу что сам по себе апач излишен. И все, бро. Убираем отсюда пышку и apache сдаёт. Ведь ничто не мешает добавить к nginx'у пышку, так же как и apache+mod_php добавить nginx. См. выше. Я понимаю твоё стремление доказать мне обратное и самоутвердится, но приведённые доводы (и факты от части) закидывают тебе за воротник программеры на производительность итогового приложения. Да, ты может покроешь своим тентаклевым монстром некоторые узкие моменты. Бро, мне казалось ты знаешь о чём говоришь. Я честно признаюсь, я не знаю все возможности конфигурации nginx'a и php-fpm, но могу с уверенностью сказать что 99% задач они решают ровно так же, если не лучше. Знаю, поэтому и берегу. Мне хочется привести аналогию с windows и linux, и ты понял к чему я клоню (надеюсь), но это будет не очень правильно. Я не делаю ставок на то что Apache/mod_php вымрет со временем, он занял свою нишу. И приводить какие-то статистические оценки достаточно глупо для этого рынка. --- Добавлено --- Там никто не осудит.
Демагогия же. С производительностью, повторюсь, проблем нет. Она на равных. Разница только в гибкости решений. Я понимаю, что мода, все такое, но эту моду поддерживают и форсят те, кто не совсем в теме. Слышут звон, не знают где он. phpFPM и Apache/phpMOD, по факту, работают по одинаковой схеме. Огосподи... Не добавляем к нджинксу пышку и он вообще не нужен, ведь ничто не мешает не убирать пышку из апача. М. Максимализм. Вся суть в том, что нет никакого Apache VS Nginx. Нет. Просто нет. Разные вещи. Одно не заменяет другое. Они не взаимоисключающие. Это не "тойота лучше форда, потому что у моего папы тойота, значит все, что не тойота говно". Люди, которые говорят, что "вместо апача юзаю нжинкс" - несут херню. Потому что нжинкс не вместо апача. Нжинкс надстраивается над апачем, и апач этого даже не заметит. Просто с этого момента его клиент будет всегда идеальным - требовать только динамику, да еще и не тупить с приемом ответа. В итоге каждый на своем месте. Вместо апача при этом может быть phpFPM или что-то еще. Но именно они, а не nginx. Но зачем? Суть еще в том, что, например, хоть ты и скипнул тот факт, что апачефичи юзаются повсеместно, но сам факт никуда не делся. Я могу взять любой быдлопресс или быдлоджумлу, у которых без апача половина модулей отвалятся или дырами пойдут, и легко развернуть на связке Nginx+apache. И все будут счастливы. Особенно заказчик. В то время как миграция на nginx+phpFPM может обернуться геморроем. Это тоже затраты. И они тоже куда больше, чем два метра памяти.
Отсутствует переносимость. Благодаря .htaccess, веб-приложение работает на любом сервере с apache+php_mod, или на специально сконфигурированном nginx+php_fpm. В php.ini полно директив, которые могут быть изменены в режиме PHP_INI_PERDIR, то есть через .htaccess в т.ч. Веб-мастеру не нужно выполнять работу сисадмина при установке приложения, а сисадмину не нужно вникать, какие настройки хоста можно оптимизировать, а какие необходимы для работы приложения. --- Добавлено --- Опять же Basic Authentication без Apache никак.
Мне реально тягостно отвечать на сообщения содержащие социальную подоплёку и я отвечу прямо, пусть и грубо. Берёшь свои фичи, свою джумлу с ворпрессом и, ну ты понял. Ты их кстати правильно окрестил, не в западло было в пример приводить ? Я понимаю как это по-пидорски, но не могу удержатся. Но если брать не грубо, то да, мы два почти одинаковых лагеря. Затравишь прохладную ? --- Добавлено --- Я лично использовал какой-то веб-сервис, который на уровне инвалида переносит некоторые вещи .htaccess <-> nginx conf Код (Text): fastcgi_param PHP_VALUE "somavalue=somekey" oh shi~ Что мешает вынести нужный конфиг nginx'а в страничку документации в пункт Installation нужного софта ? И никаких вниканий и лишней обработки файлов. Я правильно понял про аутентификацию ? Про вот этот логин/пароль да ? --- Добавлено --- Вношу икону и освящаю данную нить
Статичное отъедание памяти и производительность - это не одно и то же. Производительность это затраты процессорного времени на решение задачи. Кто быстрее, тот и производительнее. Память - это вспомогательный ресурс, да еще и очень дешевый. Медленная память влияет на производительность, да. Но если у тебя на производительность влияет ее объем, то у тебя проблемы уровнем повыше, чем выбор серверной архитектуры. И да, даже новый цельный_прям_вот_сервер стоит дешевле месяца работы программиста. Причем, порой в 2-3 раза, такие дела. Добро пожаловать в реальный мир, @Abyss. Без единорогов и розовых поней. Тут меркантильность, практичность, расчетливость разраба и жадность заказчика рулят балом, а не твои идеалы и вакуумные кони. Да нет никаких лагерей. Не дели ты мир на черное и белое, на злых и добрых. Нет никаких лагерей. Никто нам не платит за продвижение этих идей. Нет лидеров, нет подчиненных. "Лагери" - это у фанатиков, которые выбирают видеокарту по цвету логотипа, а не по отчетам тестировщиков, вкупе со здравым смыслом. Хватит мыслить лагерями, делить на своих и врагов. Все, что я хочу донести - это тот факт, что разницы в минус между двумя связками всего на 2 мегабайта оперативки. А разница в плюс коллосальна. Ты можешь придти к заказчику, у которого загибается сервак, просто накатить ему nginx поверх всей инфраструктуры, что есть, взять плату и уйти. И все будет волшебно. А можешь начать переводить это все на phpFPM, конвертить конфиги, латать появляющиеся дыры, а потом застрелиться. Чисто в материальном плане связка nginx+apache в разы рентабельней и экономичнее. Ее легко поддерживать, легко сопровождать. Ее можно поднять постфактум, у нее можно поменять реверс-прокси, если появится что-то более крутое. Ее, на худой конец, можно заменить на liteSpeed. И все это легко, просто, без потерь и боли. Я уже говорил, это вот все похоже на веганское, когда на людях "не ем мясо уже год, отлично себя чувствую", а дома "окей гугл, чем заменить такие-то протеины, но чтобы гормональный фон не перекосило?". phpFPM - это не ультимативный аналог apache/php_mod, пфф, бред. Он создавался не для этого. Все проще. У языка должна быть своя standalone-платформа. Потому что это самостоятельный язык, а не скриптовая пришлепка на апач. И у него есть своя платформа. phpFPM. Он умеет только две вещи - принимать запрос на обработку php-скрипта, и отдавать результат этой обработки. Более того, он тоже не взаимоисключает папач. Они тоже могут работать в паре. Это просто standalone-решение. А php_mod - это не standalone. Это модуль к системе, которая умеет больше, чем только принимать запрос на обработку скрипта. Причем, почти без издержек. Только и всего. Тут не за что "воевать" и формировать лагери. Тут просто надо прикинуть "за" и "против" обоих решений. Лично для меня "за" использование папачей под Nginx сильно перекрывают "против".
Ты в такие глубокие аналы заставляешь меня влезать, что я боюсь уже не вернутся. Значит по твоему на 1000 юзерах полоскать лишние 2 гига это ахуенно ? И дальше опять социальная хуета и выезды за счет старости апача. Парни, можно дальше не спорить, если вы не принимаете мою позицию отказа от социальных плюшек той или иной реализации. Если вам всё равно сколько даунов еще не переписало свой проект с прошлого века, то давайте по-существу. Я не понимаю почему ещё никто не вкинул бенчмарки.
@Abyss вообще я спросил, кто использует Apache, из-за бешеной популярности nginx+php_fpm у пхпшников. Типа тесты показывают, чтобы сайты на nginx грузятся быстрее. Но это происходит исключительно из-за статики. Apache+mod_php это не то же самое, что nginx+php_fpm, потому что модуль - это часть целого и он гораздо ближе к телу, чем отдельный демон. Здесь уже надо сравнивать не как nginx управляет процессами, а как это делает php-fpm в сравнени с apache. Хочешь бенчмарк, вот он http://slonik-v-domene.livejournal.com/141951.html
@[vs] А ты я смотрю любитель 2014 года ? Можешь начинать своё повествование. И что там с аутентификацией ?
А что php-fpm с тех пор обновился или апач стал хуже? mod_php не рождает отдельного процесса с отдельной памятью, он является частью процесса httpd. Для обмена данными между модулем и сервером не нужно задействовать сетевой интерфейс или unix-socket, не нужно копировать информацию - можно использовать указатели. Поэтому в записи "apache+mod_php", плюсик чисто условность, работают они как одно целое. А вот php-fpm подключается к nginx точно так же, как apache. Ты выбираешь куда бросить запрос, в fpm или к apache, и до сих пор не объяснил, почему выбираешь первое. Тебе с самого начала написали, что apche вместо php-fpm, а не вместо nginx. --- Добавлено --- базовая аутентификация надежно защищает от атаки на авторизацию в админки. На одном сайте с которым я работаю собирается статистика и отправляется раз в сутки в виде архива по WebDAV. И директория, в которую пишется файл, защищена этим методом. Базовую аутентификацию могут проходить даже функции file_get/put_contents с помощью stream_context_create().
За апач ничего не скажу, но тут привели статистику, видимо недавнюю. Иными словами проксирование в двигло апача с двиглом пыхи (единое целое, ага) дешевле чем проксирование в двигло пыхи, при условии что статику кушает nginx ? Или научились делить запросы о динамике/статике и одно направлять в апчу, другое в nginx (сверхбыстрая прослойка на аппаратном уровне, кстати, не удивлюсь) ? --- Добавлено --- Мы правильно друг друга поняли ?
В двигло пыхи? Так вот что тебя мучает. На самом деле и одно и другое является прослойкой между веб-сервером и бинарником PHP. В результате httpd дергает php, а вот nginx дергает отдельно стоящую прослойку, которая дергает php. Передача запроса в апач один в один как в fpm в конфиге nginx. и? htpasswd! Не создашь без апача)
То есть ты действительно думаешь, что 1000 пользователей поднимут тут же 1000 процессов папача, и тут же отожрут 2 гига? Серьезно? Очередь? Нет не слышал. В реальном мире, когда ты открываешь сайтик и он у тебя грузится, основное время загрузки приходится на статику. Пока ты думаешь, что сервер обрабатывает твой запрос, сервер успеет легко обработать еще пару-тройку сотен, пока у тебя догрузится страница. Да, даже если она грузится меньше секунды. Далее. Демагогия, бро. Откидываем общее, приписываем частное. Ты откидываешь абсолютные затраты памяти. Во-первых процесс того же phpFPM весит, в среднем 10 метров. Плюс работа PHP сколько-то да отъест. Ну пусть еще метров 5 в худшем варианте. В худшем по моим меркам. По меркам битрикса или джумлы - это нереально мало, но не суть. Итого, по твоей логике, каждый запрос стоит нам даже на phpFPM 15 метров в худшем варианте. То бишь, сраная тысяча пользователей у нас сожрет 15 гигов? Или ты действительно веришь, что мир идеален и тысяча пользователей идеально одновременно пошлет запрос? Спойлер: Лирическое отступление Я вот недавно тестил touch-api браузерное. Там, в общем, на каждом событии есть список пальцев, которые в нем участвуют. Хоть убей, ни разу не смог одновременно коснуться двумя пальцами так, чтобы они разом попали в список. Хотя мне казалось, что ну прям идеально одновременно касаюсь. Далее. Снова ты гонишь сферических коней. Товарищ дорогой, если у тебя такой проект, что у тебя такой поток посетителей, что, случаются ситуации, когда одновременно приходит 1000 запросов, то бишь это, по факту, несколько тысяч в секунду то: 1) Ты фейсбук. 2) У тебя свой датацентр. 3) Тебе плевать сколько стоит оперативка. По существу. Ты ляпаешь херню за херней. У тебя основной инструмент - демагогия. Теперь и оскорбления. А где аргументы? Я вот их тоннами привожу. VS их тоннами приводит. А ты нет. Давай по списку: 1) Почему nginx+apache является "из прошлого века"? 2) Чем phpFPM лучше? 3) Почему те, кто могут аргументировать свой ответ и пользуются здравым смыслом дауны, а ты - нет?
Ты походу доки так и читаешь, бегло и безмозгло. Дочитай до конца. Ну тут нас бенчмарк рассудит. Так что ты коней то не гони. Потому что ваши аргументы ноль или достаточно очевидные вещи, всё просто. Вообщем, жду бенч. Было бы классно даже стрим посмотреть. Но ты продолжай.
Все, раньше ты хотя бы пытался что-то говорить, теперь вообще укатился в сплошную демагогию. Первый демагогический страйк. Когда самолюбие начинает давить на горло, надо давить это самолюбие. Твоя гордость деструктивна и идет вперед логики. Не надо так. Что ж, еще две попытки. Вопросы те же. И ждем хоть какую-то аргументацию с твоей стороны. И да. Тебе были скинуты бенчмарки. Не нравятся? Окей. Ты постулируешь, что phpFPM прямбыстрее apache/phpMod? Тогда будь добр ты и подкрепи свой тезис. Обратная позиция - это тоже демагогический прием. Это плохо. И это не только я один терпеть не могу, уж поверь. --- Добавлено --- P.S. и завязывай с оскорблениями, тут тебе не подворотня. Это уже говорю как модератор. Серьезные вещи обсуждаем.
Давайте так, я в воскресение, в середине дня постараюсь запилить стрим на лайв еду, там реализую бенчмарк между apache и php-fpm. Там всё станет понятно и светло и без демагогии. Спойлер: тратата Если ты ещё не понял, то мы уже всё обсудили и ты сам сделал выводы, в одном из начальных сообщений. Дело производительности, на которую ты не привёл тестов. И что ты хотел дальше обсуждать ? --- Добавлено --- Давай горчичник, странно что ты так долго к этому шёл. И кстати, где я кого-то оскорбил ?
Из такого простого вопроса развели такой бесполезный холивар... . Ну нет достаточного опыта использования конкретной связки, ну как доказать такому оппоненту её преимущество? Это как объяснять разработчику интернет-магазинов на opencart преимущества микросервисной архитектуры: вы всё-равно проиграете. З.Ы. подписываюсь на просмотр стрима.