# Synapse-Client- und Federation-API. Synapse selbst lauscht nur auf # 127.0.0.1:8008; TLS und Port 443 macht nginx. server { listen 80; listen [::]:80; server_name matrix.example.com; location /.well-known/acme-challenge/ { root /var/www/html; } location / { return 301 https://$host$request_uri; } } server { listen 443 ssl; listen [::]:443 ssl; http2 on; server_name matrix.example.com; ssl_certificate /etc/letsencrypt/live/matrix.example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/matrix.example.com/privkey.pem; include /etc/letsencrypt/options-ssl-nginx.conf; ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # Muss mindestens so gross sein wie max_upload_size in Synapse. client_max_body_size 100M; location ~ ^(/_matrix|/_synapse/client) { proxy_pass http://127.0.0.1:8008; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Host $host; proxy_http_version 1.1; # Long-Polling (/sync) darf nicht nach 60s abgeschnitten werden. proxy_read_timeout 3600s; proxy_send_timeout 3600s; proxy_buffering off; } location / { return 200 'Matrix homeserver. Web client: https://element.example.com\n'; default_type text/plain; } }