Я давно хотел избавиться от пожирателя памяти Apache, тем более что и половины его возможностей мне использовать не приходится.
Но при попытке перейти на nginx + fastcgi (описание здесь) мне пришлось столкнуться с некоторыми трудностями:
- Perl, без него уж извините никак:(
- в сети неоднократно сталкивался с утверждением что spawn-fcgi не умеет работать с акселераторами, а это сами понимаете не есть гуд + spawn-fcgi работает через TCP/IP, а не через unix socket, что как понимаете то же не очень хорошо
Ответ на первый мой вопрос мне удалось найти в рассылке, где Игорь Сысоев (автор nginx) на вопрос о запуске скриптов написанных на Perle рекомендовал использовать небольшой сервер mini-httpd, который после запуска у меня съел менее 500К памяти.
Со вторым моим вопросом было немного сложнее, я все таки поставил spawn-fcgi, но помимо отсутствия возможности использовать какой-либо акселератор и отсутствия unix socket у меня возникла проблема. После запуска всей связки сайты просто летают, но так продолжается не долго, всего минут 1015, после при открытии какой либо странице возникает задержка секунд в 58, при этом на сервере какой-либо загрузки мной замечено не было. В общем весь расстроенный такими делами я отправился гуглить и как оказалось не зря.
После нудных поисков я попал на страничку php-fpm, это патч к php-cgi, который позволяет запустить php не просто в качестве демона fastcgi, а настоящий менеджер процессов + он же позволяет работать через unix socket, а так же умеет работать с разными акселераторами.
Т.к. во время поисков у меня накопилось много материала по установке всего выше описанного, а копи-пастом заниматься я не очень люблю и в тоже время мне не удастся написать чего либо нового по установке nginx + php-fpm + mini-httpd + eAccelerator, я просто привожу список ссылок:
Комментарии
спасибо
странно, а почему spawn не умеет с акселераторами работать?
я с такими утверждениями не сталкивался.
> cwer
Честно, не знаю, я хотел сначала сам проверить, но столкнулся с другой проблемой, похуже. На данный момент я очень доволен получившейся сборкой. И впечатление от php-fpm намного лучше (я в код залезал, он сам по себе более качественно написан) чем от spawn-fcgi, тем более он написан нашим соотечественником
Apache+FastCGI+Accelerator - все работает. Кстати если запускаете процессы под разными юзверями (например для каждого сайта свой), то буфера будут разные у акселератора.
И кто вам сказал, что spaw-fcgi не работает с unix sockets и что php под ним криво? связка nginx+spawn-fcgi+php, с десяток блогов на ней крутится под не плохим трафиком, тормозов не замечено)
1. Spawn-fcgi отлично работает со всеми акселераторами (тестил eAccelerator и xcache)
2. Проблем с unix сокетами у него тоже нет!
3. Чем плох встроенный перл в nginx?
4. php-fpm лучше использовать на хостингах (или где много пользователей и нужна гибкая настройка для каждого) Правда у меня возникли проблемы при настройке php-fpm и xcache (eAccelerator не проверял)
Кстати перл прекрасно понимает протокол FastCGI
use FCGI;
Есть проблемы с Imagecache, если нет Апача?
У меня есть Если есть решение, пожалуйста поделитесь