转载自: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、Nginx、uWSGI和SimpleUI这些技术,并且会详细解释每个组件的作用以及配置过程。 首先,Django是一个Python开发的高级Web框架,用于构建高效、可扩展的Web应用。而uWSGI是一个高性能的应用服务器...
该项目是一款基于Django和Nginx的七层负载均衡器设计...该项目由非专业开发者发起,旨在为朋友解决成本高昂且操作复杂的商业负载均衡器问题,同时结合Django框架和Nginx构建,旨在提供一个既美观又实用的开源解决方案。
在部署Django项目时,通常需要结合Nginx和uWSGI来搭建一个完整的生产环境。本知识点将详细解释如何在Ubuntu和CentOS系统下,通过Django框架结合MySQL数据库进行配置部署,同时使用Nginx作为Web服务器,并通过uWSGI...
本教程将聚焦于Django项目在生产环境中的部署配置,主要涉及Nginx和uWSGI这两个重要的组件。让我们逐步深入理解这些知识点。 首先,Django是一个高级的Python Web框架,它鼓励快速开发和干净、实用的设计。然而,...
在本文中,我们将深入探讨如何使用Django、Nginx和Redis这三种技术来构建一个高效、可扩展的网上商城。Django是一个强大的Python Web框架,它提供了丰富的功能,包括数据库建模、用户认证和权限管理等。Nginx则是一...
主要介绍了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-...
五步教你实现使用Nginx+uWSGI+Django方法部署...本文主要介绍了使用Nginx+uWSGI+Django方法部署Django程序的五个步骤,包括环境介绍、安装uwsgi、测试uwsgi、配置Django和连接Django和uwsgi,实现简单的WEB服务器。
Ubuntu 12.04 下安装 Nginx、Python、uWSGI 和 Django 的步骤 在本文中,我们将介绍如何在 Ubuntu 12.04 环境下安装 Nginx、Python、uWSGI 和 Django。这些技术栈组合是非常流行的 Web 应用程序开发环境。 一、...
linux+nginx+django+cronjob部署教程 提供了部署所需要的安装包,安装包的安装及部署过程
在构建高性能的Web应用时,Django作为Python的主流Web框架,经常与Nginx和uWSGI结合使用。Nginx是一个强大的反向代理服务器,用于处理静态资源和HTTP请求分发,而uWSGI则是一个应用服务器,能够高效地运行Django应用...
### 使用uwsgi+daphne+Nginx+supervisor部署Django项目的详细步骤 #### 一、概述 在本文档中,我们将详细介绍如何在Linux环境下利用uwsgi、daphne、Nginx以及supervisor来部署Django项目。这种方式能够有效地提高...
tornado+django+nginx+mysql搭建网站.zip
在本教程中,我们将深入探讨如何在Ubuntu系统上使用Daphne和Nginx部署Python Django项目,同时利用Supervisor进行进程管理。首先,Django 3.0开始支持ASGI(Asynchronous Server Gateway Interface)应用程序,使得...
通过上述步骤,我们成功地在服务器上部署了一个基于Django的Web应用,并配置了Nginx和uWSGI作为前端和后端服务器。这种部署方式不仅可以提高应用的性能和稳定性,还能增强系统的安全性。此外,通过使用virtualenv来...
本文详细介绍了如何在CentOS上安装Django Web框架及其相关组件的过程,包括Python环境的搭建、Django的安装与测试、uWSGI和Nginx的安装配置等步骤。通过以上步骤,可以在CentOS服务器上构建出一个完整的Web应用环境...