【发布时间】:2021-07-01 19:48:13
【问题描述】:
我想在 Docker 中使用 Traefik 和 Django 实现以下设置:
- http://domain/app1
- http://domain/app2
我的docker-compose.yml 包含以下容器标签:
traefik.http.routers.app1.rule=Host(`my.host.de`) && PathPrefix(`/app1`)traefik.http.routers.app1.middlewares=app1traefik.http.middlewares.app1.headers.customresponseheaders.SCRIPT_NAME=/app1
我为app2做了同样的事情。
在我设置的两个应用程序的settings.py 中:FORCE_SCRIPT_NAME = env('FORCE_SCRIPT_NAME', default=None) 然后应该通过我有FORCE_SCRIPT_NAME=/app1 的ENV 文件解决。
在 Django 方面,我总是收到 404 消息,提示此路径不存在,我应该从现有路径中进行选择。
Django 将 URL 识别为 http://my.host.de/app1 并告诉我 The current path, app1, didn't match any of these.
编辑:由于我的设置被认为是用于开发和生产环境,我使用 Django 内置服务器以及 Gunicorn 来运行 Django 应用程序。
【问题讨论】:
标签: django reverse-proxy traefik