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 条评论