У меня есть приложение 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?