Django应用程序在runserver下运行,但在nginx下运行

我的Django应用程序在“python manage.py runserver …..”下运行时运行正常,但是当我在nginx / fastcgi下运行它时,我得到了一个404。

这是错误消息:

找不到页面(404)
请求方法:GET
请求URL:blah.youtrain.me/admin/(我删除了由于StackOverflow限制的新帐户http)

使用youtrainme.urls中定义的URLconf,Django按以下顺序尝试这些URL模式:

^pipe理员/ DOC /
^pipe理员/
当前的URL与这些中的任何一个都不匹配。

无论我的应用程序在nginx下进入哪个页面,它总是显示相同的错误消息:“当前的URL,不匹配任何这些。

在nginx下,如果我只是去blah.youtrain.me,上面的请求URL改为:blah.youtrain.me// <—注意斜线。 但是,在runserver下,请求URL行中没有结尾的斜杠。 这可能会提供一些见解?

任何帮助将不胜感激! 🙂

这是我的这个网站的nginxconfiguration:

服务器
{
听80;
server_name blah.youtrain.me;
access_log /home/ytmadmin/public_html/blah.youtrain.me/log/access.log;
error_log /home/ytmadmin/public_html/blah.youtrain.me/log/error.log debug;
#重写规则 – 文件
位置〜*。+。>(xml | jpg | jpeg | gif | png | ico | css | zip | tgz | gz | rar | bz2 | doc | xls | exe | pdf | ppt | txt | tar | mid | midi | WAV | BMP | RTF | JS | SWF)
{
access_logclosures;
到期30天;
打破;
}
#python请求
位置 /
{
fastcgi_pass 127.0.0.1:8010;
fastcgi_pass_header授权;
fastcgi_intercept_errorsclosures;
include / usr / local / nginx / conf / fastcgi_params;
}
}

和我的urls.py

django.conf.urls.defaults导入模式,include,url

从django.contrib导入pipe理
admin.autodiscover()

urlpatterns = patterns('',
(r'^ $','main.views.index'),
(r'^ admin / doc /',include('django.contrib.admindocs.urls')),

#取消注释下一行以启用pipe理员:
(r'^ admin /',include(admin.site.urls)),

我在这里找到了解决方案: https : //serverfault.com/questions/134863/nginx-fastcgi-problems-with-django-double-slashes-in-url

在nginx下,我不得不从nginx / conf / fastcgi_params文件中删除下面一行,一切正常:

fastcgi_param SCRIPT_NAME $ fastcgi_script_name;