diff --git a/README.md b/README.md index c0e6b84..a8a4f2e 100644 --- a/README.md +++ b/README.md @@ -154,11 +154,46 @@ Wenn gewünscht, Änderungen in der `.env` vornehmen. docker compose up -d ``` -### Einfaches Beispiel für ein Docker-Compose-File +### Einfaches Beispiel für ein eigenes Docker-Compose-File Die Datei [`docs/docker-compose.yml`](docs/docker-compose.yml) zeigt eine einfache Konfiguration für REST-Requests basierend auf Docker-Compose mit der gestartet werden kann. +### Betrieb hinter einem Reverse-Proxy + +Die Anwendung verarbeitet `X-Forwarded`-HTTP-Header und kann daher auch hinter einem Reverse-Proxy betrieben werden. + +Dabei werden, je nachdem welche Header durch den Reverse-Proxy gesendet werden auch Protokoll, Host oder auch Path-Prefix +automatisch erkannt und verwendet werden. Dadurch ist z.B. eine abweichende Angabe des Pfads problemlos möglich. + +#### Beispiel *Traefik* (mit Docker-Labels): + +``` +... + deploy: + labels: + - "traefik.http.routers.portainer.rule=PathPrefix(`/etl-processor`)" + - "traefik.http.routers.portainer.middlewares=portainer-strip" + - "traefik.http.middlewares.portainer-strip.stripprefix.prefixes=/etl-processor" +... +``` + +#### Beispiel *nginx* + +``` +... + location /etl-processor { + set $upstream http:///; + proxy_set_header Host $host; + proxy_set_header X-Forwarded-Scheme $scheme; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_set_header X-Forwarded-For $remote_addr; + proxy_set_header X-Real-IP $remote_addr; + proxy_pass $upstream; + } +... +``` + ## Entwicklungssetup Zum Starten einer lokalen Entwicklungs- und Testumgebung kann die beiliegende Datei `dev-compose.yml` verwendet werden. diff --git a/docs/docker-compose.yml b/docs/docker-compose.yml index 76fdec0..4d0e174 100644 --- a/docs/docker-compose.yml +++ b/docs/docker-compose.yml @@ -14,8 +14,6 @@ services: SPRING_DATASOURCE_URL: jdbc:postgresql://postgres/etl SPRING_DATASOURCE_USERNAME: etl SPRING_DATASOURCE_PASSWORD: etl-password - # For reverse proxy - SERVER_FORWARD_HEADERS_STRATEGY: framework ### Database postgres: diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 5cd47c0..dd820c8 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -4,4 +4,7 @@ spring: consumer: group-id: ${app.kafka.group-id} flyway: - locations: "classpath:db/migration/{vendor}" \ No newline at end of file + locations: "classpath:db/migration/{vendor}" + +server: + forward-headers-strategy: framework \ No newline at end of file