发现问题。我有一个无限循环发生,跟着这个网站来解决它:
http://yuji.wordpress.com/2008/08/15/django-nginx-making-ssl-work-on-django-behind-a-reverse-proxy/#comment-1941
基本上,这增加了nginx的服务器的conf下的文件的代理地点部分设置:
SECURE_PROXY_SSL_HEADER = (‘HTTP_X_FORWARDED_PROTOCOL’, $scheme)
然后添加到您的Django设置文件:
MIDDLEWARE_CLASSES = (...
'djo.middleware.SecureRequiredMiddleware',
)
ROOT_URLCONF = 'djo.urls'
HTTPS_SUPPORT = True
SECURE_REQUIRED_PATHS = (
r'/admin/',
然后在所谓的“middleware.py”与跟随着同样的Django目录下创建一个文件g内容:
from django.http import HttpResponsePermanentRedirect
from django.conf import settings
class SecureRequiredMiddleware(object):
def __init__(self):
self.paths = getattr(settings, 'SECURE_REQUIRED_PATHS')
self.enabled = self.paths and getattr(settings, 'HTTPS_SUPPORT')
def process_request(self, request):
if self.enabled and not request.is_secure():
for path in self.paths:
if request.get_full_path().startswith(path):
request_url = request.build_absolute_uri(request.get_full_path())
secure_url = request_url.replace('http://', 'https://')
print self.paths, request_url, secure_url
return HttpResponsePermanentRedirect(secure_url)
return None
Voilá!重定向所需的任何基本网址。
你检查错误日志吗? – Raptor 2013-05-03 06:20:19
Nginx不会引发任何错误,并且django服务器只显示一个get请求。浏览器仅显示“发生服务器错误,请与管理员联系。”你能想到别的地方去试试看吗? – mh00h 2013-05-03 06:49:08