upstream etherpad_upstream { server 127.0.0.1:9001; } server { listen 80; server_name {{ etherpad_server_name }}; {% if etherpad_tls %} include snippets/well-known-acme-challenge.conf; location / { return 302 https://$server_name$request_uri; } } server { listen 443 ssl http2; listen [::]:443 ssl http2; server_name {{ etherpad_server_name }}; include {{ etherpad_tls }}; {% endif %} access_log /var/log/nginx/{{ etherpad_server_name }}.access.log; location ~ ^/(locales/|locales.json|admin/|static/|pluginfw/|javascripts/|socket.io/|ep/|minified/|api/|ro/|error/|jserror/|favicon.ico|robots.txt) { proxy_buffering off; proxy_pass http://etherpad_upstream; } location /p/ { rewrite ^/p/(.*) /$1 redirect; } location /direct/ { rewrite /direct/(.*) /$1 break; proxy_set_header Host $host; 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://etherpad_upstream/p/; } {% if use_wikimedia %} location ~ ^/$ { return 302 https://etherpad.wikimedia.org/p/emacsconf-2022; } location / { rewrite /(.*) https://etherpad.wikimedia.org/p/emacsconf-$1 redirect; } {% else %} location ~ ^/$ { proxy_buffering off; proxy_pass http://etherpad_upstream; } location ~ ^/pad-lister($|\/.*) { proxy_buffering off; proxy_pass http://etherpad_upstream; } location / { proxy_set_header Host $host; 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://etherpad_upstream/p/; proxy_redirect / /p/; proxy_read_timeout 90; } {% endif %} }