Настройка
- Apache2 в качестве обратного прокси
- Gunicorn служит приложение для отдыха Джанго
- Gunicorn + приложение Django + MySQL в докере
Теперь проблема в доступном для просмотра API, gunicorn обслуживает приложение на http://0.0.0.0:8000
, но я использую https://example.com/
, как в конфигурации Apache. Каждая ссылка в API, доступном для просмотра, имеет вид http://xxxxx
.
При переходе по ссылке он перенаправляется на протокол http, в результате чего получается 404.
Как настроить приложение gunicorn или django на использование https в доступном для просмотра API?
Edit:
команда gunicorn: gunicorn -w 3 waxis_topup_api_django.wsgi -b 0.0.0.0:8000 --reload
setting.py - обычный файл без каких-либо специфических ссылок на http / https
apache config:
<VirtualHost *:443>
ServerAdmin xxx
ServerName example.com
Alias "/static" "/path/static"
ProxyPass "/static/" !
ProxyPass "/" "http://localhost:8000/"
ProxyPassReverse "/" "http://localhost:8000/"
ProxyPreserveHost On
RequestHeader set X-Forwarded-Proto "https"
RequestHeader set X-Forwarded-Port "443"
SSLEngine On
</VirtualHost>
Текущее решение (решение?)
Я могу думать только об этом, чтобы заставить любой http быть https, поэтому даже если в просматриваемом API есть ссылка HTTP, он будет перенаправлен на https через apache. Я не знаю, правильно ли это, но для меня это больше похоже на взлом.
Вот мой конфиг в apache
<VirtualHost *:80>
ServerName example.com
Redirect permanent / https://example.com/
</VirtualHost>