基本思路
1.方案:Nginx+uwsgi
这样大体的流程是:nginx作为服务器最前端,负责接收client的所有请求,统一管理。静态请求由Nginx自己处理。非静态请求通过uwsgi传递给Django,由Django来进行处理,从而完成一次WEB请求。
2,通信请求
配置Nginx
安装Nginx
如果Nginx原先安装过,最好先彻底删除再重新安装!彻底删除的方法
http://blog.csdn.net/u010571844/article/details/50819704
启动Nginx
Nginx默认监听80端口
所以安装完毕,访问localhost或者服务器自己的ip地址就可以看到下面的画面。
配置uwsgi
安装uwsgi
编写测试
写一个test.py测试uwsgi
然后执行shell命令:
此时访问8001端口,就可以看到Hello World
连接uwsgi与Django
测试Django自身
确保Django自身可以启动运行,在Django应用的目录下:
访问8002端口,如果正常,说明Django启动成功!如下图!
编写wsgi.py文件
编写django_wsgi.py文件,将其放在与文件manage.py同一个目录下。
连接Django和uwsgi
通过Django与uwsgi就已经可以形成一个简单的web服务器了
编写完成django_wsgi.py文件后执行:
这样,就可以在浏览器中的8000端口访问Django程序了。
所有的请求都是经过uwsgi传递给Django程序的。
注意到,此时是访问不了js/css静态文件的!这些静态文件将交给Nginx直接处理
编写配置文件
为了实现Nginx与uWSGI的连接,两者之间将采用soket来通讯方式
将使用uWSGI配置文件的方式来改进uWSGI的启动方式
将要让Nginx采用8077端口与uWSGI通讯,请确保此端口没有被其它程序采用。
下面编写uwsgi的配置文件
新建一个XML文件:djangochina_socket.xml,与manage.py在同一级目录
在上面的配置中,我们使用 uwsgi.log 来记录日志,开启4个进程来处理请求。
这样,我们就配置好uWSGI了。
连接Nginx与uWSGI
上文已经连接了uWsgi与Django应用,下面连接Nginx与uwsgi
修改/etc/nginx/sites-enabled/default
在上面的设置后,可以让Nginx来处理静态文件(/static)。非静态文件请求Nginx会发给 socket 8077,然后让uWSGI来进行处理。
Nginx+uWSGI+Django的实现方式
1.重启Nginx服务器,以使Nginx的配置生效。
2.启动uWSGI服务器
检查日志 uwsgi.log 是否有异常发现。
-
访问服务
基于上面的假设你的域名是www.you.com
因此,我们访问 www.you.com,如果发现程序与 单独使用Django启动的程序一模一样时,就说明成功啦!
4.关闭服务的方法
将uWSGi进程杀死即可。
查询8077端口的进程
杀死进程
也可以写一个脚本来控制uwsgi启动和停止:
作者:千叶正志
来源:CSDN
原文:
https://blog.csdn.net/nghuyong/article/details/54025761
识别图中二维码,领取python全套视频资料