Nginx
是一个高性能的Web服务器,其中的HTTP服务器功能和uWSGI功能很类似。
WSGI
是一种描述web服务器(Nginx,uWSGI)如何与web应用程序(Django,Flask)通信的规范。
uWSGI
是一个全功能的HTTP服务器,实现了WSGI协议、uwsgi协议、http协议等。它要做的就是把HTTP协议转化成语言支持的网络协议,比如把HTTP协议转化成WSGI协议,让Python可以直接使用。
uwsgi
是一种线路协议,在此常用于在uWSGI服务器与其他网络服务器的数据通信。nginx和uWSGI服务器之间是如何配合工作的?
实际上,uWSGI服务器 + Django框架,就可以实现网站的功能了,但一旦客户端访问量过大,客户端请求连接就需要长时间的等待,这种模式就无法满足需求了,分布式服务器此时应运而生,而nginx就是分布式服务器的一大利器,我们可以多用几台服务器来分别处理请求,nginx就相当于管家一样分配客户端请求连接和web服务器,这就是用nginx来实现反向代理,及代理服务器。
首先浏览器发起http请求到nginx服务器,nginx根据接收的请求包,进行url分析,判断访问的资源类型,如果是静态资源,直接读取静态资源返回给浏览器,如果请求的是动态资源就转交给uWSGI服务器,uWSGI服务器根据自身的WSGI协议,找到对应的Django框架,Django框架下的应用进行逻辑处理,将返回值发送到uWSGI服务器,uWSGI服务器再返回给nginx,最后nginx将返回值返回给浏览器进行渲染显示给用户。
安装python3环境
1.在官网下载python相应版本
在我的蓝奏云赏有安装好的包,因为用wget下载非常慢,然后上传到服务器就行,连接地址:https://lihouqi.lanzous.com/id4ep8j
2.解压下载好的python
tar -xvf Python-3.7.7.tgz
3.检测安装
cd Python-3.7.7./configure --prefix=/usr/local/python3make && make install
django项目上传服务器并安装所需模块
1.将本地django项目利用Xftp6上传至阿里云服务器2.安装模块
本地生成requirements.txt 并上传阿里云服务器pip freeze > requirements.txt阿里云下载模块pip3 install -r requirements.txt
3.runserver启动django项目 python3 manage.py runserver 0.0.0.0:8000
安装uwsgi并启动项目
1.安装uwsgi
pip3 install uwsgi
2.软连接
ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi
3.uwsgi启动项目,进入项目,与runserver效果一样
uwsgi --http :8000 --module mydjango.wsgi
4.通过配置文件启动
进入到django项目目录编写uwsgi.ini配置文件vim uwsgi.ini[uwsgi]# 项目目录chdir = /usr/local/miaomiaoce/mydjango# 指定项目的applicationmodule = mydjango.wsgi# 启动主进程master = true# 进程个数processes = 3socket = 0.0.0.0:8000vacuum = truepythonpath = /usr/local/python3pidfile = /usr/local/miaomiaoce/mydjango.pid# 日志目录daemonize = /usr/local/miaomiaoce/uwsgi.log
5.启动
uwsgi --ini uwsgi.ini
安装nginx
1.设置源
sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
2.安装
yum install -y nginx
3.修改配置文件
a. cd /etc/nginx/conf.db. vim default.confc. 修改配置文件server { listen 80; server_name localhost; #charset koi8-r; # 日志文件,后面可查看nginx运行日志 access_log /var/log/nginx/host.access.log main; client_max_body_size 75M; location / { include uwsgi_params; uwsgi_pass 127.0.0.1:8000; uwsgi_param UWSGI_SCRIPT mydjango.wsgi; uwsgi_param UWSGI_CHDIR /usr/local/miaomiaoce/mydjango; root /usr/share/nginx/html; index index.html index.htm; } location /static { alias /usr/local/miaomiaoce/mydjango/static; }}d. 设置权限chmod -R 755 /usr/local/miaomiaoce/mydjangoe. vim /etc/nginx/nginx.conf将第一行改为 user root;f. 重启nginxsystemctl restart nginx
查看nginx运行日志
tail -f /var/log/nginx/host.access.log