Zum Hauptinhalt springen

Konfigurieren und Optimieren von Nginx für Rails: Detaillierte Anweisungen

Wenn Sie eine Webanwendung in Ruby on Rails entwickeln, sind Sie wahrscheinlich mit Nginx vertraut, einem der beliebtesten Webserver. Nginx wird verwendet, um HTTP-Anforderungen zu verarbeiten und die Last auf Ihre Anwendung zu verteilen. Die Optimierung von Nginx kann die Leistung Ihrer Rails-Anwendung erheblich verbessern und sie für die Benutzer reaktionsfähiger machen.

In dieser detaillierten Anleitung werden wir uns die grundlegenden Schritte zum Konfigurieren und Optimieren von Nginx für Rails-Anwendungen ansehen. Wir zeigen Ihnen, wie Sie Nginx installieren, es für die Verarbeitung statischer Dateien konfigurieren, einen Reverse-Proxy für die Interaktion mit einer Rails-Anwendung konfigurieren und einige erweiterte Konfigurationsoptionen berücksichtigen, die Ihnen helfen, die beste Leistung zu erzielen.

Das Konfigurieren und Optimieren von Nginx für Rails-Anwendungen ist nicht nur wichtig, um die Leistung zu verbessern, sondern auch um die Zuverlässigkeit und Sicherheit Ihres Webservers zu gewährleisten. Die richtige Nginx-Konfiguration ermöglicht die effiziente Verarbeitung einer großen Anzahl von Anfragen, die Verwaltung der Last und den Schutz vor Angriffen. Nachdem Sie diese Anleitung gelesen haben, können Sie Nginx für Ihre Rails-Anwendung entsprechend ihren Merkmalen und Anforderungen konfigurieren.

Nginx-Leistungsoptimierung für Rails

Damit Ihre Webanwendung auf Rails mit dem Nginx-Server effizient ausgeführt werden kann, müssen Sie die Leistung optimieren. In diesem Abschnitt werden wir einige wichtige Schritte untersuchen, um die Geschwindigkeit und Reaktionsfähigkeit Ihrer Anwendung zu verbessern.

1. Caching aktivieren: Konfigurieren Sie Nginx so, dass statische Inhalte wie Bilder, CSS- und JavaScript-Dateien zwischengespeichert werden. Dies reduziert die Anzahl der Anfragen an den Server und beschleunigt das Laden von Seiten für Ihre Benutzer.

2. Ressourcenzuweisung: Teilen Sie Ihre Webanwendung und Ihre statischen Dateien auf verschiedene Server oder Subdomains auf. Dies ermöglicht es den Browsern Ihrer Benutzer, statische Dateien gleichzeitig herunterzuladen, wodurch das Laden der Seite beschleunigt wird.

3. Komprimierung aktivieren: Konfigurieren Sie Nginx so, dass übertragene Dateien komprimiert werden, um die zwischen dem Server und dem Client übertragene Datenmenge zu reduzieren. Dies ist besonders nützlich für schwere Dateien wie Bilder und Videos.

4. Konfigurationseinstellungen: Überprüfen Sie Ihre Nginx-Konfiguration und stellen Sie sicher, dass sie für Ihre Webanwendung auf Rails optimiert ist. Vermeiden Sie unnötige Umleitungen und komplexe Routingregeln.

5. Überwachung und Analyse: verwenden Sie Leistungsüberwachungstools, um den Betrieb Ihres Nginx-Servers zu überwachen und zu analysieren. Dies wird helfen, Probleme zu identifizieren und Lösungen anzubieten, um sie zu beheben.

Durch die Optimierung der Leistung von Nginx können Sie Ihre Webanwendung auf Rails erheblich beschleunigen und bei Ihren Benutzern einen positiveren Eindruck hinterlassen. Wenn Sie die obigen Schritte befolgen, können Sie eine optimale Leistung und Effizienz von Nginx erzielen.

Vorbereiten des Servers für die Installation von Nginx

Bevor Sie Nginx installieren, müssen Sie einige vorbereitende Schritte ausführen, um den Server vorzubereiten. In diesem Abschnitt werden wir uns die grundlegenden Schritte ansehen, die Sie ausführen müssen, bevor Sie Nginx installieren.

1. Aktualisieren des Systems

Es wird empfohlen, das Betriebssystem auf die neueste Version zu aktualisieren, bevor Sie neue Software installieren. Führen Sie dazu den folgenden Befehl aus:

sudo apt updatesudo apt upgrade

2. Installieren der erforderlichen Abhängigkeiten

Nginx benötigt einige Abhängigkeiten, um ordnungsgemäß zu funktionieren. Installieren Sie sie, indem Sie den folgenden Befehl ausführen:

sudo apt install curl gnupg2 ca-certificates lsb-release

3. Hinzufügen eines Nginx-Repositorys

Um die neueste Version von Nginx zu installieren, fügen Sie das Repository zur Liste der Paketquellen hinzu. Führen Sie dazu den folgenden Befehl aus:

echo "deb http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" |sudo tee /etc/apt/sources.list.d/nginx.list

Fügen Sie dann den GPG-Schlüssel des Repositorys mithilfe des folgenden Befehls hinzu:

curl -fsSL https://nginx.org/keys/nginx_signing.key | sudo apt-key add -

4. Aktualisieren der Paketliste

Sie müssen die Paketliste aktualisieren, damit das System erkennt, dass ein neues Repository verfügbar ist. Führen Sie dazu den folgenden Befehl aus:

sudo apt update

Wir haben gerade den Server für die Installation von Nginx vorbereitet. Jetzt können Sie mit der Installation und Konfiguration beginnen.

Installieren von Nginx und erforderlichen Modulen

Bevor Sie mit der Installation von Nginx auf Ihrem Server beginnen, stellen Sie sicher, dass Sie alle erforderlichen Abhängigkeiten installiert haben. Sie können die Verfügbarkeit mit dem folgenden Befehl überprüfen:

apt-get install build-essential libpcre3 libpcre3-dev libssl-dev

Dann laden Sie die Nginx-Quelldateien von der offiziellen Website herunter:

wget http://nginx.org/download/nginx-версия.tar.gz

Entpacken Sie das heruntergeladene Archiv:

tar -zxvf nginx-версия.tar.gz

Gehen Sie in den Ordner mit den entpackten Dateien:

cd nginx-версия

Jetzt müssen Sie Nginx mit den gewünschten Modulen konfigurieren. Führen Sie den folgenden Befehl aus:

./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_gzip_static_module

Nachdem Nginx erfolgreich konfiguriert wurde, führen Sie den folgenden Befehl zum Erstellen und Installieren aus:

make && make install

Jetzt ist Nginx auf Ihrem Server installiert und kann verwendet werden. Sie können überprüfen, ob es richtig installiert ist, indem Sie den Befehl ausführen:

/usr/local/nginx/sbin/nginx -v

Das Ergebnis sollte etwas sein wie:

Nginx version: версия

In diesem Abschnitt haben wir uns mit dem Installationsprozess von Nginx und den erforderlichen Modulen befasst. Im nächsten Abschnitt werden wir die Nginx-Konfigurationsdatei für die Arbeit mit der Rails-Anwendung konfigurieren.

Nginx-Konfiguration für die Arbeit mit Rails

Damit Nginx Anforderungen an Ihre Ruby on Rails-Anwendung korrekt verarbeitet, müssen Sie die Konfiguration der Anwendung konfigurieren. In diesem Artikel werden wir uns die grundlegenden Parameter ansehen, die Sie für eine optimale Leistung festlegen müssen.

Stellen Sie sicher, dass Sie Nginx auf dem Server installiert haben und dass Ihre Ruby on Rails-Anwendung ausgeführt und betriebsbereit ist, bevor Sie mit der Konfiguration beginnen.

1. Öffnen Sie die Nginx-Konfigurationsdatei, die sich normalerweise im Verzeichnis /etc/nginx/nginx befindet.conf.

2. Fügen Sie den folgenden Codeblock innerhalb der http-Partition hinzu:

http location @rails >>

Nachdem Sie die Konfigurationsdatei geändert haben, speichern Sie sie und starten Sie den Nginx-Dienst neu, indem Sie den Befehl sudo service nginx restart ausführen.

Ihr Nginx ist jetzt so konfiguriert, dass er ordnungsgemäß mit der Ruby on Rails-Anwendung funktioniert. Sie können überprüfen, ob es funktioniert, indem Sie einen Webbrowser öffnen und Ihre Domain in die Adressleiste eingeben.

Optimieren von Nginx-Einstellungen für hohe Leistung

Hier sind einige Richtlinien zur Optimierung von Nginx-Einstellungen:

  1. Komprimieren von Inhalten. Aktivieren Sie die Datenkomprimierung, um die Größe der übertragenen Dateien zu reduzieren. Verwenden Sie dazu die gzip-Direktive und geben Sie die gewünschten Dateitypen für die Komprimierung an.
  2. Zwischenspeichern von Statik. Wenn Ihre Website viele statische Dateien enthält, sollten Sie sie mit der proxy_cache-Direktive zwischenspeichern. Dadurch wird die Serverlast erheblich reduziert.
  3. Zugangsbeschränkung. Beschränken Sie den Zugriff auf bestimmte Dateien oder Verzeichnisse mithilfe der location-Direktive, um die Sicherheit zu erhöhen. Sie können beispielsweise den Zugriff auf Konfigurationsdateien oder kritische Anwendungsdateien verweigern.
  4. Korrekte Überschriften festlegen. Gut abgestimmte Header können die Leistung Ihrer Website erheblich verbessern. Sie können beispielsweise die expires- und Cache-Control-Header für den zwischengespeicherten Inhalt festlegen.
  5. Lastenausgleich. Wenn Ihr Service viele Anfragen erhält, teilen Sie die Last auf mehrere Serverinstanzen auf. Verwenden Sie dazu die proxy_pass-Direktive.
  6. Überwachung und Protokollierung. Aktivieren Sie die Erfassung und Protokollierung von Statistiken, um den Serverbetrieb zu überwachen und mögliche Probleme zu identifizieren.

Wenn Sie diese Richtlinien befolgen, können Sie Ihre Nginx-Einstellungen optimieren, um die beste Leistung Ihrer Website oder Anwendung zu erzielen. Vergessen Sie auch nicht, den Server regelmäßig auf Updates zu überprüfen und diese zu verwenden, um die Sicherheit und Stabilität der Leistung zu verbessern.

Konfigurieren der Gzip-Komprimierung in Nginx

Führen Sie die folgenden Schritte aus, um die Gzip-Komprimierung in Nginx zu konfigurieren:

  1. Öffnen Sie die Nginx-Konfigurationsdatei unter /etc/nginx/nginx.conf oder /etc/nginx/conf.d/default.conf .
  2. Fügen Sie die folgenden Zeilen im http-Abschnitt hinzu oder entfernen Sie sie auskommentieren :

gzip on; Aktivieren der Gzip-Komprimierung
gzip_comp_level 6; Komprimierungsgrad. Je größer die Zahl ist, desto größer wird die CPU zum Komprimieren, aber die Gesamtgröße der Dateien wird kleiner sein.
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript; Liste der MIME-Dateitypen, die komprimiert werden sollen

Nach diesen Einstellungen komprimiert Nginx die Dateien automatisch, bevor sie an den Client gesendet werden. Sie können überprüfen, ob die Gzip-Komprimierung funktioniert, indem Sie Tools zum Analysieren von weitergeleiteten HTTP-Headern wie Fiddler oder Chrome Developer Tools verwenden.

Die Installation und korrekte Konfiguration der Gzip-Komprimierung wird dazu beitragen, die Leistung Ihres Webservers erheblich zu verbessern und das Laden von Seiten für die Benutzer zu beschleunigen.

Optimieren von TLS/SSL-Einstellungen in Nginx

Im Folgenden sind einige grundlegende TLS/SSL-Einstellungen in Nginx aufgeführt, die Sie bei der Optimierung Ihres Servers berücksichtigen sollten:

EinstellungDie Beschreibung
ssl_protocolsGibt die vom Server unterstützten TLS/SSL-Protokollversionen an. Es wird empfohlen, nur die sichersten Versionen zu verwenden, z. B. "TLSv1.2 TLSv1.3".
ssl_ciphersLegt eine Liste von Chiffren fest, die für die Kommunikation zwischen Client und Server verwendet werden können. Es wird empfohlen, nur zuverlässige und sichere Chiffren zu verwenden.
ssl_prefer_server_ciphersBestimmt, ob der Server die in ssl_ciphers angegebenen Verschlüsselungen priorisieren soll. Es wird empfohlen, den Wert auf "on" zu setzen, um die Verwendung weniger sicherer Chiffren zu verhindern, wenn der Client und der Server mehrere Chiffren unterstützen.
ssl_session_cacheLegt den Mechanismus zum Zwischenspeichern von TLS/SSL-Sitzungen auf dem Server fest. Die Verwendung des Sitzungscaches kann die Serverleistung erheblich verbessern.
ssl_session_timeoutGibt die Lebensdauer des TLS/SSL-Sitzungscaches an. Sie können den Wert abhängig von Ihrer Verwendung auf mehrere Stunden oder Tage einstellen.

Die korrekte Konfiguration von TLS/SSL in Nginx wird dazu beitragen, die Sicherheit Ihrer Website zu verbessern und eine optimale Leistung bei der Datenübertragung zwischen Client und Server zu gewährleisten.

Aktivieren des Caching, um die Rails-App zu beschleunigen

Um das Caching in einer Rails-Anwendung mit Nginx zu aktivieren, müssen Sie die folgenden Schritte ausführen:

config.cache_store = :redis_cache_store, < url: "redis://localhost:6379/0" >
http >>
location ~ ^/purge(/.*)

Nach Abschluss dieser Schritte wird Nginx die Anforderungen an die Rails-Anwendung zwischenspeichern und die gespeicherten Ergebnisse verwenden, um die Arbeit zu beschleunigen. Beachten Sie, dass die Verwendung von Caching zu Problemen mit der Aktualität der Daten führen kann. Daher müssen Sie die Regeln für die Cache-Deaktivierung korrekt konfigurieren und bei Bedarf aktualisieren.

Das Aktivieren von Caching mit Nginx ist eine Möglichkeit, die Funktionalität einer Rails-Anwendung zu optimieren. Darüber hinaus gibt es jedoch andere Optimierungstechniken, wie das Installieren von CDN, das Minimieren der Ressourcenauslastung und das Anwenden moderner Codeoptimierungstechniken. Die Verwendung einer Kombination dieser Techniken kann zu einer signifikanten Leistungssteigerung und einer Beschleunigung der Rails-Anwendung führen.

Überwachung und Protokollierung der Leistung von Nginx für Rails

Eines der am häufigsten verwendeten Tools zur Überwachung von Nginx – nginx_status Modul. Es bietet Informationen über den aktuellen Status des Servers, z. B. die Anzahl der aktiven Verbindungen, die Gesamtzahl der Anfragen und deren Verteilung nach Status sowie andere nützliche Statistiken. Um ein Modul in die Nginx-Konfiguration aufzunehmen, fügen Sie dem http-Abschnitt den folgenden Block hinzu:

server >

Um Nginx-Statistiken zu erhalten, verwenden Sie nginx_status, führen Sie den Befehl aus:

curl http://localhost/nginx_status

Ein weiteres nützliches Werkzeug zur Überwachung von Nginx ist nginx log module. Es ermöglicht Ihnen, zusätzliche Informationen in Nginx-Protokolldateien wie die Ausführungszeit der Anfrage, die Größe der Anfrage und der Antwort, Fehlercodes und vieles mehr zu schreiben. Um das Modul zu aktivieren, fügen Sie der Nginx-Konfiguration die folgende Zeile hinzu:

log_format custom '$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" "$request_time"';access_log /var/log/nginx/access.log custom;

Das Team log_format definiert ein benutzerdefiniertes Protokolldateiformat, in dem die erforderlichen Variablen angegeben werden. In diesem Beispiel wurde der Parameter "$request_time" hinzugefügt, der angibt, wann die Anforderung ausgeführt wird. Dann in der Richtlinie access_log geben Sie den Pfad zur Protokolldatei und das Format des Datensatzes an. Mit dieser Konfiguration können Sie zusätzliche Informationen zur Leistung Ihrer Anwendung erhalten und Engpässe identifizieren.

Die Überwachung und Protokollierung der Leistung von Nginx für Rails ist ein wichtiger Teil des Serverkonfigurations- und Optimierungsprozesses. Die schnelle Reaktion auf Probleme und die Analyse der erhaltenen Daten helfen Ihnen, Ihre Anwendung noch schneller und zuverlässiger zu machen.