Integration mit NGINX
NGINX ist ein leistungsstarker Webserver, der hohe Leistung und Vielseitigkeit bietet.
Mit der Integration von NGINX können wir von Techniken profitieren, die Fragen zu Lastverteilung, Reverse-Proxy, Cache, Sicherheit und anderen Themen lösen.
NGINX installieren
NGINX zu installieren ist sehr einfach; in jeder Linux-Distribution sollte NGINX in den Paketquellen verfügbar sein.
In Ubuntu- oder Debian-Distributionen:
apt install nginx
In CentOS-, Fedora- oder RedHat-Distributionen:
yum install nginx
Auf MacOS X ist es über brew und macports verfügbar.
Für Windows können Sie den Installer unter http://nginx.org/en/download.html herunterladen.
Konfiguration
Für dieses Beispiel gehen wir davon aus, dass Netuno bereits installiert und unter /srv/netuno in Betrieb ist.
Um eine neue Website in NGINX zu konfigurieren, navigieren Sie zum Konfigurationsverzeichnis:
- Bei Linux-Distributionen befindet es sich normalerweise unter:
/etc/nginx - Bei MacOS X mit brew:
/usr/local/etc/nginx
Erstellen Sie eine neue Konfigurationsdatei für die neue Website unter sites-available/netuno.
Der Inhalt dieser Datei lautet:
server {
listen 127.0.0.1:80;
server_name app.ihre-domain.com;
location / {
proxy_pass http://127.0.0.1:9000;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host name-ihrer-netuno-app.local.netu.no;
}
location /netuno {
root /srv/netuno/core/web;
}
location /public {
root /srv/netuno/apps/name-ihrer-netuno-app;
}
}
Sie können die Zeile mit listen 127.0.0.1:80 auf Ihre externe IP und den entsprechenden Port ändern.
Und wo name-ihrer-netuno-app steht, sollte der Name Ihrer App stehen, zum Beispiel meineapp.
Falls der Name der Anwendung ein
_enthält, wiemeine_app, dann weil Netuno das-im Namen von Anwendungen nicht erlaubt. Da in Domainadressen das_nicht unterstützt wird, muss es durch-ersetzt werden, das Netuno automatisch in_umwandelt und die entsprechende App findet.
Das .local.netu.no ist eine Abkürzung für localhost; alternativ kann .localhost verwendet werden.
Das liegt daran, dass Netuno automatisch nach einer App mit dem Namen sucht, der der Subdomain entspricht. Daher ist es sehr wichtig, im Host, der bei Netuno ankommt, im Präfix den Namen der Anwendung anzugeben.
In diesem Beispiel gehen wir davon aus, dass Netuno auf Port 9000 und unter dem Pfad /src/netuno läuft. Prüfen Sie diese Information und passen Sie sie bei Bedarf an.
Der öffentliche Webinhalt von Netuno befindet sich im Verzeichnis core/web, aber nicht alles sollte verfügbar gemacht werden, nur das Verzeichnis netuno.
Daher sind die einzigen Verzeichnisse, die direkt verfügbar gemacht werden, das Verzeichnis core/web/netuno und das Verzeichnis public der entsprechenden Anwendung.
Aktivieren der Konfiguration der neuen Website
Jetzt muss ein symbolischer Link für unsere neue Konfigurationsdatei erstellt werden, um unsere neue Website zu aktivieren.
Das liegt daran, dass die Methode zur Konfiguration von NGINX-Websites unter Linux darin besteht, die Konfigurationsdateien im Verzeichnis sites-available zu halten, während das, was aktiv ist, im Verzeichnis sites-enabled definiert wird.
Daher ist die Erstellung des symbolischen Links wichtig, um die Duplizierung von Dateien zu vermeiden und sicherzustellen, dass alle Änderungen in einer einzigen Datei vorgenommen werden.
Unter Linux erstellt man den symbolischen Link folgendermaßen:
ln -s /etc/nginx/sites-available/netuno /etc/nginx/sites-enabled/netuno
NGINX-Konfiguration neu laden
Denken Sie daran, dass die NGINX-Konfiguration neu geladen werden muss, damit diese Konfiguration wirksam wird.
Neu laden:
nginx -s reload
Oder neu starten:
killall nginx
nginx
Oder auf elegantere Weise:
service nginx restart
Oder stoppen Sie den Server vollständig und starten Sie ihn erneut:
service nginx stop
service nginx start
Sie können den Status von NGINX mit dem folgenden Befehl prüfen:
service nginx status
Die Logdateien von NGINX befinden sich im Verzeichnis /var/log/nginx.
Fiktive lokale Adresse
Netuno entscheidet anhand des Präfixes der Adresse, die im Host-Header des HTTP ankommt, welche Anwendung die Anfrage (Request) verarbeitet, wobei das Präfix den exakten Namen der Netuno-Anwendung enthalten muss.
Daher ist es möglich, eine fiktive Adresse zu verwenden, um Netuno lediglich mitzuteilen, dass die richtige Anwendung verwendet werden soll.
Wir haben meine-app.local.netu.no, das immer zur lokalen IP auflöst.
Die Anwendung in Netuno muss
meine_appsein, da Netuno das-im Namen von Anwendungen nicht erlaubt und, da die Domain_nicht unterstützt, es durch-ersetzt wird, das Netuno automatisch in_umwandelt.
Alternativ kann eine lokale Adresse wie meine-app.localhost erstellt werden. In diesem Fall muss diese Adresse als lokaler Host registriert werden; Sie sollten die Auflösung der Adresse in Ihrer Hosts-Datei erzwingen. Unter Linux bearbeiten Sie die Datei:
/etc/hosts
Und fügen Sie die Zeile hinzu:
127.0.0.1 meine-app.localhost
Jetzt kann diese lokale Adresse in NGINX verwendet werden.
Wenn Sie sich in einer lokalen Entwicklungsumgebung befinden, prüfen Sie einfach in Ihrem Browser über die Adresse:
- Über NGINX:
http://meine-app.localhost
- Direkt an Netuno:
http://meine-app.localhost:9000
Wenn Sie sich in einem Server oder Container über das Terminal befinden, verwenden Sie den cURL-Befehl, zum Beispiel:
- Über NGINX:
curl -v http://meine-app.localhost:9000
- Direkt an Netuno:
curl -v http://meine-app.localhost:9000
Stellen Sie immer sicher, dass meine-app der Name Ihrer Anwendung ist.
In einer lokalen Entwicklungsumgebung kann es bei einer Korrektur, insbesondere an der hosts-Datei des Betriebssystems, erforderlich sein, den Browser aufgrund des DNS-Auflösungscaches neu zu starten.
Wenn eine Konfiguration in NGINX korrigiert werden muss, vergessen Sie nicht, die Konfiguration immer neu zu laden.