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

Centos+nginx+uwsgi+django

2015-02-26 11:24 330 查看
■ 安装uwsgi:

安装uwsgi,请看我上一篇文章:《uWSGI的安装与配置(官网摘录)》。

■ 配置uwsgi:

由于我们使用django,所以配置一个能跟django进行关联的ini,首先我们先看一下Django1.7官方文档给出的配置:



但是又看了一下uwsgi 的官方文档,发现上面的配置有点旧,新的配置做了简化,

所以,根据Django和uWSGI 的文档,我重新整理了一个新的配置,如下:

[uwsgi]
socket = 127.0.0.1:50000
chdir = /home/foobar/myproject/
wsgi-file = myproject/wsgi.py
processes = 2
stats = 192.168.1.18:9090
daemonize = /var/log/uwsgi/yourproject.log
vacuum = true


● 解释一下常用选项:

socket : 地址和端口号,例如:socket = 127.0.0.1:50000

processes : 开启的进程数量

workers : 开启的进程数量,等同于processes(官网的说法是spawn the specified number of workers / processes

chdir : 指定运行目录(chdir to specified directory before apps loading)

wsgi-file : 载入wsgi-file(load .wsgi file)

stats : 在指定的地址上,开启状态服务。注意,这里尽量用非127.0.0.1的IP。(enable the stats server on the specified address)

threads : 运行线程。由于GIL的存在,我觉得这个真心没啥用。(run each worker in prethreaded mode with the specified number of threads)

master : 允许主进程存在(enable master process)

daemonize : 使进程在后台运行,并将日志打到指定的日志文件或者udp服务器(daemonize uWSGI)

vacuum : 当服务器退出的时候自动清理环境,删除unix socket文件和pid文件(try to remove all of the generated file/sockets)

■ 启动uwsgi:

把上面编辑好的 ini 文件,保存为【 uwsgi_conf.ini 】,注意为ANSI格式,如果是UTF-8,则报错。

理论上可以把这个ini文件,放到服务器任意位置。但还是推荐放到项目下,然后运行:

uwsgi uwsgi_conf.ini





■ Nginx配置:

nginx安装不在叙述,这里主要讲如何更改nginx.conf:

location / {

include uwsgi_params;

uwsgi_pass 127.0.0.1:50000;

}

■ 重启Nginx:

重启nginx,再次访问你的项目,一切OK!

■ 参考:

A,《你应该使用 Nginx + UWSGI》: (本文的主要参考,放弃使用uwsgi自带的负载均衡,由此而来)
http://www.linuxidc.com/Linux/2013-07/87286.htm
B,《uwsgi其二》:
http://www.nowamagic.net/academy/detail/1330331
C,《五步教你实现使用Nginx+uWSGI+Django方法部署Django程序(下) 》:
http://django-china.cn/topic/124/
D,《How to use Django with uWSGI》:(Django官网文档,本文的次要参考
https://docs.djangoproject.com/en/1.7/howto/deployment/wsgi/uwsgi/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: