четверг, 18 ноября 2010 г.

nginx+passenger во FreeBSD

UP
Сейчас в nginx конфигураторе есть штатно passenger - ничего патчить не надо, ставим галочку и собираем. Про зависимости вроде rubygem не проверяли, но должно автоматом подтянуться всё нужное.
Из блока ниже понадобится разве что пример конфигурации для nginx.

Старая версия:


ставим из портов www/rubygem-passenger

# passenger-config --root
/usr/local/lib/ruby/gems/1.8/gems/passenger-3.0.0

теперь идем в www/nginx
и правим Makefile
нам нужна строка CONFIGURE_ARGS+=

К полученному выше адресу дописываем /ext/nginx
не забываем \
Получится что-то вроде --add-module=/usr/local/lib/ruby/gems/1.8/gems/passenger-3.0.0/ext/nginx \

Дальше make, make deinstall, make reinstall
При сборке можно заметить строки

configuring additional modules
adding module in /usr/local/lib/ruby/gems/1.8/gems/passenger-3.0.0/ext/nginx
*** The Phusion Passenger support files are not yet compiled. Compiling them for you... ***
*** Running 'rake nginx' in /usr/local/lib/ruby/gems/1.8/gems/passenger-3.0.0/ext/nginx... ***
(in /usr/local/lib/ruby/gems/1.8/gems/passenger-3.0.0)

значит, все нормально.

Вычитано тут
Еще вариант, без правки Makefile

Дальше пишем в server нужного сайта
passenger_enabled on;

а в http
passenger_root /usr/local/lib/ruby/gems/1.8/gems/passenger-3.0.0;
passenger_ruby /usr/local/bin/ruby;

В итоге секция server будет выглядеть примерно так:
server
{
listen 1.2.3.4:80;
server_name redmine.domain.tld;
charset utf-8;
passenger_enabled on;
root /usr/local/www/redmine/public;
}

(отсюда

При обновлении nginx можем получить ошибку [emerg]: unknown directive "passenger_root" in /usr/local/etc/nginx/nginx.conf:41
Значит, при очередном обновлении портов затёрли строку --add-module=... и надо править Makefile, чтобы её снова внести и пересобрать nginx. Пример выше.

Еще небольшой совет есть тут:
http://www.redmine.org/boards/2/topics/9703 (как включить для картинок expires)

Для небольших серверов еще желательно включить
passenger_pool_idle_time 0;
чтобы первый запрос тоже быстро выполнялся - иначе модуль автоматически выгружается, если нет активности.

дока с офсайта

Комментариев нет:

Отправить комментарий