Продолжение статьи Установка Redmine на Ubuntu 9.10 под Nginx
Настройка Ruby веб-сервера Mongrel
Сам по себе Nginx работать с Redmine не может, т.к. fcgi для redmine фактически нет, поэтому для начала настроим mongrel, и будем проксировать на него запросы из Nginx. (На самом деле я не знаю, зачем нужно настраивать mongrel, когда есть встроенный сервер webrick, но везде пишут про mongrel, я решил "не выделяться слишком")
Так вот, устанавливаемые с помощью gem исполняемые файлы устанавливаются в папку /var/lib/gems/1.8/bin/, которая не включена в стандартный PATH, соответственно просто вызывать их из командной строки не получится. Чтобы это исправить, есть несколько путей. Сперва предлагаю сделать
-
export PATH=$PATH":/var/lib/gems/1.8/bin/"
-
mongrel_rails start –p 3000 -e production
По адресу http://localhost:3000/ снова должен работать редмайн.
Если все ок – делаем доступными бинарники из /var/lib/gems/1.8/bin/ перманентно. Можно сделать их доступными для всех пользователей, сделав символические ссылки
-
sudo ln -s /var/lib/gems/1.8/bin/mongrel_rails /usr/bin/mongrel_rails
-
sudo ln -s /var/lib/gems/1.8/bin/rails /usr/bin/rails
-
sudo ln -s /var/lib/gems/1.8/bin/mongrel_cluster_ctl /usr/bin/mongrel_cluster_ctl
Можно добавить экспорт пути в PATH в файле /etc/profile
-
echo 'export PATH=$PATH":/var/lib/gems/1.8/bin/"' >> /etc/profile
Но я бы посоветовал просто добавить экспорт этого пути в PATH только для юзера redmine. Находясь в его домашнем каталоге выполните
-
echo 'export PATH=$PATH":/var/lib/gems/1.8/bin/"' >> .bashrc
Теперь сгенерируем конфиг-файл для работы mongrel с redmine
-
mongrel_rails cluster::configure -e production -p 3000 -a 127.0.0.1 -N 2 -P /var/run/mongrel_cluster/mongrel.pid -c /home/redmine --user redmine --group redmine
-
mongrel_rails cluster::configure --help
Для того, чтобы сервер запускался при перезапуске компьютера, сделаем следующее: создадим каталог /etc/mongrel_cluster и скопируем туда полученный конфиг
-
sudo mkdir /etc/mongrel_cluster
-
sudo cp /home/redmine/config/mongrel_cluster.yml /etc/mongrel_cluster/redmine.yml
Скопируем init.d файл для mongrel в /etc/init.d
-
sudo cp /var/lib/gems/1.8/gems/mongrel_cluster-1.0.5/resources/mongrel_cluster /etc/init.d/
-
sudo chmod +x /etc/init.d/mongrel_cluster
И, на всякий случай, добавим в этот файл в начале (после комментариев, перед строкой CONF_DIR=/etc/mongrel_cluster) строчку export PATH=$PATH":/var/lib/gems/1.8/bin/" и исправим USER=mongrel на USER=redmine
Пробуем:
-
sudo service mongrel_cluster start
Сервис должен запуститься и работать на 3000 порту.
Обновляем rc.d правила для автоматического запуска и остановки mongrel
-
sudo update-rc.d mongrel_cluster defaults
Теперь Mongrel будет самостоятельно запускаться при старте компьютера!
Настройка NGINX для проксирования Mongrel
В принципе практически ничем не отличается от настройки проксирования Apache. В интернете рекомендуют такой конфиг:
upstream mongrel {
server 127.0.0.1:9000;
server 127.0.0.1:9001;
#и т.д., в зависимости от количества запущенных Mongrel
}
server {
listen 80;
server_name redmine.yoursite.ru;
root /home/redmine/public;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_read_timeout 300;
if (-f $request_filename/index.html) {
rewrite (.*) $1/index.html break;
}
if (-f $request_filename.html) {
rewrite (.*) $1.html break;
}
if (-f $request_filename.txt) {
rewrite (.*) $1.txt break;
}
proxy_pass http://mongrel/;
}
}
Сохраняем, перезапускаем Nginx, идем по адресу http://redmine.yoursite.ru