Skip to content

Passenger (PhusionPassenger) ​

Phusion Passenger es un servidor de aplicaciones web y un módulo para servidores web que amplifica Nginx o Apache. Está diseñado para facilitar la implementación y gestión de aplicaciones web, especialmente aquellas desarrolladas en Ruby on Rails, Node.js, y Python.

Esta tecnología proporciona una forma sencilla y eficiente de servir aplicaciones web, manejando automáticamente la gestión de procesos, el balanceo de carga y la escalabilidad.

Instalación sobre Ubuntu 20.04 ​

Basándonos en la documentación oficial sobre PhusionPassenger, tendríamos que ejecutar los siguientes comandos para la instalación...

bash
sudo apt update -y
sudo apt install -y nginx

sudo apt install -y dirmngr gnupg
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 561F9B9CAC40B2F7
sudo apt install -y apt-transport-https ca-certificates

sudo sh -c 'echo deb https://oss-binaries.phusionpassenger.com/apt/passenger focal main > /etc/apt/sources.list.d/passenger.list'
sudo apt update

sudo apt install -y libnginx-mod-http-passenger

if [ ! -f /etc/nginx/modules-enabled/50-mod-http-passenger.conf ]; then sudo ln -s /usr/share/nginx/modules-available/mod-http-passenger.load /etc/nginx/modules-enabled/50-mod-http-passenger.conf ; fi
sudo ls /etc/nginx/conf.d/mod-http-passenger.conf

sudo service nginx restart

Luego de la instalación, podemos verificar que Passenger se haya instalado correctamente ejecutando el siguiente comando:

bash
sudo /usr/bin/passenger-config validate-install

Si todo está correcto, deberíamos ver un mensaje indicando que la instalación es válida. También podemos verificar la versión instalada de Passenger con el comando:

bash
passenger --version

Configuración básica de Nginx con Passenger ​

Podemos configurar un bloque de servidor en Nginx para servir nuestra aplicación web utilizando Passenger. Aquí hay un ejemplo básico de configuración para una aplicación Ruby on Rails:

nginx
server {
    listen 80;
    server_name example.com;
    root /path/to/your/app/public;

    passenger_enabled on;
    passenger_app_env production;

    location / {
        try_files $uri/index.html $uri @app;
    }

    location @app {
        passenger_base_uri /;
        passenger_app_root /path/to/your/app;
        passenger_document_root /path/to/your/app/public;
        passenger_enabled on;
    }

    error_page 500 502 503 504 /500.html;
    client_max_body_size 10M;
    keepalive_timeout 10;
}

Después de configurar Nginx, asegúrate de reiniciar el servicio para aplicar los cambios:

bash
sudo service nginx restart

Con estos pasos, deberías tener Passenger instalado y configurado para servir tu aplicación web en un entorno Ubuntu con Nginx.