Voeg productie-nginx-voorbeeldconfiguratie toe voor de reverse-proxy-Pi
Continuous Integration / config (pull_request) Successful in 10s
Continuous Integration / prepare (pull_request) Successful in 1m15s
Continuous Integration / build-production (pull_request) Skipped
Continuous Integration / build (pull_request) Successful in 1m57s
Continuous Integration / test (pull_request) Successful in 1m51s
Continuous Integration / deploy-test (pull_request) Skipped
Continuous Integration / deploy-production (pull_request) Skipped
Continuous Integration / config (pull_request) Successful in 10s
Continuous Integration / prepare (pull_request) Successful in 1m15s
Continuous Integration / build-production (pull_request) Skipped
Continuous Integration / build (pull_request) Successful in 1m57s
Continuous Integration / test (pull_request) Successful in 1m51s
Continuous Integration / deploy-test (pull_request) Skipped
Continuous Integration / deploy-production (pull_request) Skipped
production-nginx.conf.example (vóór certbot) en production-nginx.conf.post-certbot.example (referentie, na certbot) dekken alléén de react-frontend-site op slpsoftware.nl/www.slpsoftware.nl; de mail/iRedAdmin-proxying die op de daadwerkelijke productieserver ook op dit domein draait valt buiten de scope van deze feature en is bewust weggelaten. Bevat de acme-challenge location in het 443-blok (niet het poort-80-blok) en de sentry-tunnel-proxy, analoog aan de testomgeving- configuratie. Documentatie in deployment-plan.md en deployment-instructions.md bijgewerkt met productie-nginx-setupstappen. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
+55
@@ -0,0 +1,55 @@
|
||||
# Voorbeeldconfiguratie voor de nginx reverse proxy op de reverse-proxy-Pi
|
||||
# (dezelfde Pi als reverse-proxy-nginx.conf.example) voor de PRODUCTIEOMGEVING
|
||||
# van de react-frontend, bereikbaar via slpsoftware.nl / www.slpsoftware.nl.
|
||||
#
|
||||
# Dit bestand dekt ALLEEN de react-frontend-site. De daadwerkelijke productie-
|
||||
# server (pi-entry) regelt op hetzelfde domein ook mail/iRedAdmin-proxying
|
||||
# (naar een Odroid C4 op 192.168.1.104) — dat zijn aanvullende server-blocks
|
||||
# die niets met deze feature te maken hebben en bewust buiten dit voorbeeld
|
||||
# gelaten zijn. Voeg ze desgewenst zelf toe naast dit blok.
|
||||
#
|
||||
# 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 production-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.conf op de reverse-proxy-Pi, maak
|
||||
# een symlink in sites-enabled, herlaad nginx, en draai dan pas certbot:
|
||||
# sudo certbot --nginx -d slpsoftware.nl -d www.slpsoftware.nl
|
||||
# Zorg dat de DNS-records voor beide domeinen al naar het publieke IP van
|
||||
# deze Pi wijzen voordat je certbot draait.
|
||||
server {
|
||||
listen 80;
|
||||
listen [::]:80;
|
||||
|
||||
server_name slpsoftware.nl www.slpsoftware.nl;
|
||||
|
||||
error_log /var/log/nginx/slpsoftware_error.log;
|
||||
access_log /var/log/nginx/slpsoftware_access.log;
|
||||
|
||||
location /.well-known/acme-challenge/ {
|
||||
root /var/www/certbot;
|
||||
}
|
||||
|
||||
# Zelfde Sentry-tunnel-endpoint als de testomgeving (zie
|
||||
# reverse-proxy-nginx.conf.example): VITE_SENTRY_DSN is bewust gedeeld
|
||||
# tussen test en productie (één Sentry-project, environment-tag
|
||||
# onderscheidt ze), dus dezelfde org-/project-id hieronder is correct.
|
||||
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;
|
||||
}
|
||||
}
|
||||
+69
@@ -0,0 +1,69 @@
|
||||
# REFERENTIE ALLEEN — dit bestand hoef je niet handmatig te kopiëren.
|
||||
#
|
||||
# Dit toont hoe /etc/nginx/sites-available/slpsoftware.conf op de
|
||||
# reverse-proxy-Pi er automatisch uit komt te zien NADAT je certbot hebt
|
||||
# gedraaid (`sudo certbot --nginx -d slpsoftware.nl -d www.slpsoftware.nl`)
|
||||
# op basis van production-nginx.conf.example. Certbot voegt zelf de HTTPS-
|
||||
# configuratie en het HTTP→HTTPS-redirect-blok toe (herkenbaar aan de
|
||||
# "managed by Certbot" commentaren), en zet de error_log/access_log en
|
||||
# overige location-blocks gewoon over naar het nieuwe HTTPS-serverblok.
|
||||
#
|
||||
# Let op de plek van de acme-challenge location: die hoort in dit 443-blok,
|
||||
# niet in het losse poort-80-blok onderaan. De "if ($host = ...)"-redirects
|
||||
# daar worden door nginx in de rewrite-fase uitgevoerd, vóór location-
|
||||
# matching — een acme-challenge location in dat blok zou dus alsnog altijd
|
||||
# overruled worden door de redirect, en de eerstvolgende certificate-
|
||||
# renewal zou stilzwijgend falen.
|
||||
#
|
||||
# Dit bestand dekt ALLEEN de react-frontend-site (geen mail/iRedAdmin-
|
||||
# proxying) — zie production-nginx.conf.example voor de toelichting.
|
||||
server {
|
||||
|
||||
server_name slpsoftware.nl www.slpsoftware.nl;
|
||||
|
||||
error_log /var/log/nginx/slpsoftware_error.log;
|
||||
access_log /var/log/nginx/slpsoftware_access.log;
|
||||
|
||||
location /.well-known/acme-challenge/ {
|
||||
root /var/www/certbot;
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
listen 443 ssl; # managed by Certbot
|
||||
listen [::]:443 ssl; # managed by Certbot
|
||||
ssl_certificate /etc/letsencrypt/live/slpsoftware.nl/fullchain.pem; # managed by Certbot
|
||||
ssl_certificate_key /etc/letsencrypt/live/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 = www.slpsoftware.nl) {
|
||||
return 301 https://$host$request_uri;
|
||||
} # managed by Certbot
|
||||
|
||||
if ($host = slpsoftware.nl) {
|
||||
return 301 https://$host$request_uri;
|
||||
} # managed by Certbot
|
||||
|
||||
|
||||
listen 80;
|
||||
listen [::]:80;
|
||||
|
||||
server_name slpsoftware.nl www.slpsoftware.nl;
|
||||
return 404; # managed by Certbot
|
||||
}
|
||||
Reference in New Issue
Block a user