django + nginx_Django + Uwsgi + Nginx 的生产环境部署

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

6024201162bdd454e6387ba92539f4a0.png

安装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

479325201cecbfc7644dd9709a3a5885.png

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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值