From 32b4f75f01755c2bae1a919e61648f3076184f80 Mon Sep 17 00:00:00 2001 From: Kevin Morris Date: Sat, 15 Jan 2022 15:49:12 -0800 Subject: [PATCH] fix(docker): use a tunable for fastapi proxy host value On aur-dev.archlinux.org, we use a proxy tunnel through our internal nginx. This allows us to rewrite the Host header based on whatever port we wish within internal nginx config. Signed-off-by: Kevin Morris --- docker-compose.aur-dev.yml | 2 ++ docker-compose.yml | 3 ++- docker/config/nginx.conf | 2 +- docker/nginx-entrypoint.sh | 4 ++++ 4 files changed, 9 insertions(+), 2 deletions(-) diff --git a/docker-compose.aur-dev.yml b/docker-compose.aur-dev.yml index 0b91dd93..aaa0d2ae 100644 --- a/docker-compose.aur-dev.yml +++ b/docker-compose.aur-dev.yml @@ -69,6 +69,8 @@ services: - data:/data nginx: + environment: + - NGINX_PROXY_PORT=443 restart: always volumes: - data:/data diff --git a/docker-compose.yml b/docker-compose.yml index ebc760d4..f5001417 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -244,7 +244,8 @@ services: image: aurweb:latest init: true environment: - - AUR_CONFIG=conf/config + # Proxy toward FastAPI. + - NGINX_PROXY_PORT=8444 entrypoint: /docker/nginx-entrypoint.sh command: /docker/scripts/run-nginx.sh ports: diff --git a/docker/config/nginx.conf b/docker/config/nginx.conf index b5c09d08..16421945 100644 --- a/docker/config/nginx.conf +++ b/docker/config/nginx.conf @@ -136,7 +136,7 @@ http { location / { proxy_pass http://asgi_backend; - proxy_set_header Host $http_host; + proxy_set_header Host HTTP_HOST; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Ssl on; diff --git a/docker/nginx-entrypoint.sh b/docker/nginx-entrypoint.sh index 1527cda7..be5675de 100755 --- a/docker/nginx-entrypoint.sh +++ b/docker/nginx-entrypoint.sh @@ -21,4 +21,8 @@ fi cp -vf /docker/config/nginx.conf /etc/nginx/nginx.conf +# NGINX_PROXY_PORT must be defined for the `nginx` service +# within `docker-compose.yml`. +sed -i "s|HTTP_HOST|\$host:${NGINX_PROXY_PORT}|g" /etc/nginx/nginx.conf + exec "$@"