0
点赞
收藏
分享

微信扫一扫

架构师之路-学渣到学霸历程-64

负载均衡的方式:

今天继续分享nginx的负载均衡的几种方式,并且以实验的方式进行讲解;

继续保持输出以及分享,目前能做的也就是这些了;

1.url_hash说明

通过客户请求的url进行hash,在通过hash值来选择后端的server;

#修改前端的nginx的配置文件
[root@Linux2 nginx]# vim conf/nginx.conf
.........
upstream web {.
#添加uri的hash
hash $request_uri consistent;
server 192.168.75.73 weight=1 max_fails=3 fail_timeout=9s;
server 192.168.75.71 weight=1;
}

server {
listen 80;
server_name localhost;

#charset koi8-r;

#access_log logs/host.access.log main;

location / {
# root html;
# index index.html index.htm;
proxy_pass http://web;
#proxy_next_upstream off;
proxy_next_upstream error http_404 http_502;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
#重启配置文件
[root@Linux2 nginx]# nginx -s reload
  • 验证
#这里先停掉75.73后端服务器的nginx
#验证
[root@Linux2 nginx]# curl 192.168.75.72
这个是75.71的yum安装的nginx
#再次启动192.168.75.73的nginx
[root@Linux3 ~]# /usr/local/nginx/sbin/nginx
#然后使用nginx的客户端验证
[root@Linux2 nginx]# curl 192.168.75.72
这个是75.71的yum安装的nginx

2.根据相应时间均衡

fail算法会根据后端节点的服务器的响应事件来分配请求,时间段的优先分配;

需要借助一个模块master.zip来进行实现;

前端服务器重新编译配置模块

#准备好 nginx-upstream-fair-master.zip
#查看一个
[root@Linux2 ~]# ls nginx-upstream-fair-master.zip
nginx-upstream-fair-master.zip
#解压压缩包
[root@Linux2 ~]# unzip nginx-upstream-fair-master.zip
#修改源码bug
[root@Linux2 ~]# sed -i 's/default_port/no_port/g' nginx-upstream-fair-master/ngx_http_upstream_fair_module.c

#进入到nginx的源码目录进行重新编译
#编译前首先看看编译的原来参数
[root@Linux2 nginx-1.26.2]# nginx -V
nginx version: nginx/1.26.2
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)
configure arguments: --prefix=/usr/local/nginx
#开始进行编译
[root@Linux2 nginx-1.26.2]# ./configure --prefix=/usr/local/nginx --add-module=../nginx-upstream-fair-master
#编译安装
[root@Linux2 nginx-1.26.2]# make && make install
#直接升级
[root@Linux2 nginx-1.26.2]# make upgrade
#检查是否安装成功
[root@Linux2 nginx-1.26.2]# nginx -V
nginx version: nginx/1.26.2
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)
configure arguments: --prefix=/usr/local/nginx --add-module=../nginx-upstream-fair-master
  • 修改前端服务器的配置文件
#直接修改配置文件
[root@Linux2 nginx-1.26.2]# cd /usr/local/nginx/
[root@Linux2 nginx]# vim conf/nginx.conf
#然后再均衡组添加fail模块
[root@Linux2 nginx]# vim conf/nginx.conf
........
upstream web {
#注释掉原来的uri_hash
#hash $request_uri consistent;
#添加fair配置
fair;
server 192.168.75.73 weight=1 max_fails=3 fail_timeout=9s;
server 192.168.75.71 weight=1;
}

server {
listen 80;
server_name localhost;
................
location / {
# root html;
# index index.html index.htm;
proxy_pass http://web;
#proxy_next_upstream off;
proxy_next_upstream error http_404 http_502;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
#重载配置文件验证
[root@Linux2 nginx]# nginx -s reload
#验证
[root@Linux2 nginx]# curl 192.168.75.72
这个是75.73的主页资源

3.备用服务器实验

这里用71作为备用服务器,意思是只有主的服务器不能提供服务了,然后备用服务器才会顶上

#直接修改配置文件
[root@Linux2 nginx]# vim conf/nginx.conf
........
upstream web {
#hash $request_uri consistent;
#fair;
server 192.168.75.73 weight=1 max_fails=3 fail_timeout=9s;
#这里直接指定71是backup即可
server 192.168.75.71 weight=1 backup;
}

server {
listen 80;
server_name localhost;
................
location / {
# root html;
# index index.html index.htm;
proxy_pass http://web;
#proxy_next_upstream off;
proxy_next_upstream error http_404 http_502;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
#重载配置文件
[root@Linux2 nginx]# nginx -s reload
#验证-->直接访问,会直接出73的结果
[root@Linux2 nginx]# curl 192.168.75.72
这个是75.73的主页资源
#如果73的服务器挂了,71就会顶上
[root@Linux2 nginx]# curl 192.168.75.72
这个是75.71的yum安装的nginx

分享环节:

hi,亲爱的朋友们:

  • 感谢你们耐心完这个笔记,如果笔记中出现的一些软件包、资源找不到的可以直接留言&私聊,我看见了就回复;
  • 资源免费共享;有需要滴滴,(仅仅是我有的)

我的坚持初衷:💕立志要成为一名架构师

  • 不断地去坚持学,其中的各种各样的难度,不言而喻~!
  • 坚持不是一件容易的事情,但它却是成功的关键。做起来吧~!

如果你也想要坚持:那么组团吧,咋们一块互相监督;一天一点分享也是进步;最怕就是孤军奋战!加油吧,追梦人~!

举报

相关推荐

0 条评论