Правильно смонтировать приложение Flask на месте, используя обратный прокси-сервер Nginx - PullRequest
0 голосов
/ 20 ноября 2018

У меня есть приложение Flask, которое запускается внутри контейнера Docker и должно отображаться по определенному URL: myserver.com/mylocation.Я хочу использовать другой контейнер с Nginx в качестве обратного прокси для достижения маршрутизации.Я следую удивительному учебнику , который уже дал мне довольно далеко.

Мой Nginx-config (соответствующая часть) гласит:

server {
    server_name myserver.com;

    location /mylocation {
        proxy_pass http://myapp:5000;
        proxy_set_header Host $host;
        rewrite ^/mylocation(.*)$ $1 break;
    }
}

Мой docker-compose.yml читает:

version: '2'
  services:
    nginx:
      image: nginx:latest
      container_name: production_nginx
      volumes:
        - ./nginx.conf:/etc/nginx/nginx.conf
      ports:
        - 80:80
        - 443:443

    myapp:
      build: .
      image: app_image
      container_name: app_container
      expose:
        - "5000"

Теперь, когда я запускаю это, я успешно получаю index.html своих приложений с myserver.com/mylocation, но последующие запросы (CSS, JS и т. д.) запускаются на myserver.com без части местоположения (/ mylocation), и поэтому Nginx не направляет их в контейнер, а они 404. Ссылки на CSS, JS и тому подобное являются относительными, они не (и не должны) содержат имя и местоположение сервера.

Как этого добиться?Я что-то упустил в своем конфиге NGinx, чтобы приложение знало, что оно должно работать в / mylocation?

...