转载自:http://j-lite.net/blog/2009/11/24/django-and-nginx
昨日在单位却碰到了问题——URL总是出问题……具体的情况是无论输入什么URL,Django都会报404。可是事实上使用Django自带的runserver和werkzeug都是没有问题的,直接跑shell下resolve也是解析得欢得很,问题很诡异。
苦苦纠结良久未果,只好向同事请教。还是同事有经验,很快就指出了问题所在。原来是项目的设置出了问题,settings.py里有一个FORCE_SCRIPT_NAME的字段需要设置为空字符,以此来覆盖掉nginx传递请求给django时传过来的脚本名称。试了一下,果然OK了。
问题是解决了,可是总觉得有点奇怪,因为我记得很清楚,J-Lite并没有复写这个参数,怎么就碰不到这个问题呢?重新翻开vps上的nginx.conf才发现,原来自己上次配置是fasgcgi的参数并不是用include fastcgi_params这样的方式引用缺省参数表,而是在server段直接定义的。再继续挖掘,在fastcgi_params中找到了这么一条代码:
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
这应该就是Nginx传递脚本名称的设置了。果然,在删掉这段之后,即便不定义FORCE_SCRIPT_NAME,之前的问题也不会出现了。
由于问题比较诡异,所以立马写下来做个笔记,免得又给忘了这事。
备注:
django 的setting 在用 fsgi 并连 nginx时比较麻烦,用os.path做绝对路径比较靠谱
分享到:
相关推荐
django项目上线时完整的nginx.conf文件,直接覆盖上去,修改域名和项目路径就OK了,直接拿走就好,详细部署上线流程我的博客里油介绍
Nginx+Uwsgi+Django(python3)+Vue部署,一步步实现。网上找了N多篇文章都没成功,特意记录,以免其他同学踩坑
用Django搭建了一个小系统,本来用uWSGI就足够了,但使用 SimpleUI后,腾讯云服务器部署时一些静态的svg文件不能正常显示,所以就使用了Nginx,对静态文件单独处理。服务器:腾讯云服务器 CentOS 7.5 64位 安装了...
nginx+uwsgi+django是我们常用的django部署方式。nginx作为最前端的服务器,他负责接收所有的客户端请求,对于请求的静态文件,由nginx服务器自己完成,因为它具有很好处理静态文件的能力,性能进行过优化,支持高...
django项目+nginx+uwsgi部署,ubuntu和centos下都实用。
主要介绍了Ubuntu系统搭建django+nginx+uwsgi的思路详解,本文分步骤给大家介绍的非常详细,具有一定的参考借鉴价值 ,需要的朋友可以参考下
docker-django-nginx-uwsgi-postgres-tutorial-master
一个带有少量 shell 脚本的 dockerfile 来运行一个空的 Django 项目,结合了基于 Centos 7.x 的容器中的 Nginx、uWsgi 和 sqlite3 工具。 用法 要创建镜像docker-django-nginx-uwsgi-centos7/django ,请在docker-...
django项目部署所使用的nginx,uwsgi配置文件,nginx配置文件,以及详细的配置教程,不会部署的可以参考
linux+nginx+django+cronjob部署教程 提供了部署所需要的安装包,安装包的安装及部署过程
Django+Nginx+Redis开发网上商城
django+nginx+uwsgi服务器搭建手册
Ubuntu12.04 nginx python uwsgi Django安装步骤
python毕业设计-基于Django+nginx+uwsgi的个人博客设计与实现+使用说明.zippython毕业设计-基于Django+nginx+uwsgi的个人博客设计与实现+使用说明.zip 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的...
在Linux环境中,用uwsgi+daphne+Nginx+supervisor部署Django项目,史上最全步骤
五步教你实现使用Nginx+uWSGI+Django方法部署Django程序1
Ubuntu系统Daphne + Nginx部署Python Django项目精讲,可支持多进程【含代码说明】
在centos环境下部署nginx+django+uwsgi
搭建Django web开发环境,使用Nginx和uwsgi的conf和ini文件。前提:nginx和uwsgi服务已经安装完成,且正常运行
with_tongue:请参考 请参考 更多Django的范例可以参考我的 ,这里我就列出比较基本的两篇就好 :smiling_face_selector: Nginx是一种Web服务器,使用资源少且稳定性高,稳定性高这部分可参考Nginx的解决了C10K问题,...