<?xml version="1.0" encoding="windows-1251"?>
<rss version="2.0">
<channel>
<title>FreeSource - Статьи/NginxPhpFpm</title>
<link>http://freesource.info/wiki/Статьи/NginxPhpFpm</link>
<description>History/revisions of FreeSource/Статьи/NginxPhpFpm</description>
<language>en-us</language>
<item>
<title>2007-08-31 13:45:51</title>
<link>http://freesource.info/wiki/Stat'i/NginxPhpFpm/show?time=2007-08-31+13%3A45%3A51</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a name=".stat_i.nginxphpfpm" href="http://freesource.info/wiki/Stat'i/NginxPhpFpm&amp;" class="">/Статьи&amp;nbsp;/&amp;nbsp;Nginx&amp;nbsp;Php&amp;nbsp;Fpm&lt;/a> за &lt;a href="http://freesource.info/wiki/Stat'i/NginxPhpFpm?time=2007-08-31+13%3A45%3A51">2007-08-31 13:45:51&lt;/a> и &lt;a href="http://freesource.info/wiki/Stat'i/NginxPhpFpm">2007-09-01 23:40:11&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">&lt;a name="h8050-1">&lt;/a>&lt;h2> CGI&amp;nbsp;&lt;/h2>
Последнее время мне&amp;nbsp;здорово не&amp;nbsp;хватало CGI-бэкенда, какого-нибудь веб-сервера, исполняющего только CGI. Разводить для&amp;nbsp;этой цели апачей как-то невыгодно получается.&lt;br />
Вот, например, для&amp;nbsp;PHP у&amp;nbsp;меня отлажена связка nginx + php-fcgi (теперь с&amp;nbsp;php-fpm). Офигенно работает. Добавляем какой-то кэш&amp;nbsp;к&amp;nbsp;PHP (я добавил eaccelerator) &amp;ndash; вообще замечательно.&lt;br />
&amp;laquo;Просто fastcgi&amp;raquo; тоже вполне себе живут.&lt;br />
Что&amp;nbsp;напрягает &amp;ndash; тут&amp;nbsp;похуже с&amp;nbsp;разработкой становится: это&amp;nbsp;ж&amp;nbsp;каждую fastcgi-приблуду в&amp;nbsp;конфиг сервера пропиши да&amp;nbsp;озаботься запуском-перезапуском её вовремя. Отлаженные вещи, понятное дело, живут совсем хорошо.&lt;br />
Вывод: пока не&amp;nbsp;хватает Process Manager'a для&amp;nbsp;FastCGI-демонов. Скриптик spawn-fcgi от&amp;nbsp;lighttpd, которым многие пользуются убог до&amp;nbsp;печальности, у&amp;nbsp;меня похожими самописными скриптиками и&amp;nbsp;запускаются эти&amp;nbsp;демоны. Но&amp;nbsp;запустить-то &amp;ndash; полдела.&lt;br />
И&amp;nbsp;вот ещё столкнулся с&amp;nbsp;тем, что&amp;nbsp;нужны &amp;laquo;просто CGI&amp;raquo;. Например, какие-то административные интерфейсы или&amp;nbsp;ещё какие-нибудь монстры по&amp;nbsp;объёму кода. Или&amp;nbsp;системы, разрабатывавшиеся много лет&amp;nbsp;и&amp;nbsp;всё ещё нужные в&amp;nbsp;работе. Или&amp;nbsp;другие штуки, которые вызываются в&amp;nbsp;тысячи или&amp;nbsp;десятки тысяч раз&amp;nbsp;реже других скриптов или&amp;nbsp;страниц &amp;ndash; зачем под&amp;nbsp;них держать запущенным fastcgi-процесс?&lt;br />
По&amp;nbsp;итогам копаний нашёл mini_httpd от&amp;nbsp;Acme: &lt;a href="http://www.acme.com/software/mini_httpd/" target="_blank" title="Внешняя ссылка (откроется в новом окне)" class="outerlink">&lt;img src="http://freesource.info/wiki/themes/coffee/icons/web.gif" alt="" border="0" />http://www.acme.com/software/mini_httpd/&lt;/a>&lt;br />
Конфигурирования там&amp;nbsp;почти нет, форк сервера (собранного с&amp;nbsp;SSL, что&amp;nbsp;мне не&amp;nbsp;нужно для&amp;nbsp;бэкенда) занимает около 500к памяти со&amp;nbsp;всякими своими буферами. Ставил из&amp;nbsp;репозитария бинарник &amp;ndash; надо будет попробовать собрать без&amp;nbsp;SSL, посмотрим, насколько полегчает.&lt;br />
CGI&amp;nbsp;гоняет замечательно.&lt;br />
Если кто-то захочет его&amp;nbsp;использовать, даю&amp;nbsp;совет, как&amp;nbsp;нормально настроить CGI&amp;nbsp;по&amp;nbsp;виртхостам.&lt;br />
В&amp;nbsp;конфиге поставить:&lt;br />
vhost&lt;br />
cgipat=**.cgi&lt;br />
dir=/etc/mini-httpd&lt;br />
data_dir=/etc/mini-httpd&lt;br />
Теперь mini-httpd при&amp;nbsp;поступлении HTTP/1.1 запроса с&amp;nbsp;Host:www.example.com будет пытаться отдать что-то из&amp;nbsp;каталога /etc/mini-httpd/www.example.com. Нам&amp;nbsp;нужно обслужить cgi-bin, который, допустим, лежит в&amp;nbsp;/var/www/example.host/cgi-bin. Что&amp;nbsp;делаем:&lt;br />
-# mkdir /etc/mini-httpd/www.example.com&lt;br />
-# ln&amp;nbsp;-s /var/www/example.host/cgi-bin /etc/mini-httpd/www.example.com/cgi-bin&lt;br />
Пробуем www.example.com/cgi-bin/helloworld.cgi &amp;ndash; работает! Добавляем по&amp;nbsp;вкусу хост-алиасов:&lt;br />
-# ln&amp;nbsp;-s /etc/mini-httpd/www.example.com /etc/mini-httpd/example.com&lt;br />
По&amp;nbsp;сути, каталог /etc/mini-httpd теперь выступает у&amp;nbsp;нас конфигом виртуальных хостов.&lt;br />
Может быть, вы&amp;nbsp;удивитесь &amp;ndash; почему об&amp;nbsp;этом надо рассказывать, оно&amp;nbsp;ведь проще пареной репы &amp;ndash; но&amp;nbsp;я за&amp;nbsp;последнее время столкнулся с&amp;nbsp;изрядным количеством народу, которые такую настройку не&amp;nbsp;понимают, считают чем-то нехорошим и&amp;nbsp;ни за&amp;nbsp;что не&amp;nbsp;дойдут до&amp;nbsp;такого решения сами. Хотя у&amp;nbsp;самих под&amp;nbsp;линуксами где-нибудь в&amp;nbsp;/etc/rcX.d сплошные симлинки.&lt;br />
И&amp;nbsp;да, конечно же, это&amp;nbsp;не&amp;nbsp;замена Apache даже на&amp;nbsp;10% функций Хорошего Индейца. Это&amp;nbsp;всего лишь маленький бэкенд, запускающий CGI&amp;nbsp;&amp;ndash; ничего другого мне&amp;nbsp;от&amp;nbsp;него не&amp;nbsp;требовалось. Никаких .htaccess и&amp;nbsp;прочего &amp;ndash; всей внешней обвеской занимается nginx и&amp;nbsp;другие (впрочем, mini_httpd умеет Basic Auth &amp;ndash; но&amp;nbsp;на бэкенде-то оно&amp;nbsp;не&amp;nbsp;нужно).&lt;br />
&lt;a href="http://zmeuka.livejournal.com/161091.html" target="_blank" title="Внешняя ссылка (откроется в новом окне)" class="outerlink">&lt;img src="http://freesource.info/wiki/themes/coffee/icons/web.gif" alt="" border="0" />http://zmeuka.livejournal.com/161091.html&lt;/a>&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2007-08-31 13:45:36</title>
<link>http://freesource.info/wiki/Stat'i/NginxPhpFpm/show?time=2007-08-31+13%3A45%3A36</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a  href="http://freesource.info/wiki/Stat'i/NginxPhpFpm&amp;" class="">/Статьи&amp;nbsp;/&amp;nbsp;Nginx&amp;nbsp;Php&amp;nbsp;Fpm&lt;/a> за &lt;a href="http://freesource.info/wiki/Stat'i/NginxPhpFpm?time=2007-08-31+13%3A45%3A36">2007-08-31 13:45:36&lt;/a> и &lt;a href="http://freesource.info/wiki/Stat'i/NginxPhpFpm?time=2007-08-31+13%3A45%3A51">2007-08-31 13:45:51&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">Ну, наверное, патч. Короче, PHP&amp;nbsp;не&amp;nbsp;просто начинает работать под&amp;nbsp;FastCGI, а&amp;nbsp;ещё и&amp;nbsp;само себе FastCGI Process Manager. Работает, приятно работает &amp;ndash; стартует мастер с&amp;nbsp;воркерами, воркеры перестартовывает когда надо и&amp;nbsp;так далее. Это&amp;nbsp;не&amp;nbsp;через какие-то корявые spawn-fastcgi запускать, тут&amp;nbsp;всё настраиваемо и&amp;nbsp;управляемо.&lt;/div>&lt;br />
&lt;b>Удалено:&lt;/b>&lt;br />
&lt;div class="deletions">Ну, наверное, патч. Короче, PHP&amp;nbsp;не&amp;nbsp;просто начинает работать под&amp;nbsp;&lt;span class="missingpage">Fast&amp;nbsp;CGI&lt;/span>&lt;a href="http://freesource.info/wiki/FastCGI/edit?add=1&amp;" title="Создать эту страницу">?&lt;/a>, а&amp;nbsp;ещё и&amp;nbsp;само себе &lt;span class="missingpage">Fast&amp;nbsp;CGI&lt;/span>&lt;a href="http://freesource.info/wiki/FastCGI/edit?add=1&amp;" title="Создать эту страницу">?&lt;/a> Process Manager. Работает, приятно работает &amp;ndash; стартует мастер с&amp;nbsp;воркерами, воркеры перестартовывает когда надо и&amp;nbsp;так далее. Это&amp;nbsp;не&amp;nbsp;через какие-то корявые spawn-fastcgi запускать, тут&amp;nbsp;всё настраиваемо и&amp;nbsp;управляемо.&lt;/div>&lt;/div>
</description>
</item>
</channel>
</rss>
