blob: f4667fb2abd9a92c2074a86280ae8466799aecfb [file] [log] [blame]
Matthias Andreas Benkard7b455cd2026-08-09 08:33:37 +02001# Reverse-Proxy-Vorlage für den ÄndGgner-Webserver. Übernimmt TLS-Terminierung und
2# Rate-Limiting; der Java-Prozess selbst bindet nur an 127.0.0.1 (siehe aendggner-web.service).
3#
4# Vor dem Einsatz anpassen: server_name, ssl_certificate(_key) (z. B. via certbot).
5
6limit_req_zone $binary_remote_addr zone=aendggner:10m rate=10r/m;
7
8server {
9 listen 80;
10 listen [::]:80;
11 server_name aendggner.example.org;
12 return 301 https://$host$request_uri;
13}
14
15server {
16 listen 443 ssl http2;
17 listen [::]:443 ssl http2;
18 server_name aendggner.example.org;
19
20 ssl_certificate /etc/letsencrypt/live/aendggner.example.org/fullchain.pem;
21 ssl_certificate_key /etc/letsencrypt/live/aendggner.example.org/privkey.pem;
22
23 # Muss zum Upload-Limit von UploadHandler (MAX_BODY_BYTES, aktuell 40 MB) passen.
24 client_max_body_size 40m;
25
26 location / {
27 limit_req zone=aendggner burst=5 nodelay;
28
29 proxy_pass http://127.0.0.1:8080;
30 proxy_set_header Host $host;
31 proxy_set_header X-Real-IP $remote_addr;
32 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
33 proxy_set_header X-Forwarded-Proto $scheme;
34
35 # Etwas großzügiger als der 30s-Timeout der Anwendung, damit deren eigene
36 # 504-Antwort den Nutzer erreicht statt eines nginx-eigenen Timeouts.
37 proxy_read_timeout 35s;
38 }
39}