python项目部署nginx_uwsgi + nginx 部署python项目(二)

实现负载均衡

开启两个服务器,nginx负责分发请求到两个服务器,以减轻单个服务器负担。

配置uwsgi服务器

在a项目目录下生成uwsgi.ini文件,在b项目目录下生成uwsgi.ini文件,如何写可以查看上一篇文章 https://www.cnblogs.com/pyweb/p/12030929.html

两个项目不同点是端口不同。

后台启动uwsgi服务器

nohup uwsgi --ini uwsgi_a.ini &nohup uwsgi--ini uwsgi_b.ini &

配置nginx配置文件

vim /etc/nginx/nginx.conf

http {

upstream flasktest {

server127.0.0.1:82; # 配置多个服务器

server127.0.0.1:83;

}

server {

listen0.0.0.0:81;

server_name www.flasktest.com;

charset UTF-8;

access_log/etc/nginx/FlaskTest_access.log;

error_log/etc/nginx/FlaskTest_error.log;

client_max_body_size 75M;

location/{

include uwsgi_params;

# uwsgi_pass127.0.0.1:82;

uwsgi_pass flasktest; # 使用上面的flasktest进行匹配,表示81端口同时监听82,83端口

uwsgi_read_timeout2;

}

}

分发规则(轮询,ip_hash, fair, url_hash)

# 轮询,指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。如下所示,83的访问比率要比82的访问比率高一倍。

upstream linuxidc{

server127.0.0.1:82 weight=5;

server127.0.0.1:83 weight=10;

}

# ip_hash, 每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。

upstream linuxidc{

ip_hash;

server 127.0.0.1:82;

server 127.0.0.1:83;

}

# fair, 按后端服务器的响应时间来分配请求,响应时间短的优先分配。与weight分配策略类似。

upstream linuxidc{

server 127.0.0.1:82;

server 127.0.0.1:83;

fair;

}

# url_hash, 按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。

# 注意:在upstream中加入hash语句,server语句中不能写入weight等其他的参数,hash_method是使用的hash算法。

upstream linuxidc{

server 127.0.0.1:82;

server 127.0.0.1:83;

hash $request_uri;

hash_method crc32;

}

其他

upstream还可以为每个设备设置状态值,这些状态值的含义分别如下:

down: 表示单前的server暂时不参与负载.

weight: 默认为1.weight越大,负载的权重就越大。

max_fails:允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream 模块定义的错误.

fail_timeout :max_fails次失败后,暂停的时间。

backup: 其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。

upstream bakend{ #定义负载均衡设备的Ip及设备状态

ip_hash;

server10.0.0.11:9090down;

server10.0.0.11:8080 weight=2 max_fails=1 fail_timeout=1s;

server10.0.0.11:6060 max_fails=1 fail_timeout=1s;

server10.0.0.11:7070backup;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值