Извиняюсь не видел вопроса.
Ну не только в цифрах. Ну первое это конечно в цифрах это всё конечно сугобо индивидуально для каждого проекта (его реализации) но в целом так и есть что php как модуль apache хуже чем php-fpm+nginx раз в 5.
У меня была ситуация что сайт php+mysql и пришло время что у него онлайн стал под 6к. и все 8 ядер были загружены проца.
вот скрин нашёл ради тебя специально:
![user posted image](http://nice-bux.ru/prn01.jpg)
в первую очередь конечно решать задачу нужно было быстро так как сайт принимал по 70к уников в сутки первое что пришло в голову вынести mysql на удалённый сервер. задача заняла минут 20.
Но сервер я разргрузил лишь на 15%
в итоге мне
Inpost сказал чтобы я выкинул апач в мусорку и собрал php-fpm недолго подумав(так как больше вариантов у меня не было) я пересобрал пых настроил все реврайты и тд в nginx ребутнул нгинкс и всё получилось без простоя малейшего сайта!
и что я вижу что нагрузка упала на 70%....
После этого я понял что apache это полнейшей днище а когда через 2дня разобрался с php-fpm полностью как кешировать/чем кешировать как повешать его на сокеты как руководить его процессами и тд и тп так вообще кайф полный. Доволен до сих пор как слон.
Что такое apache и .htaccess я вообще забыл про это старообрядство 2000ых годов...
По мимо уменьшения расхода ресурсов, php-fpm он работает как fcgi что примерно на 20% прирост в скорости выполнения скриптов нежели при php как модуль апача при этом расходуя в разы меньше ресусурсов сервера!
По мимо этого как бы не совсем могу обьяснить но в целом и головняков меньше стало и код быстрее и лучше и тд и тп. короче всё кардинально меняеться.
По мимо этого вот не поверишь сразу т.к. разобрался в nginx тут же понял что такое node.js так как всё по сути в современном вебе строиться через nginx туже ноду можно встречать нгинксом балансировать порты проксировать и тд и тп. вплоть до того что nginx своим limit_req_module отбивает спокойно маленький/средний ддос чего не может сделать апач. знаний гора открывается. ну и в самом fpm почти нет утечки памяти так как php-fpm-master запускаеться каждые 3-5 сек и дочерние процессы которые уже убиты самим fpm-ом он за ними весь мусор заметает (озу/процессорное время). По мимо этого если сервер многоядерный то nginx по воркерам спокойно принимает на себя часть от fcgi что даёт более быстрый доступ к php скриптам и разбалансированную нагрузку на ядра проца сервера а апач может 2 ядра грузануть при том же ддосе от php а остальные ядра будут отдыхать а сайт твой быть в ауте. php-fpm+nginx устоичив к ддосу и нагрузкам. тот же php как модуль апача я могу с лоика положить, на fpm это невозможно практически (если ты не с 60 компов одновременно запускаешь коечно лоик) благодоря limit_req_module который ты можешь выставить только на location ~ \.php$ {
limit_req zone=one burst= дабы чтобы обычный юзер который зашёл скажем допустим на страницу где 200 аватаров не рубился ему доступ к 80ому порту. По мимо этого в апаче вечно дыры загугли дыры апача там почти в каждой версии дыра через которую можно положить весь сервак наглухо в свап загнать что только холодная перезагрузка поможет. По мимо этого даже при сильном ддосе апач наглухо падает и твой сайт не пахает всё 502 словил apache при сильном ддосе php-fpm+nginx ты можешь долгое время поддерживать сайт путём того что поставив приоритет nginx worker_priority -2 даже можно до -20 выставлять nginx может упасть а пых будет работать сайт будет работать и даже отдавать статику но с задержкой, а апач в таком случае уйдёт в полный аут и как я уже говорил загонит в свап сервак, а nginx нет так как ты можешь на лету обрубить worker_connections.
+ ты можешь через тот же
round-robin очень быстро маштабироваться(балансироваться) в случае чего так же докупаешь сервак там подымаешь nginx и php-fpm и делаешь просто реврайт по tpc через nginx на php скрипты того сервака и через round-robin задаёшь 15% сюда принимать на этот сервак (т.е. в случае маштабирования не какие ни скрипты и тд и тп переносить не надо никуда!) (я просто сделал так сложил в tmpfs их реврайтами (асинхронно) и с другого сервака просто получаю что мне нужно без всяких переносов и прочей ерести. В итоге раунробин встречает нагрузку если тут под пик почти то нагрузка ложиться на другой сервак независимо от того где лежат скрипты! С апачем пытался балансировать php между серверами (может и есть решение) но так ничего и не получилось.
Но с
round-robin я сделал коряво в идеале это делаеться так серваки понятно соеденены ты закидываешь на 1 сервак сокеты и с обоих(3,4,5,6...) серваков делаешь подключение к этим сокетым а раунд робином чекаешь сокетмакскон если привышает скоко ты ему задал перекидываешь на другой. Как то примерно так но я ещё не дорос до этого пока что :( Но суть понял что можно даже ничего не устанавливая на другой сервер просто его ресурсы подкачивать.
Ты становишься независимым а при php как модуль апача+nginx на статику старьё даём апачу 80 порт а nginx 81 с одного на другой порт проксируем вроде так делалось по старинке это просто тупо костыль вонючий. забив 1 порт падает всё. тут такого нет 80 порт(который nginx сам же наглухо защищает через limit_req_module) nginx и пых по сокету и всё! а раньше всё это работало через
кип алив таймаут что есть издержка так как одно ждало ответа друг от дружки щас нет вообще вырубил кип алив таймаут нафиг так как nginx не ждёт от php ответа и пых от него всё щас независимо! Ну тоесть раньше ктонить находиться на странице где исполняется даже неоптимизированный php скрипт и есть статика то в этот момент нагружался по мимо апача и nginx так как ждал ответа и у другого юзера который вообще на другой странице могло подлагивать т.к. нагрузился nginx ожидая ответа от апача сейчас такой фигни нет и быть не может максимум что может быть просто фпм мастер обрубит скрипт но другие не пострадают клиенты!
nginx+apache - просто придумали чтобы старпёры которые не хотят убирать апаче что есть уже костыль чистой воды (хак можно сказать). По мимо этого даже используя веб сокеты такую конструкцию:
ready(function(){
window.socket = io('http://mysite.com:3000/', {reconnection: true});;
window.socket.on
ты можешь спокойно защитить через тот же nginx расходуя меньше ресурсов сервера нежели при файрволе(ну файрвол уже накрайняк подключиться)
apache уже по сути никто не поддерживает. его даже isp system не поддерживают уже давно раньше их же панель от апача работала токо а щас нет. Уже в isp5 всё на fcgi. Думаю через годик все забут вообще что такое или кто такой apache. В целом ты думаю понял почему нельзя php как модуль apache использовать. Придёт время будет более менее проект попадёшь в задницу (как попал я), а если бы не использовал apache то всё решилось бы за 1 минуту.