##uwsgi+nginx 部署
##1.WSGI Python Web Server Gateway Interface,缩写为WSGI接口协议
##2.uwsgi 线路协议
##3.uWSGI uWSGI是一个Web服务器,它实现了WSGI协议、uwsgi、http等协议。Nginx中HttpUwsgiModule的作用是与uWSGI服务器进行交换。
要注意 WSGI / uwsgi / uWSGI 这三个概念的区分。WSGI看过前面小节的同学很清楚了,是一种通信协议。 uwsgi是一种线路协议而不是通信协议,在此常用于在uWSGI服务器与其他网络服务器的数据通信。 而uWSGI是实现了uwsgi和WSGI两种协议的Web服务器。
uWSGI实现了WSGI的所有接口,是一个快速、自我修复、开发人员和系统管理员友好的服务器,uWSGI代码完全用C编写
##使用uWSGI服务器部署django (python manage.py runserver ip:8000可以在开发时使用)
pip install uwsgi
配置uWSGI,在项目中新建文件uwsgi.ini,编写如下配置
[uwsgi]
socket=外网ip:端口(使用nginx连接时,使用socket)
http=外网ip:端口(直接做web服务器,使用http)
chdir=项目根目录
wsgi-file=项目中wsgi.py文件的目录,相对于项目根目录
processes=4
threads=2
master=True
pidfile=uwsgi.pid
daemonize=uswgi.log
启动:uwsgi --ini uwsgi.ini
停止:uwsgi --stop uwsgi.pid
重启:uwsgi --reload uwsgi.pid
使用http协议查看网站运行情况,运行正常,但是静态文件无法加载
安装uWSGI服务器后,启动服务器,在浏览器中进行测试. 静态文件访问会有问题.
nginx:
使用nginx的作用 负载均衡:多台服务器轮流处理请求 反射代理:隐藏真实服务器 实现构架: 客户端请求nginx, 再由nginx请求uwsgi, 运行django框架下的python代码
nginx+uwsgi也可以用于其它框架的python web代码,不限于django
http://nginx.org/en/download.html
tar zxvf nginx-1.6.3.tar.gz
./configure
make
sudo make install
查看版本:sudo sbin/nginx -v
启动:sudo sbin/nginx
停止:sudo sbin/nginx -s stop
重启:sudo sbin/nginx -s reload
通过浏览器查看nginx运行结果
指向uwsgi项目:编辑conf/nginx.conf文件
实践: web.py nginx+uwsgi也可以用于其它框架的python web代码, 不限于django
查看wsgi.py
来源:oschina
链接:https://my.oschina.net/u/2300652/blog/777638