后端架构:nginx+uwsgi(可选)+django
django不适合直接提供web服务,比如处理静态文件,提供负载均衡等。所以前端需要有nginx服务器。
那为什么需要uwsgi呢?
其实不用也可以的,只不过uWSGI性能高,使用内存低,能同时管理多个app,相近的日志功能,高度可定制。
WSGI是一种Web服务器网关接口,它是一个Web服务器(比如nginx)和应用服务器(比如uWSGI服务器)通信的一种规范,然后uwsgi是实现了uwsgi和WSGI两种协议的Web服务器,简单点说就是运用uwsgi我们可以实现由uwsgi启动django,然后ngix通过端口与uwsgi通信,在这个过程中,django实现了wsgi服务器的功能,ngix实现了wsgi客户端的功能,只不过在web里面,ngix扮演的又是服务器(计算机中的软件通信有很多都是客户端服务器模式。如文件资源就是一个服务,然后应用程序实现了了相应的协议从而去调用这个服务)。这样就实现了uwsgi在ngix和django的中转。
其实我们不用uwsgi也是可以的,比如我(太懒)。
nginx安装和配置
yum -y install nginx
nginx -v
nginx version: nginx/1.12.2
在/etc/nginx/conf.d/目录下添加如下文件:
#cat server.conf
server {
listen 80;
server_name your_domain;
location / {
proxy_pass http://127.0.0.1:8080;
}
}
然后我们再后台把django服务启动
python3 manage runserver 127.0.0.1:80 &
然后在hosts文件中绑定服务器IP+你的域名就行了,或者添加dns解析就能了访问你的域名了。
通过nginx访问django.png
最终的访问路径是client->nginx->django