负载均衡的方式:
今天继续分享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,亲爱的朋友们:
- 感谢你们耐心完这个笔记,如果笔记中出现的一些软件包、资源找不到的可以直接留言&私聊,我看见了就回复;
- 资源免费共享;有需要滴滴,(仅仅是我有的)
我的坚持初衷:
标签:Linux2,学霸,server,nginx,学渣,64,proxy,upstream,root From: https://blog.csdn.net/Liang_GaRy/article/details/143824102