我的網站已啓動並正在運行,但無法訪問Django管理頁面。每次我嘗試訪問/admin/
時,它都會將我重定向到https主頁。使用SSL時,Django管理頁面重定向到使用Gunicorn + Nginx的主頁
我第一次使用Gunicorn + Nginx,所以我很確定它與SSL設置有關,但不知道如何配置它。
這裏是我的Nginx的配置文件:
upstream app_server {
server 104.131.57.229:9000 fail_timeout=0;
}
server {
listen 80;
return 301 https://mysite.com/;
}
server {
listen 443 ssl;
ssl on;
ssl_certificate /etc/nginx/ssl/www_mysite_com.crt;
ssl_certificate_key /etc/nginx/ssl/mysite.com.key;
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
server_name mysite.com;
root /home/django/mysite_project/mysite/mysite;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
client_max_body_size 4G;
keepalive_timeout 5;
location /static/ {
autoindex on;
alias /home/django/mysite_project/mysite/static/;
}
location/{
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://app_server;
}
error_page 500 502 503 504 /500.html;
location = /500.html {
root /home/django/mysite_project/mysite/templates;
}
}
這裏是我的管理urls.py。相當標準:
from django.conf.urls import patterns, include, url
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
url(r'^admin/', include(admin.site.urls)),
# other urls
)
我可以用我的網站網址9000端口訪問Django管理,這是正常的http
。也許這是一個安全問題。然而,當我以這種方式訪問管理員時,沒有CSS樣式,所以很難瀏覽。
我運行:提前
Ubuntu 14.04
Django 1.6.5
Python 3.4.0
Nginx 1.6.2
Gunicorn 19.1.1
感謝。
@AaronYsidoro你爲Django設置了[SECURE_PROXY_SSL_HEADER](https://docs.djangoproject.com/en/1.4/ref/settings/#std:setting-SECURE_PROXY_SSL_HEADER)嗎? – cbrendanprice 2014-09-23 21:02:48
當您獲得重定向時,您是通過http://還是https://訪問您的網站? (它只能在上面的配置中使用https://) – taleodor 2014-09-24 04:58:46
@ chuk2bp我將該設置添加到我的'settings.py'中,但它仍然將我重定向到主頁,並且不讓我訪問Django Admin。任何其他想法? – 2014-09-24 13:23:56