Обработать запрос в NGINX в службе приложений Azure

У меня есть приложение UWSGI и рабочий / монитор задачи Celery / Flower. Они развернуты в службе приложений Azure как многоконтейнерное приложение.

Локально я перенаправляю задания работнику, используя «HOST: worker» в HTTP-запросе. Монитор задач установлен как default_server. Оба прослушивают порт 80, так как служба приложений Azure разрешает доступ только к порту 80/443. Локально все работает нормально (с помощью docker-compose). Однако при развертывании в Службе приложений Azureмаршрутизация запроса не работает, и служба приложений Azure возвращает ошибку 404 с рекомендацией настроить собственный домен.

Каковы мои варианты решения этой проблемы без настройки личного домена.

Вот мой nginx.conf

    server {
        listen 80;
        server_name worker;

        location / {
            include uwsgi_params;
            uwsgi_pass flask:5001;
        }
    }
    server {
    listen 80 default_server;
    server_name monitor;


    charset utf-8;

    location / {
        proxy_pass http://monitor:5555;
        proxy_set_header Host $host;
        proxy_redirect off;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}
0
задан 3 February 2020 в 10:13
1 ответ

В конце концов я решил проблему, направив запросы на основе местоположения. Обратите внимание, что расположение было изменено, чтобы избежать конфликта с внутренней маршрутизацией внутреннего приложения.

server {
    listen 80 default_server;
    charset utf-8;
    location / {
        proxy_pass http://monitor0:5555;
        proxy_set_header Host $host;
        proxy_redirect off;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
    location /worker0/ {
        include uwsgi_params;
        uwsgi_pass flask:5001;
    }
}
0
ответ дан 26 February 2020 в 00:43

Теги

Похожие вопросы