Django的部署可以有很多方式,采用nginx+uwsgi的方式是其中比较常见的一种方式。
在这种方式中,我们的通常做法是,将nginx作为服务器最前端,它将接收WEB的所有请求,统一管理请求。nginx把所有静态请求自己来处理(这是NGINX的强项)。然后,NGINX将所有非静态请求通过uwsgi传递给Django,由Django来进行处理,从而完成一次WEB请求。
可见,uwsgi的作用就类似一个桥接器。起到桥梁的作用。
Linux的强项是用来做服务器,所以,下面的整个部署过程我们选择在Ubuntu下完成。
一、安装Nginx
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好。
Nginx同样为当前非常流行的web服务器。利用其部署Django,我们在此也做简单的介绍。
Nginx官网:http://nginx.org/
打开ubuntu控制台(ctrl+alt+t)利用Ubuntu的仓库安装。
fnngj@ubuntu:~$ sudo apt-get install nginx #安装
启动Nginx:
fnngj@ubuntu:~$ /etc/init.d/nginx start #启动fnngj@ubuntu:~$ /etc/init.d/nginx stop #关闭fnngj@ubuntu:~$ /etc/init.d/nginx restart #重启
修改Nginx默认端口号,打开/etc/nginx/nginx.conf 文件,修改端口号。
server { listen 8088; # 修改端口号 server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; location / { root html; index index.html index.htm; }
大概在文件36行的位置,将默认的80端口号改成其它端口号,如 8088。因为默认的80端口号很容易被其它应用程序占用。
然后,通过上面命令重启nginx。访问:http://127.0.0.1:8088/
如果出现如上图,说明Nginx启动成功。
二、安装uwsgi
通过pip安装uwsgi。
root@ubuntu:/etc# python3 -m pip install uwsgi
测试uwsgi,创建test.py文件:
def application(env, start_response): start_response('200 OK', [('Content-Type','text/html')]) return [b"Hello World"]