# 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. # # Kopieer dit bestand handmatig naar bijvoorbeeld # /etc/nginx/sites-available/slpsoftware-test.conf op de reverse-proxy-Pi, # maak een symlink in sites-enabled, en herlaad nginx. # # SSL-certificaat: net als voor de productiesite wordt dit aangevraagd met # certbot (Let's Encrypt) rechtstreeks op deze reverse-proxy-Pi, bijvoorbeeld: # 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. # # Dit is de daadwerkelijk in gebruik zijnde configuratie op de reverse-proxy-Pi, # zoals door certbot gegenereerd/beheerd. Het HTTP-server-block onderaan (dat # doorverwijst naar HTTPS, behalve voor de ACME-challenge) en de #-commentaren # "managed by Certbot" zijn automatisch door certbot toegevoegd/aangepast. # # 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 { 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; } 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; } listen 443 ssl; # managed by Certbot listen [::]:443 ssl; # managed by Certbot ssl_certificate /etc/letsencrypt/live/test.slpsoftware.nl/fullchain.pem; # managed by Certbot ssl_certificate_key /etc/letsencrypt/live/test.slpsoftware.nl/privkey.pem; # managed by Certbot include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot } server { if ($host = test.slpsoftware.nl) { return 301 https://$host$request_uri; } # managed by Certbot listen 80; listen [::]:80; server_name test.slpsoftware.nl; return 404; # managed by Certbot }