blob: f4667fb2abd9a92c2074a86280ae8466799aecfb [file] [log] [blame]
# Reverse-Proxy-Vorlage für den ÄndGgner-Webserver. Übernimmt TLS-Terminierung und
# Rate-Limiting; der Java-Prozess selbst bindet nur an 127.0.0.1 (siehe aendggner-web.service).
#
# Vor dem Einsatz anpassen: server_name, ssl_certificate(_key) (z. B. via certbot).
limit_req_zone $binary_remote_addr zone=aendggner:10m rate=10r/m;
server {
listen 80;
listen [::]:80;
server_name aendggner.example.org;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name aendggner.example.org;
ssl_certificate /etc/letsencrypt/live/aendggner.example.org/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/aendggner.example.org/privkey.pem;
# Muss zum Upload-Limit von UploadHandler (MAX_BODY_BYTES, aktuell 40 MB) passen.
client_max_body_size 40m;
location / {
limit_req zone=aendggner burst=5 nodelay;
proxy_pass http://127.0.0.1:8080;
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;
# Etwas großzügiger als der 30s-Timeout der Anwendung, damit deren eigene
# 504-Antwort den Nutzer erreicht statt eines nginx-eigenen Timeouts.
proxy_read_timeout 35s;
}
}