4.8 KiB
4.8 KiB
Apache Reverse Proxy & VHosts (10.2.0.4)
Op host vmserver (10.2.0.4) draait Apache 2 direct als Edge Reverse Proxy, TLS Terminator en OIDC Authentication Gateway vóór zowel bare-metal hostdiensten als het Kubernetes cluster.
📂 Locatie & Synchronisatie
- Host-pad (live configuratie):
/sites/vhosts/ - Git Repository:
cluster-infra/vhosts/inhttps://git.bnhmeijer.nl/bart/cluster-infra.git - Certificaten (Let's Encrypt):
/etc/letsencrypt/live/thuus.bnhmeijer.nl/ - Certbot challenge root:
/sites/certroot/.well-known
🏗️ Architectuur: Apache als Edge Gateway
flowchart TD
Client[Inkomend Verkeer / Browser] -->|Poort 80 / 443| Apache["Apache 2 (10.2.0.4)<br>/sites/vhosts/"]
subgraph Apache Functionaliteit
Apache -->|TLS / Let's Encrypt| SSL[SSL Termination]
Apache -->|mod_auth_openidc| OIDC[OIDC Auth via login.bnhmeijer.nl]
end
subgraph Bare-Metal Host Services
Apache -->|Proxy :3000| Gitea[Gitea git.bnhmeijer.nl]
Apache -->|Proxy :8096| Jellyfin[Jellyfin /jellyfin]
Apache -->|Proxy :8000 / :5000| Radio[Icecast & Radio Chicken]
Apache -->|Proxy :8686, :7878, ...| ArrStack["*Arr Stack (Sonarr, Radarr, etc.)"]
Apache -->|DocRoot /sites/nextcloud| Nextcloud[cloud.bnhmeijer.nl]
Apache -->|Proxy 192.168.2.15:8123| HomeAssistant[ha.bnhmeijer.nl]
end
subgraph Kubernetes Cluster (vmserver:10.2.0.4)
Apache -->|Proxy 127.0.0.1:32608<br>(Envoy Gateway NodePort)| EnvoyGW[Envoy Gateway NodePort 32608]
EnvoyGW -->|HTTPRoute: herms.bnhmeijer.nl| HermsUI[herms frontend:3000]
EnvoyGW -->|HTTPRoute: login.bnhmeijer.nl| KeycloakK8s[keycloak:8080]
EnvoyGW -->|HTTPRoute: influx.bnhmeijer.nl| InfluxK8s[influxdb:8086]
EnvoyGW -->|HTTPRoute: thuus.bnhmeijer.nl/argocd| ArgoCDK8s[argocd-server:80]
EnvoyGW -->|HTTPRoute: infra.bnhmeijer.nl| InfraWebK8s[infra-web:3000]
end
📑 Overzicht van VHosts (/sites/vhosts/)
| Configuratiebestand | Domein / Hostname | Doel & Proxy Doel |
|---|---|---|
001-main.conf |
thuus.bnhmeijer.nl, 10.2.0.4, vmserver.lan (HTTP:80) |
Port 80 redirect naar HTTPS + /radio/ Icecast streaming |
001-main-le-ssl.conf |
thuus.bnhmeijer.nl (HTTPS:443) |
Hoofdportaal: OIDC auth (Keycloak), Nextcloud alias, Jellyfin, Icecast, *Arr stack, /argocd via 127.0.0.1:32608 |
cloud.conf & cloud-ssl.conf |
cloud.bnhmeijer.nl |
Nextcloud DocumentRoot /sites/nextcloud/ |
git.conf |
git.bnhmeijer.nl |
Reverse proxy naar Gitea op 127.0.0.1:3000 (512MB body limit) |
hass.conf & hass-ssl.conf |
ha.bnhmeijer.nl |
Reverse proxy + WebSockets naar Home Assistant (192.168.2.15:8123) |
herms.conf & herms-int.conf |
herms.bnhmeijer.nl |
Reverse proxy + WebSockets naar Envoy Gateway NodePort (127.0.0.1:32608) |
keycloak.conf |
login.bnhmeijer.nl |
Reverse proxy naar Keycloak via Envoy Gateway NodePort (127.0.0.1:32608) |
influx-ui.conf |
influx-ui.bnhmeijer.nl, influx-ui.lan |
Reverse proxy naar InfluxDB Explorer via Envoy Gateway NodePort (127.0.0.1:32608) |
🔐 OpenID Connect (OIDC) Configuratie
In 001-main-le-ssl.conf verzorgt mod_auth_openidc Single Sign-On (SSO):
- Metadata URL:
https://login.bnhmeijer.nl/realms/master/.well-known/openid-configuration - Client ID:
apache-vmserver - Redirect URI:
https://thuus.bnhmeijer.nl/oauth2/callback - Doorgegeven Headers: Claims worden doorgestuurd als
X-User(%{OIDC-preferred_username}e) enX-Email(%{OIDC-email}e). Interne OIDC headers worden gestript voordat verkeer naar backend-services gaat.
⚙️ Beheer & Herstarten op de Host
Wanneer vhosts worden aangepast op de host vmserver:
# Configuratie testen
sudo apache2ctl configtest
# Apache herladen zonder downtime
sudo systemctl reload apache2
# Of volledige herstart
sudo systemctl restart apache2