ssl_certificate /etc/certs/${NGINX_CERT}; ssl_certificate_key /etc/certs/${NGINX_CERT_KEY}; # Zunächst wird ein Default-Server definiert. # Das Standardverhalten von NGINX ist nämlich wie folgt: # Wenn im Request ein Server-Name reinkommt und NGINX keinen Server-Block findet, in dem dieser # Servername definiert wird, wird einfach der erste definierte Serverblock genommen. # Dadurch, dass ein expliziter Default-Server definiert wird, wird dieser verwendet. # Falls jetzt also ein Servername übergeben wird, den es nicht gibt, gibt NGINX den Error-Code 404 zurück server { listen 4430 ssl default_server; return 404; } server { listen 4430 ssl; server_name ${NGINX_SERVER_NAME}; resolver 127.0.0.11 valid=30s; # notwendig, damit der Upstream (s.u.) nicht direkt den nginx-Server stoppt, falls pythonapp noch nicht soweit ist # https://sandro-keil.de/blog/let-nginx-start-if-upstream-host-is-unavailable-or-down/ location /static { root /usr/share/nginx/html; } location / { # Variable muss benutzt werden (s.o. bei resolver Direktive) set $upstream pythonapp:8080; proxy_pass http://$upstream; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } location /health-check { add_header Content-Type text/plain; return 200 "success $time_iso8601"; } }