我正在使用 Django 构建一个站点,并且我希望我的站点的一部分使用 HTTPS。
在我的 settings.py 文件中,我有
SESSION_COOKIE_SECURE = True
CSRF_COOKIE_SECURE = True
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
在我的 wsgi.py 文件中,我有os.environ['HTTPS'] = "on"
然后在我正在处理的网站部分的views.py中,我使用装饰器强制将所有内容重定向到https。
def secure_required(view_func):
def _wrapped_view_func(request, *args, **kwargs):
if not request.is_secure():
if getattr(settings, 'HTTPS_SUPPORT', True):
request_url = request.build_absolute_uri(request.get_full_path())
secure_url = request_url.replace('http://', 'https://')
return HttpResponseRedirect(secure_url)
return view_func(request, *args, **kwargs)
return _wrapped_view_func
但是,当我尝试在本地主机上加载该页面时,该页面无法加载,并且我只是收到一条错误消息,提示“此网页不可用”。为我的网站启用 HTTPS 我缺少什么?
网络服务器日志显示:
13:38:22 web.1 | 2013-08-02 13:38:22 [48421] [CRITICAL] WORKER TIMEOUT (pid:48423)
13:38:22 web.1 | 2013-08-02 13:38:22 [48421] [CRITICAL] WORKER TIMEOUT (pid:48423)
13:38:22 web.1 | 2013-08-02 13:38:22 [48444] [INFO] Booting worker with pid: 48444