您的位置:首页 > 运维架构 > Nginx

nginx + django + uwsgi 配置

2015-03-27 19:05 405 查看
PYTHON安装扩展包有两个easy_install和pip,现安装pip

然后用pip 安装 uwsgi

sudo pip install uwsgi

好了。然后进去你的DJANGO项目目录下

新建一个django.ini的文件。

配置内容:

[uwsgi]

# set the http port

http-socket=:8001

# set socket port

socket=127.0.0.1:8000

# change to django project directory

chdir=/Users/piglet/wwwroot/zhima

# load django

module=zhima.wsgi:application



然后,保存可以启动了

uwsgi --ini django.ini



注意配置文件中配置了两个端口。第一个http-socket是配置可以通过端口访问的HTTP地址

第二个配置SOCKET连接地址,这样子就可以通过
http://127.0.0.1:8001访问。
另一个端口是配置给nginx用的。

配置nginx的站点文件

server {

listen 80;

server_name z.my.com;



location / {

uwsgi_pass 127.0.0.1:8000;

include uwsgi_params;

}

}

因为NGINX是自带uwsgi的。所以直接用就可以了。



搞定。现在就可以访问啦。



uwsgi的配置还有很多参数

http://uwsgi-docs.readthedocs.org/en/latest/Options.html

django官方关于uwsgi配置的文档

https://docs.djangoproject.com/en/1.4/howto/deployment/wsgi/uwsgi/



后续会有些问题,关于文件自动更新的问题,修改了代码但是没有及时更新需要重启uwsgi,

这里需要去监听文件,自动重启uwsgi

可以在项目的wsgi.py中加入如下代码



Python代码


import uwsgi
from uwsgidecorators import timer
from django.utils import autoreload

@timer(3)
def change_code_gracefull_reload(sig):
if autoreload.code_changed():
uwsgi.reload()

但是当重新运行uwsgi --ini django.ini的时候,发现报错啦。

原来需要以master的方式启动

uwsgi --master --ini django.ini

现在可以啦。

还有就是import uwsgi这个模块要导入,需要以uwsgi的方式运行才行,要不会出现这个模块不存在的错误
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: