From cf4c6983e2030dcb3c057eda07db2605d62f0aac Mon Sep 17 00:00:00 2001 From: lingkai5wu Date: Fri, 16 Oct 2026 16:06:17 +0800 Subject: [PATCH] fix: resolve container backends dynamically to allow nginx startup --- conf.d/10-resolver.conf.template | 5 +++++ ...10-defaults.conf.template => 20-defaults.conf.template} | 0 conf.d/adguardhome.conf.template | 7 ++++++- conf.d/backrest.conf.template | 7 ++++++- conf.d/gitea.conf.template | 7 ++++++- conf.d/immich.conf.template | 7 ++++++- conf.d/openlist.conf.template | 7 ++++++- conf.d/qbittorrent.conf.template | 7 ++++++- 8 files changed, 41 insertions(+), 6 deletions(-) create mode 100644 conf.d/10-resolver.conf.template rename conf.d/{10-defaults.conf.template => 20-defaults.conf.template} (100%) diff --git a/conf.d/10-resolver.conf.template b/conf.d/10-resolver.conf.template new file mode 100644 index 0000000..849e70e --- /dev/null +++ b/conf.d/10-resolver.conf.template @@ -0,0 +1,5 @@ +# Docker's embedded DNS is available before the other stacks start. +# Resolve container names at runtime so a missing backend cannot stop Nginx. +# Requires Nginx >= 1.27.3 (open-source upstream resolve support). +resolver 127.0.0.11 valid=10s; +resolver_timeout 5s; diff --git a/conf.d/10-defaults.conf.template b/conf.d/20-defaults.conf.template similarity index 100% rename from conf.d/10-defaults.conf.template rename to conf.d/20-defaults.conf.template diff --git a/conf.d/adguardhome.conf.template b/conf.d/adguardhome.conf.template index 75fb808..c79c5a6 100644 --- a/conf.d/adguardhome.conf.template +++ b/conf.d/adguardhome.conf.template @@ -1,3 +1,8 @@ +upstream adguardhome_backend { + zone adguardhome_backend 64k; + server adguardhome:80 resolve; +} + server { include snippets/https.conf; @@ -6,6 +11,6 @@ server { include snippets/proxy.conf; location / { - proxy_pass http://adguardhome; + proxy_pass http://adguardhome_backend; } } diff --git a/conf.d/backrest.conf.template b/conf.d/backrest.conf.template index 14c420d..2b9b04d 100644 --- a/conf.d/backrest.conf.template +++ b/conf.d/backrest.conf.template @@ -1,3 +1,8 @@ +upstream backrest_backend { + zone backrest_backend 64k; + server backrest:9898 resolve; +} + server { include snippets/https.conf; @@ -6,6 +11,6 @@ server { include snippets/proxy.conf; location / { - proxy_pass http://backrest:9898; + proxy_pass http://backrest_backend; } } diff --git a/conf.d/gitea.conf.template b/conf.d/gitea.conf.template index 14ab823..b8fcf35 100644 --- a/conf.d/gitea.conf.template +++ b/conf.d/gitea.conf.template @@ -1,3 +1,8 @@ +upstream gitea_backend { + zone gitea_backend 64k; + server gitea:3000 resolve; +} + server { include snippets/https.conf; @@ -6,7 +11,7 @@ server { include snippets/proxy.conf; location / { - proxy_pass http://gitea:3000; + proxy_pass http://gitea_backend; client_max_body_size 512M; } } diff --git a/conf.d/immich.conf.template b/conf.d/immich.conf.template index 080004b..d109fc3 100644 --- a/conf.d/immich.conf.template +++ b/conf.d/immich.conf.template @@ -1,3 +1,8 @@ +upstream immich_backend { + zone immich_backend 64k; + server immich-server:2283 resolve; +} + server { include snippets/https.conf; @@ -20,7 +25,7 @@ server { send_timeout 600s; location / { - proxy_pass http://immich-server:2283; + proxy_pass http://immich_backend; proxy_redirect off; } diff --git a/conf.d/openlist.conf.template b/conf.d/openlist.conf.template index f45346c..cf262f8 100644 --- a/conf.d/openlist.conf.template +++ b/conf.d/openlist.conf.template @@ -1,3 +1,8 @@ +upstream openlist_backend { + zone openlist_backend 64k; + server openlist:5244 resolve; +} + server { include snippets/https.conf; @@ -6,7 +11,7 @@ server { include snippets/proxy.conf; location / { - proxy_pass http://openlist:5244; + proxy_pass http://openlist_backend; proxy_redirect off; } } diff --git a/conf.d/qbittorrent.conf.template b/conf.d/qbittorrent.conf.template index 003fc16..07529a9 100644 --- a/conf.d/qbittorrent.conf.template +++ b/conf.d/qbittorrent.conf.template @@ -1,3 +1,8 @@ +upstream qbittorrent_backend { + zone qbittorrent_backend 64k; + server qbittorrent:8080 resolve; +} + server { include snippets/https.conf; @@ -6,6 +11,6 @@ server { include snippets/proxy.conf; location / { - proxy_pass http://qbittorrent:8080; + proxy_pass http://qbittorrent_backend; } }