Nginx + Ruby + …

Nach der ausführlichen An- und Einleitung zur Installation von Nginx und PHP-FPM, soll dieser Artikel die Erweiterung des Webservers um die Sprache Ruby aufzeigen. Als erweiterte Basis kann oben genanntes Tutorial dienen.

Hintergrund

Im Gegensatz zum modularen Apachen unterstützt Nginx keine Module. Extensions, oder Module werden nicht hinzugeladen, sondern in den Core einkompiliert. Mit der Erweiterung des Webservers ist dieser jeweils neu zu übersetzen. Für die Unterstützung der Programmiersprache Ruby, kommt Phusion Passenger zum Einsatz.

Ruby rauf

Betriebssystem ist Ubuntu. Die Installation erfolgt wie gehabt mit apt. Es ist daruf zu achten, dass Gems (der Befehl gem), sowie rake funktionieren.

apt-get install full-ruby build-essential

Damit ist eine solide Grundlage geschaffen.

Passenger drüber

Vor der Übersetzung der Nginx-Sourcen mit den bekannten Parametern wird Passenger installiert.

gem install passenger

Viele Wege führen nach Rom

Es gibt jetzt diverse Optionen, Passenger in den Core zu integrieren. Phusion liefert einen eigenen Installer, der  on Demand auch Nginx mit übersetzt (Befehl bitte nicht ausführen!). Dazu wird einfach

passenger-install-nginx-module

aufgerufen. Als Alternative 1 kann der Sourcecode heruntergeladen werden. Die Alternative der Stunde erfolgt mit dem installieren Gem selbst. Wie oben bereits geschehen.

Nginx drunter

Jetzt geht es ans Eingemachte und Nginx wird mit Ruby Support installiert. Man hängt dazu nachfolgende Compile-Option an

--add-module=/usr/lib/ruby/gems/1.8/gems/passenger-3.0.7/ext/nginx

Der Rest ist Geschichte, zumindest fast. Ausgehend davon dass man eine Rails Anwendung unter Nginx deployen will sind natürlich noch Anpassungen an der Konfiguration des Webservers notwendig.

Redmine

Die Konfiguration könnte z.B. so aussehen

http {
   # Ruby support has to be activated globally
   passenger_root /usr/lib/ruby/gems/1.8/gems/passenger-3.0.7/;
   passenger_ruby /usr/bin/ruby;
   passenger_max_pool_size 10;

   server {       

        listen 80;
        server_name redmine.adminwerk.*;
        access_log /srv/nginx/log/redmine.access.log main;
        error_log /srv/nginx/log/redmine.error.log;

        # Passenger
        passenger_enabled on;
        passenger_use_global_queue on;              

         # Rails
         root /var/www/nginx/redmine/public;
         }
}

Nachruf

Wie immer können die Versionsnummern differieren. Des Weiteren weisen die Entwickler des Passengers darauf hin, dass die Quellen von Passenger nicht entfernt werden dürfen. Passenger benötgt diese. Gem. dieser Anleitung also einfach das Gem installiert lassen.

 

» Quellen

http://modrails.com/install.html
http://www.redmine.org
http://nginx.org

» Verwandte Themen

http://adminwerk.de/services/2011/nginx-php-fpm/


Beitrag veröffentlicht

in

, , , , ,

von

Schlagwörter:

Kommentare

Schreibe einen Kommentar