django + nginx + uWSGI部署

浪尽此生 提交于 2019-11-27 00:36:11

##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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!