Rheinwerk Computing < openbook > Rheinwerk Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
Geleitwort des Fachgutachters
Einleitung
1 Einführung
2 Installation
3 Erste Schritte
4 Einführung in Ruby
5 Eine einfache Bookmarkverwaltung
6 Test-Driven Development
7 Rails-Projekte erstellen
8 Templatesystem mit ActionView
9 Steuerzentrale mit ActionController
10 Datenbankzugriff mit ActiveRecord
11 E-Mails verwalten mit ActionMailer
12 Nützliche Helfer mit ActiveSupport
13 Ajax on Rails
14 RESTful Rails und Webservices
15 Rails mit Plug-ins erweitern
16 Performancesteigerung
17 Sicherheit
18 Veröffentlichen einer Rails-Applikation auf einem Server
Ihre Meinung?

Spacer
 <<   zurück
Ruby on Rails 2 von Hussein Morsy, Tanja Otto
Das Entwickler-Handbuch
Buch: Ruby on Rails 2

Ruby on Rails 2
geb., mit DVD
699 S., 39,90 Euro
Rheinwerk Computing
ISBN 978-3-89842-779-1
Online bestellenPrint-Version jetzt bestellen
* versandkostenfrei in (D) und (A)
Pfeil 18 Veröffentlichen einer Rails-Applikation auf einem Server
  Pfeil 18.1 Wahl des Providers
  Pfeil 18.2 Einrichten des Servers
  Pfeil 18.3 Konfigurieren der Rails-Applikation auf dem Server
  Pfeil 18.4 Deployment mit Capistrano


Rheinwerk Computing - Zum Seitenanfang

18.3 Konfigurieren der Rails-Applikation auf dem Server  Zur nächsten ÜberschriftZur vorigen Überschrift


Rheinwerk Computing - Zum Seitenanfang

Konfiguration  Zur nächsten ÜberschriftZur vorigen Überschrift

Als Nächstes müssen wir für den Apache-Server eine Konfigurationsdatei im Verzeichnis /etc/apache2/sites-available anlegen.

Konfigurations- datei

Der Name der Konfigurationsdatei kann beliebig gewählt werden. Es ist üblich, die Datei nach dem Schema applikationsname.conf, wie z. B. railsair.conf, zu benennen.

Die wichtigsten Einstellungen werden im Folgenden näher erläutert.

  • IP-Adresse oder Domainname
    Mit der Option ServerName wird der Domainname angegeben, über den die Web-Applikation aufrufbar sein soll. Mit der Option Server- Alias kann ein weiterer Domainname angegeben werden.
  • Verzeichnis der Web-Applikation
    Die Option DocumentRoot legt das Verzeichnis fest, in dem die Web- Applikation liegt. Für unser Beispiel wählen wir das Verzeichnis /srv/www/railsair/current/public Der Grund für die Verwendung des Verzeichnisses current wird im Abschnitt kap_deployment_capistrano auf Seite kap_deployment_capistrano näher erläutert.
  • Symbolische Links erlauben
    Für das Deployment mit Capistrano muss dem Webserver mit der Einstellung Options FollowSymLinks mitgeteilt werden, dass dieser symbolische Links akzeptiert.
  • Load Balancer definieren
    In den Einstellungen Proxy balancer://railsair_cluster geben Sie alle Mongrel-Server an, auf die der Apache-Webserver die Anfragen verteilen soll.
  • Wartungsseite
    Falls eine Datei maintenance.html vorhanden ist, werden alle Anfragen an diese Datei umgeleitet. Dies ist praktisch, wenn Sie Ihre Applikation für Wartungsarbeiten deaktivieren wollen. Mit einem Capistrano-Befehl (siehe Abschnitt kap_deployment_capistrano auf Seite kap_deployment_capistrano) kann die »Wartungsseite« aktiviert bzw. deaktiviert werden.
  • Caching-Dateien werden von Apache ausgeführt
    Alle HTML-Dateien, die als Cache-Dateien vorliegen, werden direkt vom Apache-Server ausgeliefert, ohne dass die Rails-Applikation ausgeführt wird.
  • Nicht-statische Seiten werden von Mongrel-Servern ausgeführt
    Alle Anfragen, für die keine statischen Dateien existieren, werden an die Mongrel-Server (Cluster), die in den Load-Balancer-Einstellungen vorgenommen wurden, weitergleitet bzw. verteilt.
  • Komprimieren von Textdateien
    Um die Datenmenge an Daten, die an den Client geschickt werden, zu minimieren, kann festgelegt werden, dass Textdateien (HTML, CSS, JavaScript) vorher komprimiert werden. Der Browser dekomprimiert die Dateien dann automatisch während des Ladevorgangs. Diese Einstellungen sind optional.

Railsair

Die Konfigurationsdatei für unsere Beispiel-Applikation Railsair enthält folgende Einstellungen:

Listing  /etc/apache2/sites-available/railsair.conf

NameVirtualHost *:80
< VirtualHost *:80 >
# Alternativ kann auch eine IP-Adresse angegeben werden
# < VirtualHost 78.47.111.82:80 >

  ServerName railsair.com
  ServerAlias www.railsair.com

  # Verzeichnis des public-Verzeichnisses der Railsapplikation
  DocumentRoot /srv/www/railsair/current/public

  # Symbolische Links erlauben und
  # Sicherheitseinstellungen
  < Directory /srv/www/railsair/current/public >
    Options FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
  < /Directory >

  # Loadbalancer
  # Verteilen der Anfragen auf die drei Mongrel-Server
  < Proxy balancer://railsair_cluster >
    BalancerMember http://127.0.0.1:8020
    BalancerMember http://127.0.0.1:8021
    BalancerMember http://127.0.0.1:8022
  < /Proxy >

  RewriteEngine On

  # Falls Datei maintenance.html vorhanden ist, alle Anfragen
  # an diese Datei umleiten
  RewriteCond %{DOCUMENT_ROOT}/system/maintenance.html -f
  RewriteCond %{SCRIPT_FILENAME} !maintenance.html
  RewriteRule ^.*$ /system/maintenance.html [L]

  # Liefere die index.html aus, falls vorhanden,
  # wenn nur die Domain ohne Pfad aufgerufen wird.
  RewriteRule ^/$ /index.html [QSA]

  # Liefere HTML-Cache-Dateien direkt aus
  RewriteRule ^([^.]+)$ $1.html [QSA]
  
  # Alle nicht-statischen Anfragen, werden an den Cluster
  # geschickt
  RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
  # ACHTUNG: Den nachfolgenden Befehl bitte in eine
  # Zeile schreiben!
  RewriteRule ^/(.*)$
  balancer://railsair_cluster%{REQUEST_URI} [P,QSA,L]

  # Komprimierung von HTML-, Text- und XML-Dateien.
  AddOutputFilterByType DEFLATE text/html text/plain text/xml
  BrowserMatch ^Mozilla/4 gzip-only-text/html
  BrowserMatch ^Mozilla/4\.0[678] no-gzip
  BrowserMatch \bMSIE !no-gzip !gzip-only-text/html

  ErrorLog /var/log/apache2/error.railsiar.log
  CustomLog /var/log/apache2/access.railsair.log combined
< /VirtualHost >

Konfigurationsdatei aktivieren

Damit die Einstellungen wirksam werden, muss die Konfigurationsdatei Konfigurationsaktiviert und der Apache-Server neu gestartet werden.

Listing  Konfigurationsdatei aktivieren

a2ensite railsair.conf

Es wird eine Warnmeldung ausgegeben, dass das Verzeichnis für die Website noch nicht vorhanden ist. Wir werden das im nächsten Schritt nachholen.


Rheinwerk Computing - Zum Seitenanfang

Verzeichnis für Railsprojekt erstellen  Zur nächsten ÜberschriftZur vorigen Überschrift

Anschließend legen wir das Verzeichnis an, in dem die Rails-Applikation per Capistrano installiert wird. Außerdem legen wir fest, dass das Verzeichnis dem User und der Gruppe deploy zugeordnet wird.

Listing  Verzeichnis anlegen für die Rails-Applikation

mkdir /srv/www/railsair
chown deploy:deploy /srv/www/railsair

Rheinwerk Computing - Zum Seitenanfang

Statische Seite testen  Zur nächsten ÜberschriftZur vorigen Überschrift

Testdatei anlegen

Wir haben zwar noch nicht die Rails-Applikation auf den Server übertragen, legen aber trotzdem eine Datei index.html im Verzeichnis public an, um zu überprüfen, ob der Apache-Server diese statische Seite ausliefert.

Listing  Test-Datei anlegen

mkdir -p /srv/www/railsair/current/public
echo 'hallo welt' > /srv/www/railsair/current/public/index.html

Abbildung  Testseite


Rheinwerk Computing - Zum Seitenanfang

Mongrel-Cluster-Konfiguration vorbereiten  topZur vorigen Überschrift

Für den Mongrel-Cluster benötigen wir eine Konfiguraiontsdatei, in der u. a. festgelegt wird, wie viele Mongrel-Server gestartet werden sollen und unter welcher Port-Nummer diese auf dem Server laufen sollen. Diese Datei kann mit einem sogenannten Capistrano-Task automatisch angelegt werden. Jedoch müssen die Rechte entsprechend gesetzt werden. Daher legen wir das Verzeichnis /etc/mongrel_cluster an und setzen die erforderlichen Rechte:

Listing  Mongrel

mkdir -p /etc/mongrel_cluster
chown deploy:deploy /etc/mongrel_cluster

Die Arbeiten auf dem Server sind damit vorerst abgeschlossen. Die folgenden Schritte werden auf dem Entwicklungsrechner durchgeführt.



Ihr Kommentar

Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen. >> Zum Feedback-Formular
 <<   zurück
  Zum Katalog
Zum Katalog: Ruby on Rails 2
Ruby on Rails 2
Jetzt bestellen
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchtipps
Zum Katalog: Ruby on Rails 3.1






 Ruby on Rails 3.1


Zum Katalog: Responsive Webdesign






 Responsive Webdesign


Zum Katalog: Suchmaschinen-Optimierung






 Suchmaschinen-
 Optimierung


Zum Katalog: JavaScript






 JavaScript


Zum Katalog: Schrödinger lernt HTML5, CSS3 und JavaScript






 Schrödinger lernt
 HTML5, CSS3
 und JavaScript


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo




Copyright © Rheinwerk Verlag GmbH 2008
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Rheinwerk Computing]

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de