У меня есть WSGI-приложение (проект Django), работающее под gunicorn на 127.0.0.1:18731
, и я использую Apache с mod_proxy для перенаправления запросов с http://example.com/my-project/*
на http://127.0.0.1:18731/*
. Статические файлы хранятся вне /my-project/
. Если приложению Django не нужно ничего перенаправлять, это работает нормально, но если оно попытается перенаправить запрос (например, добавить завершающую косую черту к http://example.com/my-project/foo
), оно в конечном итоге удалит /my-project/
из URL-адреса, оставив мне недействительный URL-адрес. http://example.com/foo/
.
Моя конфигурация mod_proxy выглядит следующим образом:
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyRequests On
ProxyPass /my-project/ http://127.0.0.1:18731/ retry=0
ProxyPassReverse /my-project/ http://127.0.0.1:18731/ retry=0
ProxyPreserveHost On
ProxyErrorOverride Off
Я не хочу заставлять Django добавлять префикс /my-project/
ко всем своим URL-адресам в интересах переносимости. Очевидно, Apache должен обрабатывать префикс самостоятельно с помощью строки ProxyPassReverse
. Что я делаю неправильно?