server { listen 443 ssl; http2 on; server_name ether.labunix.xyz; ssl_certificate /etc/letsencrypt/live/labunix.xyz/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/labunix.xyz/privkey.pem; limit_req zone=etherpad_req burst=60 nodelay; limit_conn etherpad_conn 20; client_max_body_size 1m; # Admin only (protect both /admin and /admin/) location = /admin { auth_basic "Etherpad Admin"; auth_basic_user_file /etc/nginx/htpasswd-etherpad-admin; proxy_pass http://127.0.0.1:9001; 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 https; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_read_timeout 120s; proxy_send_timeout 120s; proxy_buffering off; } location ^~ /admin/ { auth_basic "Etherpad Admin"; auth_basic_user_file /etc/nginx/htpasswd-etherpad-admin; proxy_pass http://127.0.0.1:9001; 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 https; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_read_timeout 120s; proxy_send_timeout 120s; proxy_buffering off; } location / { proxy_pass http://127.0.0.1:9001; 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 https; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_read_timeout 120s; proxy_send_timeout 120s; proxy_buffering off; } }