Ruby on Rails ist ein leistungsfähiges Framework für die Entwicklung von Webanwendungen, das Konvention vor Konfiguration stellt. Dies ermöglicht Entwicklern, effizient und effektiv Anwendungen zu erstellen. Für den Einsatz dieser Anwendungen in einer Produktionsumgebung bietet die Kombination von Nginx mit Passenger als Anwendungsserver eine robuste, skalierbare und einfach zu konfigurierende Lösung. Dieser Artikel bietet eine detaillierte Anleitung, wie man eine Ruby on Rails-Anwendung auf Nginx unter Verwendung von Passenger ausführt. Er ist ideal für Neueinsteiger in diesem Bereich, die nach technisch soliden Implementierungslösungen suchen.
Installation von Passenger
Passenger ist ein Webanwendungsserver und ein Reverse-Proxy, der die Ausführung von Ruby on Rails-Anwendungen auf Webservern wie Nginx erleichtert. Um Passenger zu installieren, führen Sie den folgenden Befehl aus:
gem install passenger
Installieren Sie anschließend das Passenger-Modul für Nginx durch Ausführen von:
passenger-install-nginx-module
Während der Installation werden Sie durch eine Reihe von Schritten geführt, um Nginx mit Passenger zu konfigurieren. Möglicherweise werden Sie aufgefordert, zusätzliche Abhängigkeiten zu installieren. Folgen Sie den Anweisungen auf dem Bildschirm, um die Installation abzuschließen.
Konfiguration von Nginx und Passenger
Nach der Installation von Passenger müssen Sie Nginx konfigurieren, um Ihre Ruby on Rails-Anwendung zu bedienen. Öffnen Sie die Nginx-Konfigurationsdatei (nginx.conf
), die sich in der Regel unter /etc/nginx/nginx.conf
oder /opt/nginx/conf/nginx.conf
befindet, und fügen Sie Folgendes innerhalb des http
-Blocks hinzu:
http {
...
passenger_root /pfad-zur-passenger-installation;
passenger_ruby /pfad-zu-ruby;
...
}
Ersetzen Sie /pfad-zur-passenger-installation
mit dem Pfad, an dem Passenger installiert ist, den Sie mit passenger-config --root
finden können. Ersetzen Sie /pfad-zu-ruby
mit dem Pfad zum Ruby-Interpreter, den Sie mit which ruby
finden können.
Konfigurieren Sie dann einen virtuellen Server für Ihre Anwendung, indem Sie einen neuen Serverblock in nginx.conf
oder im Verzeichnis sites-available
hinzufügen, wenn Sie eine Struktur basierend auf sites-available
und sites-enabled
verwenden:
server {
listen 80;
server_name meineanwendung.com;
root /var/www/meineanwendung/public;
passenger_enabled on;
passenger_app_env production;
location / {
try_files $uri @app;
}
location @app {
include proxy_params;
proxy_pass http://unix:/var/www/meineanwendung/tmp/sockets/meineanwendung-puma.sock;
}
}
Stellen Sie sicher, dass Sie meineanwendung.com
durch den Domainnamen Ihrer Anwendung und /var/www/meineanwendung
durch den Pfad zum Verzeichnis Ihrer Ruby on Rails-Anwendung ersetzen.
Ausrollen der Anwendung
Um Ihre Anwendung auszurollen, stellen Sie sicher, dass alle Gems durch Ausführen von bundle install
im Verzeichnis Ihres Projekts installiert sind. Führen Sie dann die Datenbankmigrationen durch und kompilieren Sie die Assets vor, falls notwendig:
RAILS_ENV=production bundle exec rake db:migrate
RAILS_ENV=production bundle exec rake assets:precompile
Nginx neu starten
Nachdem alles konfiguriert ist, starten Sie Nginx neu, um die Änderungen anzuwenden:
sudo service nginx restart
Oder wenn Sie systemd verwenden:
sudo systemctl restart nginx
Dienstleistungen von Shape.host
Für diejenigen, die daran interessiert sind, Ruby on Rails-Anwendungen in einer optimierten und sicheren Umgebung zu betreiben, bietet Shape.host Linux SSD VPS-Dienste, die eine hervorragende Lösung darstellen können. Diese VPS sind darauf ausgelegt, hohe Leistung und Skalierbarkeit zu bieten und sicherzustellen, dass Ihre Anwendung reibungslos und effizient läuft. Darüber hinaus steht Ihnen das technische Support-Team von Shape.host zur Verfügung, um Ihnen bei der Konfiguration und Wartung Ihres Servers zu helfen, sodass Sie sich auf die Entwicklung Ihrer Anwendung konzentrieren können, während sie sich um die Infrastruktur kümmern.