{% macro synapse_common() %} location ~ ^(/_matrix|/_synapse/client) { proxy_pass http://localhost:8008; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Host $host; client_max_body_size 50M; proxy_http_version 1.1; } {% endif %} server { server_name {{var_synapse_and_nginx_domain}}; listen 80; listen [::]:80; {% if (var_synapse_and_nginx_tls_mode == "force") %} return 301 https://$http_host$request_uri; {% else %} {{ synapse_common() }} {% endif %} } {% if (var_element_and_nginx_tls_mode != "disable") %} server { server_name {{var_synapse_and_nginx_domain}}; listen 443 ssl http2; listen [::]:443 ssl http2; ## For the federation port listen 8448 ssl http2 default_server; listen [::]:8448 ssl http2 default_server; ssl_certificate_key /etc/ssl/private/{{var_synapse_and_nginx_domain}}.pem; ssl_certificate /etc/ssl/fullchains/{{var_synapse_and_nginx_domain}}.pem; include /etc/nginx/ssl-hardening.conf; {{ synapse_common() }} } {% endif %}