nginx: servers: managed: matrix.kyriasis.com: enabled: True config: - upstream matrix_backend: - server: 127.0.0.1:8449 - upstream synapse_metrics: - server: 127.0.0.1:9091 - server: - server_name: matrix.kyriasis.com - listen: 80 - listen: '[::]:80' - location /.well-known/acme-challenge: - root: /srv/http/ - location /: - return: '301 https://$server_name$request_uri' - server: - server_name: matrix.kyriasis.com - listen: 443 ssl http2 default_server - listen: '[::]:443 ssl http2 default_server' - ssl_certificate: /etc/letsencrypt/live/matrix.kyriasis.com/fullchain.pem - ssl_certificate_key: /etc/letsencrypt/live/matrix.kyriasis.com/privkey.pem - ssl_dhparam: /etc/nginx/dhparam.pem - ssl_stapling: 'on' - ssl_stapling_verify: 'on' - ssl_trusted_certificate: /etc/letsencrypt/live/matrix.kyriasis.com/fullchain.pem # https://developer.mozilla.org/en-US/docs/Security/HTTP_Strict_Transport_Security - add_header: 'Strict-Transport-Security "max-age=31536000"' # Tell browsers to not try to auto-detect the Content-Type. - add_header: X-Content-Type-Options nosniff # Enable the Cross-site scripting filter in most recent browsers. # Normally enabled by default, but enable it anyway if user has disabled it. - add_header: 'X-XSS-Protection "1; mode=block"' # http://www.gnuterrypratchett.com/ - add_header: 'X-Clacks-Overhead "GNU Terry Pratchett"' - client_max_body_size: 128m - error_log: /var/log/nginx/matrix.error.log - location /: - return: 301 https://riot.kyriasis.com - location /_matrix: - proxy_pass: https://matrix_backend - proxy_buffering: "off" - proxy_set_header: X-Forwarded-For $remote_addr - proxy_set_header: Host $host - "if ($sent_http_access_control_allow_origin ~ '')": - add_header: "'Access-Control-Allow-Origin' '*'" - add_header: "'Access-Control-Allow-Methods' 'GET, PUT, POST, DELETE, HEAD, OPTIONS'" - location /_synapse: - proxy_pass: http://synapse_metrics - proxy_buffering: "off" - proxy_set_header: X-Forwarded-For $remote_addr - proxy_set_header: Host $host - proxy_http_version: 1.1 - location /.well-known/acme-challenge: - root: /srv/http/ - location /.well-known/matrix/client: - proxy_pass: https://matrix_backend - proxy_buffering: "off" - proxy_set_header: X-Forwarded-For $remote_addr - proxy_set_header: Host $host - add_header: "'Access-Control-Allow-Origin' '*'" - add_header: "'Access-Control-Allow-Methods' 'GET, PUT, POST, DELETE, HEAD, OPTIONS'" # vim: ft=yaml et: