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.