通过uwsgi,nginx 实现django部署,超详细。。。

1、 django配置文件修改
debug=False
ALLOWED_HOSTS = ['*']
#静态文件收集地址
STATIC_ROOT = os.path.join(os.path.dirname(BASE_DIR), 'wx/static')
#修改好配置执行,收集静态文件
python manage.py collectstatic
2、nginx,uwsgi安装及配置

1、安装

sudo apt install nginx
pip install uwsgi

2、配置

uwsgi配置

[uwsgi]
#使用nginx连接时使用,Django程序所在服务器地址
socket=127.0.0.1:8200
#直接做web服务器使用,Django程序所在服务器地址
#http=127.0.0.1:8002
#项目目录
chdir=/server/fangcun_wx/wx_mall
#uwsgi的pid文件
pidfile=wx.pid
# 进程数
processes=2
# 线程数
threads=4
module=wx_mall.wsgi
# uwsgi服务器的角色
master=True
# 日志文件,因为uwsgi可以脱离终端在后台运行,日志看不见。我们以前的runserver是依赖终端的
daemonize=logs/wx_uwsgi.log
#自定义uwsgi日志格式
logformat = i am a logline reporting "%(ltime) %(user) %(method) %(uri) %(proto) %(foo)" returning with status %(status)
# 指定依赖的虚拟环境
virtualenv=/root/.virtualenvs/django_3
#多线程设置
enable-threads=true

http配置

server {
        listen      8001;
        server_name  339.104.234.173
        charset utf-8;
        location / {
            include uwsgi_params;
            uwsgi_pass localhost:8300;
        }
        location /static/ {
        root /server/phosee/mall/static/;
        }
    }

https配置

upstream fangcun{
                server 127.0.0.1:8000;
        }
        server {      
                listen 443 ssl;
                ssl on;
                ssl_certificate /server/2767_www.pe.cn.pem;
                ssl_certificate_key /server/2767_www.pe.cn.key;
                ssl_session_timeout 5m;
                ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
                ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
                ssl_prefer_server_ciphers on;

            server_name localhost;
            charset         utf-8;          
            location / {
                    uwsgi_pass fangcun;
                    include uwsgi_params;
                    root /var/www/;
            }
            location /static/ {
                    root /server/fangcun/front/;
            }
            location /newyear/ {
                    proxy_pass http://39.105.165.157/;
            }
            location /newyearpc/ {
                    root /var/www/;
                    index index.html;
            }
    }

3、启动

nginx -s reload
nginx -s stop
nginx -s start

#uwsgi文件名可自定义,启动等操作要在当前路径下
uwsgi --ini uwsgi.ini
uwsgi --relaod uwsgi.pid
uwsgi --stop uwsgi.pid

4、后端服务做健康检查,我们可以在 Nginx 配置文件中添加如下配置:

upstream test_web {
    server 192.168.1.21:80;
    server 192.168.1.22:80;
    check interval=3000 rise=2 fall=5 timeout=1000 type=http;
}

在这些配置中,server 指令用于配置后端节点,check 指令用于配置节点的健康检查。在 check 指令后面有几个健康检查相关的参数:interval、rise、fall、timeout、type。

它们表示什么意思呢?

interval:用于配置健康检查的间隔,如 3000 毫秒;

rise:用于配置连续几次请求成功后表示该节点恢复了,如 2 次;

fall:用于配置连续几次请求失败后表示该节点出故障了,如 5 次;

timeout:用于配置健康检查请求的超时时间,超时后表示请求失败,如 1000 毫秒;

type:用于配置请求协议的类型,如 HTTP 请求。

3、四种负载均衡模式:轮询法、加权轮询法、来源 IP 哈希法、最小连接数法

Nginx 默认提供轮询模式负载均衡,配置示例如下:

upstream admin {
  server 127.0.0.1:8081;
  server 127.0.0.1:8082;
}

当在每个 server 后面加上 weight 参数后,轮询模式变成加权轮询模式:

upstream admin {
  server 127.0.0.1:8081 weight=4;
  server 127.0.0.1:8082 weight=6;
}

当在轮询模式的配置中加上 ip_hash,Nginx 将会按来源 IP 哈希做负载均衡。配置如下:

upstream admin {
  ip_hash;
  server 127.0.0.1:8081;
  server 127.0.0.1:8082;
}

同样,如果在配置中加上 least_conn,Nginx 会采用最小连接数法做负载均衡。配置如下:

upstream admin {
  least_conn;
  server 127.0.0.1:8081;
  server 127.0.0.1:8082;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值