# Erststart-Konfiguration. Ab der ersten Uebernahme in der Anwendung
# (Verwaltung -> Webserver und TLS) wird diese Datei vollstaendig neu
# geschrieben -- inklusive HTTPS auf 443, Umleitung von 80 und HSTS.
server {
    listen 80;
    listen [::]:80;
    server_name _;

    location /.well-known/acme-challenge/ {
        alias /var/www/tesm-acme/.well-known/acme-challenge/;
        default_type "text/plain";
    }

    client_max_body_size 160m;

    location /assets/ {
        alias /srv/tesm/static/;
        expires 7d;
        access_log off;
    }

    location /core-assets/ {
        alias /srv/tesm/static-core/;
        expires 7d;
        access_log off;
    }

    location /ws/ {
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        # $http_host statt $host: $host verwirft den Port. Hinter einem Proxy auf
        # abweichendem Port wuerde die Origin-Pruefung der Anwendung sonst
        # fehlschlagen.
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-Host $http_host;
        proxy_set_header X-Forwarded-Port $server_port;
        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;
        proxy_pass http://127.0.0.1:5000;
        proxy_http_version 1.1;
        proxy_read_timeout 3600s;
        proxy_send_timeout 3600s;
        proxy_buffering off;
    }

    location / {
        # $http_host statt $host: $host verwirft den Port. Hinter einem Proxy auf
        # abweichendem Port wuerde die Origin-Pruefung der Anwendung sonst
        # fehlschlagen.
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-Host $http_host;
        proxy_set_header X-Forwarded-Port $server_port;
        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;
        proxy_pass http://127.0.0.1:5000;
        proxy_http_version 1.1;
        proxy_read_timeout 120s;
    }
}
