我的Django应用程序在“python manage.py runserver …..”下运行时运行正常,但是当我在nginx / fastcgi下运行它时,我得到了一个404。
这是错误消息:
找不到页面(404)
请求方法:GET
请求URL:blah.youtrain.me/admin/(我删除了由于StackOverflow限制的新帐户http)使用youtrainme.urls中定义的URLconf,Django按以下顺序尝试这些URL模式:
- Django:行被删除后仍然显示 – 由于caching?
- 如何衡量和解决60K PV / day网站的瓶颈
- 在这种情况下Host Host中毒是可能的吗?
- Gunicorn-Django:找不到django项目
- 在Nginx的proxy + apache设置中重写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;