У меня есть следующая конфигурация:
- nginx, запущенный docker файлом для создания, действующим в качестве обратного прокси-сервера // конечная точка ssl
- служба приложения, запущенная другим docker создать (по соображениям модульности) файл, обслуживающий приложение
reverse_proxy
и app_service
подключены через app_network
Поскольку они подключены через app_network
, Я могу обратиться к app_service
в конфигурации nginx как http://app_service:8080
, что приятно, потому что мне не нужно выставлять порты в самой службе приложения.
К сожалению, nginx не запустится, пока я не вызову контейнер службы приложений, потому что он проверяет наличие имени хоста app_service
при запуске.
Как я могу помешать nginx проверять имя хоста при запуске, возможно, вызывая Bad Gateway
ошибка при попытке подключения, когда app_service
еще не запущен?
Файлы конфигурации для справки:
# reverse proxy docker-compose.yml
version: '3'
services:
reverse_proxy:
restart: always
container_name: reverse_proxy
image: nginx
ports:
- 80:80
- 443:443
volumes:
- /srv/docker/nginx/config:/etc/nginx
- /srv/ssl:/srv/ssl
networks:
default:
external:
name: app_network
# application service docker-compose.yml
version: '3'
services:
app_service:
restart: always
container_name: app_service
image: <my_app_image>
networks:
default:
external:
name: app_network
# nginx config
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name app.example.com;
location / {
proxy_pass http://app_service:8080;
include proxy.conf;
}
ssl_certificate /srv/ssl/<mycert>.crt;
ssl_certificate_key /srv/ssl/<mykey>.key;
}