Hostwinds Tutorials

Suchergebnisse für:


Inhaltsverzeichnis


Voraussetzungen
Nginx-Konfiguration
Testen Sie die Nginx-Konfiguration

Nginx Reverse Proxy mit SSL

Stichworte: Cloud Servers,  SSL,  VPS 

Voraussetzungen
Nginx-Konfiguration
Testen Sie die Nginx-Konfiguration

Nginx ist ein leistungsstarkes Werkzeug. Sie können mehrere Apps, Websites, lastbalancierte Anwendungen und vieles mehr bedienen. Diese Flexibilität ist alles mit einem relativ einfachen Konfigurationssystem, das nahezu-human-lesbare Konfigurationsdateien verwendet. Dieser Anleitung zeigt, wie Sie einen NginX-Reverse-Proxy mit SSL auf a einrichten Hostwinds Cloud VPS.

Voraussetzungen

Dieser Anleitung übernimmt ein allgemeines Verständnis für das Verwenden eines Linux-basierten Systems über die Befehlszeile und übernimmt die folgenden Voraussetzungen weiter:

  • Ubuntu 18.04
  • Nicht-Root-Benutzer
  • App, die auf dem gewünschten Reverse-Proxy-Port ausgeführt wird (In diesem Handbuch wird Port 3000 angenommen.)
  • DNS Ein Namensdatensatz für die gewünschte Domain
  • SSL-Zertifikat für die Domain

Nginx-Konfiguration

Das Nginx-vollständige Paket verwendet standardmäßig eine dynamische Shared Virtual Host-Umgebung. Die Konfigurationsdateien für jeden virtuellen Host können hier verwendet werden:

/etc/nginx/sites-available/

An diesem Speicherort wird eine Datei namens aufgerufen Standard zur Verfügung, um als Basisvorlage zu verwenden. Wir erstellen jedoch manuell eine neue Konfigurationsdatei in diesem Handbuch und füllen sie nach Bedarf aus. Einmal als Nicht-Root-Benutzer angemeldet, geben Sie diesen Befehl aus, um den Prozess zu starten:

sudo touch /etc/nginx/sites-available/domain.tld

Achten Sie darauf, zu ersetzen domain-tld. mit der Domain, die Sie tatsächlich verwenden.

Als Nächstes ändern wir, um diese Datei zu ändern, um die Aufgaben auszuführen, die wir benötigen. Wir werden benutzen vim in dieser Anleitung als Texteditor. Sie können verwenden Nano oder einen anderen Texteditor, der Ihren persönlichen Vorlieben entspricht.

sudo vim /etc/nginx/sites-available/domain.tld

Da die Datei jetzt existiert, fügen Sie dieser Datei den folgenden Text hinzu. Ändern Sie den angegebenen Text, der an Ihre Domäne angezeigt wird, wobei der Anschluss Ihre App verwendet, und Ihre SSL-Zertifikatpfade. Diese Datei ist die Hauptkonfiguration für den umgekehrten Proxy:

###
# This Section listens on port 80 for your domain and rewrites the request 
# to HTTPS for us
###

server {
listen 80;
server_name domain.tld www.domain.tld; # Edit this to your domain name
rewrite ^ https://$host$request_uri permanent;
}

###
# This is all the configuration declarations that help SSL Function.
###

server {
listen 443 ssl;

server_name domain.tld;
# Edit this to your domain name

ssl_certificate /etc/letsencrypt/live/domain.tld/fullchain.pem;       
# If you use Lets Encrypt, you should just need to change the domain. 

ssl_certificate_key /etc/letsencrypt/live/domain.tld/privkey.pem;     
# If you use Let's Encrypt, you should just need to change the domain.

ssl_session_cache builtin:1000 shared:SSL:10m;                        
# Defining option to share SSL Connection with Passed Proxy

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;                                  
# Defining used protocol versions. 

ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4; 
# Defining ciphers to use. 

ssl_prefer_server_ciphers on;                                         
# Enabling ciphers

access_log /var/log/nginx/access.log;                                 
# Log Location. Can be anywhere. Make sure the nginx user defined in /etc/nginx/nginx.conf has r/w permissions

###
# This is the juicey part of the config file, handing off relevant data to 
# our back-end app running on port 3000
# Nothing should need to be changed here, unless port 3000 is not the port 
# you're using. 
# Furthermore, if you're using a socket to serve your app (PHP comes to 
# mind), you can define a unix:.sock location here as well
###

location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://localhost:3000;
proxy_read_timeout 90;
}
}

Speichern Sie die Datei und beenden Sie den Texteditor.

Testen Sie die Nginx-Konfiguration

Nachdem die Konfiguration erstellt wurde, müssen wir Nginx anweisen, beim Laden nach der Datei zu suchen. Wir werden eine symbolische Verbindung herstellen:

sudo ln -s /etc/nginx/sites-avaialable/domain.tld /etc/nginx/sites-enabled/domain.tld.conf

Als Nächstes testen wir die Konfiguration, bevor wir den Nginx-Systemdienst neu starten

sudo nginx -t

Anschließend sollte der Test ausgeführt und bei Erfolg die folgende Meldung ausgegeben werden:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Wir wissen jetzt, dass die Konfigurationsdatei keinen Absturz verursacht, also starten wir den NginX-Dienst neu und testen Sie die App.

sudo systemctl restart nginx

Sie sollten jetzt Zugriff auf die App haben, die auf dem definierten Anschluss läuft, indem Sie mit dem Surfen auf den definierten Port läuft domain-tld. wie in der zuvor erstellten Nginx-Konfigurationsdatei dargestellt.

Geschrieben von Hostwinds Team  /  Juni 14, 2019