РЕДАКТИРОВАТЬ: я проверил, и кажется, что Azure предоставляет сетевой мост по умолчанию, для которого тогда решение localhost работает нормально.
Я запускаю составную Docker-компоновку из двух контейнеров NGINX + Gunicorn & Flask, и я хочу установитьNGINX в качестве обратного прокси для приложения.Я пытаюсь заставить его работать в облаке AZURE в качестве CLI, но мой Nginx не может найти восходящий поток, поступающий из приложения.На моей локальной машине я получаю это, указав в конфигурации nginx имя контейнера и соответствующий незащищенный порт, который в облаке, похоже, не работает.
Я попытался изменить proxy_pass на localhost (тот же порт),но в этом случае он не работает даже на моей локальной машине, возвращая ошибку 502 Bad Gateway.В любом случае я могу отправлять запросы в приложение через браузер или любым другим способом.Nginx работает с супервизором.Gunicorn работает с 1 рабочим (gthread) с 4 различными потоками.
здесь мой nginx.conf (тот, который входит в комплект):
server {
listen 80;
location / {
try_files $uri @proxy_to_app;
}
location @proxy_to_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_set_header X-Real-IP $remote_addr;
proxy_redirect off;
proxy_pass http://mycontainer:5000;
# proxy_pass http://localhost:5000;
}
}
и здесь основной:
user nginx;
worker_processes 1;
error_log /app/logs/nginx_error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$proxy_add_x_forwarded_for - $remote_user [$time_local] '
'"$request" $status $body_bytes_sent "$http_referer" '
'"$http_user_agent"' ;
access_log /app/logs/nginx_access.log main;
sendfile on;
keepalive_timeout 65;
include /etc/nginx/conf.d/*.conf;
}
daemon off;