# Voorbeeldconfiguratie voor de nginx reverse proxy op de andere Raspberry Pi # (degene die wél vanaf het internet bereikbaar is en het binnenkomende verkeer # doorstuurt naar de webserver-Pi op 192.168.1.103:80) — voor de TESTOMGEVING, # bereikbaar via het domein test.slpsoftware.nl. # # Dit is de versie die je gebruikt VOORDAT certbot gedraaid heeft: alleen # poort 80, geen SSL. Certbot heeft dit HTTP-server-block namelijk nodig om # de ACME-challenge te kunnen afhandelen en zal, zodra je hem draait, dit # bestand zelf herschrijven om er de HTTPS-configuratie en de HTTP→HTTPS- # redirect aan toe te voegen. Zie reverse-proxy-nginx.conf.post-certbot.example # voor hoe het bestand er na die stap uit gaat zien (puur ter referentie — # dat bestand hoef je niet zelf te kopiëren, certbot genereert het). # # Kopieer dit bestand handmatig naar # /etc/nginx/sites-available/slpsoftware-test.conf op de reverse-proxy-Pi, # maak een symlink in sites-enabled, herlaad nginx, en draai dan pas certbot: # sudo certbot --nginx -d test.slpsoftware.nl # Zorg dat het DNS-record voor test.slpsoftware.nl al naar het publieke IP van # deze Pi wijst voordat je certbot draait. # # LET OP - gevonden foutje: de header hieronder heet `X-Real-IP` (met # koppelteken), niet `X-Real_IP` (met underscore). Een header met een # underscore is geen geldige/herkenbare naam voor de standaard `$http_x_real_ip`- # achtige verwerking; nginx stuurt de header wel door zoals opgegeven, maar # de ontvangende applicatie/module verwacht het koppelteken-formaat. Corrigeer # dit op de Pi zelf naar `X-Real-IP` zodra je de config daar aanpast. server { listen 80; listen [::]:80; server_name test.slpsoftware.nl; error_log /var/log/nginx/slpsoftware-test_error.log; access_log /var/log/nginx/slpsoftware-test_access.log; location /.well-known/acme-challenge/ { root /var/www/certbot; } # Sentry "tunnel" endpoint (see src/main.tsx's Sentry.init tunnel option). # Browser ad-blockers/privacy extensions commonly block requests that go # straight to *.ingest..sentry.io (ERR_BLOCKED_BY_CLIENT), since # that looks like third-party tracking. By forwarding this path server-side # to Sentry instead, the browser only ever talks to our own domain # (test.slpsoftware.nl), so it is no longer recognized/blocked as # third-party tracking. # # LET OP: de org-/project-id in de proxy_pass hieronder MOET overeenkomen # met de VITE_SENTRY_DSN die voor DEZE omgeving is ingesteld (de # `VITE_SENTRY_DSN` Gitea repository variable voor de testomgeving). Pas # dit aan als je ooit van Sentry-project/DSN wisselt. location /sentry-tunnel { proxy_pass https://o4511795618185216.ingest.de.sentry.io/api/4511795622838352/envelope/; proxy_set_header Host o4511795618185216.ingest.de.sentry.io; proxy_ssl_server_name on; } location / { proxy_pass http://192.168.1.103:80; 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; } }