#django #linux #ssl #django-rest-framework #server
Вопрос:
Я создал веб-сайт со страницей администратора и API-интерфейсами REST, я использую сервер CentOS для развертывания веб-сайта. У меня есть этот код в моем settings.py файл:
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'corsheaders.middleware.CorsMiddleware',
'django.middleware.common.CommonMiddleware',
# 'djangosecure.middleware.SecuritsyMiddleware'
]
CORS_ALLOW_ALL_ORIGINS=True
CORS_ORIGIN_WHITELIST = [ 'http://127.0.0.1:4200',
'http://localhost:4200',
'http://*']
SESSION_COOKIE_SECURE = True
CSRF_COOKIE_SECURE = True
SECURE_SSL_REDIRECT = True
SECURE_PROXY_SSL_HEADER = ("HTTP_X_FORWARDED_PROTO", "https")
Если я удалю строки SSL_Redirect из кода, то сервер будет работать правильно, но он будет работать по протоколу HTTP.
Я хочу, чтобы мой веб-сайт работал по протоколу HTTPS, поэтому я использую эти настройки.
Из-за этих настроек мой веб-сайт вообще не запускается, и браузер выдает ответ, так как сайт слишком долго не отвечал.
Когда я вижу журналы, все конечные точки выдают 301 в качестве кода ответа. Я не могу понять, почему это происходит. Я просмотрел всю документацию Django SSL, но не нашел никакого решения.
бревна:
2021-09-25 16:24:18,091 autoreload 598 INFO Watching for file changes with StatReloader
2021-09-25 16:24:19,585 server 110 INFO HTTP/2 support enabled
2021-09-25 16:24:19,585 server 121 INFO Configuring endpoint tcp:port=8001:interface=0.0.0.0
2021-09-25 16:24:19,588 server 155 INFO Listening on TCP address 0.0.0.0:8001
2021-09-25 16:24:24,520 http_protocol 160 DEBUG HTTP b'GET' request for ['157.38.102.103', 63772]
2021-09-25 16:24:24,523 http_protocol 256 DEBUG HTTP 301 response started for ['157.38.102.103', 63772]
2021-09-25 16:24:24,523 http_protocol 223 DEBUG HTTP close for ['157.38.102.103', 63772]
2021-09-25 16:24:24,523 http_protocol 269 DEBUG HTTP response complete for ['157.38.102.103', 63772]
2021-09-25 16:24:24,523 runserver 153 INFO [32mHTTP GET /admin/ 301 [0.00, 157.38.102.103:63772][0m
Будет очень полезно, если кто-нибудь сможет предложить решение этой проблемы.
Спасибо заранее.
Комментарии:
1. Вы запускаете свой сайт за веб-сервером, таким как nginx или Apache?
2. Да, это сервер Apache с phpMyAdmin и MySQL