Ruby On Rails, Ubuntu

Nginx + Passenger no Ubuntu com Upstart

Se você trabalha sério com web, provavelmente já teve que instalar o Nginx para alguma coisa. No Ubuntu a instalação é fácil e simples:

apt-get install nginx

Porém, os pacotes não estão tão atualizados quanto deveriam e, pra piorar, devido a arquitetura do Nginx, não trabalha com módulos plugáveis dinamicamente, como o Apache. Dessa forma a única alternativa de ter o Nginx com Passenger e em versão atualizada, é através do instalador disponível nos Rubygems.

A instalação passa pelos seguintes passos:

gem install passenger
passenger-install-nginx-module

Ao executar a instalação do passenger, basta seguir as instruções e instalar os pacotes que forem necessários. Ao concluir, você terá uma instalação atualizada do Nginx com suporte ao Passenger.

Neste ponto só falta configurar o Upstart para cuidar de iniciar o Nginx toda vez que o servidor for iniciado:

/etc/init/nginx.conf

# nginx

description "nginx http daemon"
author "George Shammas <georgyo@gmail.com>"

start on (filesystem and net-device-up IFACE=lo)
stop on runlevel [!2345]

env DAEMON=/opt/nginx/sbin/nginx
env PID=/var/run/nginx.pid
expect fork
respawn

pre-start script
        $DAEMON -t
        if [ $? -ne 0 ]
                then exit $?
        fi
end script

post-stop script
    start-stop-daemon --stop --pidfile $PID --name nginx --exec $DAEMON --signal TERM
end script

exec $DAEMON

Uma observação importante, para que funcione corretamente o script acima, é necessário que o pid esteja configurado corretamente no /opt/nginx/conf/nginx.conf, conforme exemplo a baixo:

pid /var/run/nginx.pid;

Mais artigos que podem te interessar

Padrão