Minimales lokales nginx-Setup mit Docker
English
Deutsch
Wenn Sie Docker nicht installiert haben, siehe unsere Anleitung unter Docker und docker-compose auf Ubuntu in 30 Sekunden installieren
- Erstellen Sie Ihre
nginx-Konfigurationsdatei (my-nginx.conf). Dies ist eine Vorlage, die TechOverflow als Reverse-Proxy verwendet:
my-nginx.conf
server {
listen 80 default_server;
listen [::]:80 default_server;
location / {
proxy_pass https://techoverflow.net;
proxy_http_version 1.1;
}
}- Starten Sie
nginxmitdocker:
run_nginx_docker.sh
docker run -it -p 80:80 --rm -v $(pwd)/my-nginx.conf:/etc/nginx/conf.d/default.conf nginx:latest- Gehen Sie zu http://localhost und sehen Sie das Ergebnis!
Erklärung des docker-Befehls:
docker run -it: Erstellt einen neuen Docker-Container und führt ihn im interaktiven Modus aus (d.h. er wird nicht im Hintergrund ausgeführt, sobald Sie den Befehl beenden, wird nginx beendet)-p 80:80: Macht Port 80 desnginx-Servers (der Standard-HTTP-Port) auf Port80des Hosts verfügbar. Die erste80ist der Host-Port, während die zweite80der Container-Port ist.--rm: Sobald der Container gestoppt wird, löschen Sie ihn!-v $(pwd)/my-nginx.conf:/etc/nginx/conf.d/default.conf: Bindet my-nginx.conf im aktuellen Verzeichnis ($(pwd)) an /etc/nginx/conf.d/default.conf im Container.nginx:latest: Verwendet im Container das offizielle nginx-Image von DockerHub in derlatest-Version.
Erklärung der nginx-Konfigurationsdatei:
server { ... }: Alles innerhalb dieses Blocks gehört zusammen.listen 80 default_server;Auf Port 80 lauschen (dem Standard-HTTP-Port) und dies als Standard-Server festlegen, d.h. auf alle Domänennamen antworten, für die kein anderer Server konfiguriert ist.listen [::]:80 default_server;Wie die vorherige Zeile, aber für IPv6.[::]bedeutet: Auf allen IPv6-Adressen lauschen.location / { ... }: Alles innerhalb dieses Blocks gilt für alle URLs, die mit/beginnen, d.h. alle URLs überhaupt. In Klauseln wielocation /app { ... }würde der Inhalt der Klausel nur für URLs gelten, die mit/appbeginnen, z.B.http://localhost/app/oderhttp://localhost/app/dashboard.proxy_pass https://techoverflow.net;Leitet Anfragen der aktuellen Location (/) an den Serverhttps://techoverflow.netüber einen Reverse-Proxy weiter.proxy_http_version 1.1;Dies legt die HTTP-Version fest, die nginx für die Anfragen anhttps://techoverflow.netverwendet. Dies ist nicht immer notwendig, kann aber die Kompatibilität erhöhen.
If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow