Исправить невключение nginx до запуска апстримов #391

Closed
opened 2026-04-19 19:53:36 +00:00 by cuqmbr · 2 comments
Owner

Введение. Nginx проксирует запросы к другим веб серверам на хосте: grafana, bluemap, mcsm web и mcsm daemon. Это нужно для добавления TLS и обработки запросов исходя из доменного имени запроса.

Проблема. Nginx не запустится, если хотя бы один веб сервер, к которым осуществляется проксирование будет выключен. Следовательно не будут обрабатываться любые запросы, например к сайту.

Пример ошибки, когда не включен майнкрафт сервер выживания, который запускает bluemap, приведён ниже. Развёрнуто из состояния bebrashield/infra@1ed16206de во время первоначальной настройки "обвязки" без разворачивания серверов игры .

# journalctl -u nginx-docker

Apr 19 18:34:50 bebrashield.net systemd[1]: Started nginx-docker.service - Nginx Docker container.
Apr 19 18:34:50 bebrashield.net docker[41926]: /docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
Apr 19 18:34:50 bebrashield.net docker[41926]: /docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
Apr 19 18:34:50 bebrashield.net docker[41926]: /docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
Apr 19 18:34:50 bebrashield.net docker[41926]: 10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf
Apr 19 18:34:50 bebrashield.net docker[41926]: 10-listen-on-ipv6-by-default.sh: info: Enabled listen on IPv6 in /etc/nginx/conf.d/default.conf
Apr 19 18:34:50 bebrashield.net docker[41926]: /docker-entrypoint.sh: Sourcing /docker-entrypoint.d/15-local-resolvers.envsh
Apr 19 18:34:50 bebrashield.net docker[41926]: /docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
Apr 19 18:34:50 bebrashield.net docker[41926]: /docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh
Apr 19 18:34:50 bebrashield.net docker[41926]: /docker-entrypoint.sh: Launching /docker-entrypoint.d/99-autoreload.sh
Apr 19 18:34:50 bebrashield.net docker[41926]: /docker-entrypoint.sh: Configuration complete; ready for start up
Apr 19 18:34:50 bebrashield.net docker[41926]: 2026/04/19 18:34:50 [emerg] 1#1: host not found in upstream "minecraft-survival" in /etc/nginx/nginx.conf:86
Apr 19 18:34:50 bebrashield.net docker[41926]: nginx: [emerg] host not found in upstream "minecraft-survival" in /etc/nginx/nginx.conf:86
Apr 19 18:34:50 bebrashield.net systemd[1]: nginx-docker.service: Main process exited, code=exited, status=1/FAILURE
Apr 19 18:34:50 bebrashield.net systemd[1]: nginx-docker.service: Failed with result 'exit-code'.
Apr 19 18:34:56 bebrashield.net systemd[1]: nginx-docker.service: Scheduled restart job, restart counter is at 2.
Введение. Nginx проксирует запросы к другим веб серверам на хосте: grafana, bluemap, mcsm web и mcsm daemon. Это нужно для добавления TLS и обработки запросов исходя из доменного имени запроса. Проблема. Nginx не запустится, если хотя бы один веб сервер, к которым осуществляется проксирование будет выключен. Следовательно не будут обрабатываться любые запросы, например к сайту. Пример ошибки, когда не включен майнкрафт сервер выживания, который запускает bluemap, приведён ниже. Развёрнуто из состояния https://git.cuqmbr.xyz/bebrashield/infra/src/commit/1ed16206de9ca2e8b738cfa9ff707979cf737db8 во время первоначальной настройки "обвязки" без разворачивания серверов игры . ``` # journalctl -u nginx-docker Apr 19 18:34:50 bebrashield.net systemd[1]: Started nginx-docker.service - Nginx Docker container. Apr 19 18:34:50 bebrashield.net docker[41926]: /docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration Apr 19 18:34:50 bebrashield.net docker[41926]: /docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/ Apr 19 18:34:50 bebrashield.net docker[41926]: /docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh Apr 19 18:34:50 bebrashield.net docker[41926]: 10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf Apr 19 18:34:50 bebrashield.net docker[41926]: 10-listen-on-ipv6-by-default.sh: info: Enabled listen on IPv6 in /etc/nginx/conf.d/default.conf Apr 19 18:34:50 bebrashield.net docker[41926]: /docker-entrypoint.sh: Sourcing /docker-entrypoint.d/15-local-resolvers.envsh Apr 19 18:34:50 bebrashield.net docker[41926]: /docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh Apr 19 18:34:50 bebrashield.net docker[41926]: /docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh Apr 19 18:34:50 bebrashield.net docker[41926]: /docker-entrypoint.sh: Launching /docker-entrypoint.d/99-autoreload.sh Apr 19 18:34:50 bebrashield.net docker[41926]: /docker-entrypoint.sh: Configuration complete; ready for start up Apr 19 18:34:50 bebrashield.net docker[41926]: 2026/04/19 18:34:50 [emerg] 1#1: host not found in upstream "minecraft-survival" in /etc/nginx/nginx.conf:86 Apr 19 18:34:50 bebrashield.net docker[41926]: nginx: [emerg] host not found in upstream "minecraft-survival" in /etc/nginx/nginx.conf:86 Apr 19 18:34:50 bebrashield.net systemd[1]: nginx-docker.service: Main process exited, code=exited, status=1/FAILURE Apr 19 18:34:50 bebrashield.net systemd[1]: nginx-docker.service: Failed with result 'exit-code'. Apr 19 18:34:56 bebrashield.net systemd[1]: nginx-docker.service: Scheduled restart job, restart counter is at 2. ```
cuqmbr added this to the Сезон 2 project 2026-04-19 19:53:37 +00:00
Author
Owner
https://stackoverflow.com/questions/32845674/nginx-how-to-not-exit-if-host-not-found-in-upstream https://docs.docker.com/engine/network/#dns-services https://nginx.org/en/docs/http/ngx_http_core_module.html#resolver
Author
Owner

При попытке доступа к неработающим апстримам будет появлятся сообщегие следующего типа:

2026/05/08 17:26:38 [error] 32#32: *56 grafana-server-docker.service.local-docker could not be resolved (3: Host not found), client: 172.17.0.1, server: , request: "GET / HTTP/1.1", host: "localhost:85"
172.17.0.1 - - [08/May/2026:17:26:38 +0000] "GET / HTTP/1.1" 502 157 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:148.0) Gecko/20100101 Firefox/148.0"
При попытке доступа к неработающим апстримам будет появлятся сообщегие следующего типа: ``` 2026/05/08 17:26:38 [error] 32#32: *56 grafana-server-docker.service.local-docker could not be resolved (3: Host not found), client: 172.17.0.1, server: , request: "GET / HTTP/1.1", host: "localhost:85" 172.17.0.1 - - [08/May/2026:17:26:38 +0000] "GET / HTTP/1.1" 502 157 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:148.0) Gecko/20100101 Firefox/148.0" ```
Sign in to join this conversation.
No description provided.