Редирект в flask работает некорректно
Разрабатываю проект на flask + docker. Докер запускает следующие сервисы: mysql + nginx + crm + api. api и crm это два отдельных приложения flask. Настроил nginx так чтобы сайт открывался на 80 порту, то есть вообще без порта в адресной строке. Мне так проще разрабатывать + так проще выкатывать на проду как мне кажется.
Проблема в том, что когда в приложении flask делаю редирект return redirect('index'), то меня редиректит не на index а на crm.flowito.ru%2Ccrm.flowito.ru (flowito.ru это servername проекта). Хотя когда в докере прописываю внешние порты для контейнера, и открываю приложения не через nginx (то есть не на 80 порту, а на 5000 допустим) то редирект работает корректно. Ниже приложил код докер компоуза и нджинкса. Надеюсь на помощь. С такой проблемой сталкиваюсь впервые, по этому и не знаю как гуглить.
Заранее спасибо!
docker-compose.yml
version: '3.7'
services:
mysql:
container_name: mysql
image: mysql:8.0.19
restart: unless-stopped
environment:
MYSQL_DB: $MYSQL_DATABASE
MYSQL_USER: $MYSQL_USER
MYSQL_PASSWORD: $MYSQL_PASSWORD
MYSQL_ROOT_PASSWORD: $MYSQL_PASSWORD
ports:
- "${MYSQL_PORT}:${MYSQL_PORT}"
expose:
- $MYSQL_PORT
volumes:
- db-data:/var/lib/mysql
networks:
- app-network
nginx:
container_name: nginx
image: "nginx:1.13.5"
restart: unless-stopped
ports:
- "80:80"
volumes:
- ./nginx/nginx.conf:/etc/nginx/conf.d/nginx.conf
depends_on:
- mysql
- phpmyadmin
- api
- marketplace
- crm
- admin_panel
networks:
- app-network
api:
container_name: api
build: ./services/api
command: python start.py
restart: unless-stopped
environment:
FLASK_APP: start.py
DEBUG_MODE: $DEBUG_MODE
SQLALCHEMY_DATABASE_URI: "${MYSQL_DRIVER}://${MYSQL_USER}:${MYSQL_PASSWORD}@mysql:${MYSQL_PORT}/${MYSQL_DATABASE}?charset=utf8"
SQLALCHEMY_TRACK_MODIFICATIONS: $SQLALCHEMY_TRACK_MODIFICATIONS
ports:
- "80"
volumes:
- ./services/api:/api
depends_on:
- mysql
networks:
- app-network
crm:
container_name: crm
build: ./services/crm
command: python start.py
restart: unless-stopped
environment:
FLASK_APP: start.py
DEBUG_MODE: $DEBUG_MODE
ports:
- "5000:80"
volumes:
- ./services/crm:/crm
- ./modules:/modules
depends_on:
- api
networks:
- app-network
volumes:
db-data:
driver: local
networks:
app-network:
driver: bridge
Конфиг nginx
server {
listen 80;
server_name api.flowito.ru;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
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_pass http://api;
}
}
server {
listen 80;
server_name crm.flowito.ru;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
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_pass http://crm:5000;
}
}