Я пытаюсь создать обратный прокси-сервер для приложения, используя nginx с этим docker -компонентом:
version: '3'
services:
nginx_cloud:
build: './nginx-cloud'
ports:
- 443:443
- 80:80
networks:
- mynet
depends_on:
- app
app:
build: './app'
expose:
- 8000
networks:
- mynet
networks:
mynet:
И это мой nginx conf (сокращенный):
server {
listen 80;
server_name reverse.internal;
location / {
# checks for static file, if not found proxy to app
try_files $uri @to_app;
}
location @pto_app {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://app:8000;
}
}
Когда я его запускаю, nginx возвращает:
[emerg] 1#1: host not found in upstream "app" in /etc/nginx/conf.d/app.conf:39
I пробовал несколько другие предлагаемые решения без любые успех . Любопытно, что если я запускаю nginx вручную через оболочку изнутри контейнера, это работает, я могу пропинговать app et c. Но запуск из docker -композит или напрямую через docker сам по себе не работает.
Я попытался настроить отдельный апстрим, добавив docker внутренний распознаватель, ожидающий несколько секунд, чтобы убедиться, что приложение уже запущено и т. Д. c без удачи. Я знаю, что этот вопрос задавался несколько раз, но пока что ничего не работает.