1
1
mirror of https://gitlab.archlinux.org/archlinux/infrastructure.git synced 2024-09-21 23:50:39 +02:00
infrastructure/roles/hedgedoc/templates/nginx.d.conf.j2
Kristian Klausen 1838416633 Fix spoofable X-Forwarded-For header for some proxied services
X-Forwarded-For is defined as X-Forwarded-For: <client>, <proxy1>,
<proxy2>, and it was set to $proxy_add_x_forwarded_for which is
basically $http_x_forwarded_for,$remote_addr and headers from the client
can't be trusted!

Fix #292
2021-06-06 20:01:59 +00:00

68 lines
1.8 KiB
Django/Jinja

upstream hedgedoc {
server localhost:3000;
}
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
server {
listen 80;
listen [::]:80;
server_name {{ hedgedoc_domain }};
access_log /var/log/nginx/{{ hedgedoc_domain }}/access.log main;
access_log /var/log/nginx/{{ hedgedoc_domain }}/access.log.json json_main;
error_log /var/log/nginx/{{ hedgedoc_domain }}/error.log;
include snippets/letsencrypt.conf;
location / {
return 301 https://$server_name$request_uri;
}
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name {{ hedgedoc_domain }};
access_log /var/log/nginx/{{ hedgedoc_domain }}/access.log main;
access_log /var/log/nginx/{{ hedgedoc_domain }}/access.log.json json_main;
error_log /var/log/nginx/{{ hedgedoc_domain }}/error.log;
ssl_certificate /etc/letsencrypt/live/{{ hedgedoc_domain }}/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/{{ hedgedoc_domain }}/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/{{ hedgedoc_domain }}/chain.pem;
{% set proxy -%}
proxy_pass http://hedgedoc;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
{%- endset %}
location / {
{{ proxy }}
}
location = /status {
return 403;
}
location = /metrics {
if ($http_authorization != "Bearer {{ vault_hedgedoc_metrics_token }}") {
return 403;
}
{{ proxy }}
}
location /socket.io/ {
{{ proxy }}
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
}
}