keepalive+Nginx反向代理实现apache服务的负载均衡

Nginx源码安装

Nginx源码包:链接: Nginx-1.19.1 提取码: x4cg
源码安装步骤:

  1. tar zxf nginx-1.19.1.tar.gz

  2. 解决nginx源码编译的依赖性 yum install gcc pcre-devel openssl-devel -y

  3. 检测安装环境./configure --prefix=/usr/local/nginx --with-http_ssl_module --prefix= 参数后跟的是安装路径

  4. Makefile文件所在的目录,进行make && make install

  5. 为了使安装后的文件更小,可以不需要gcc中的debug参数,nginx解压目录 下的auto/cc/gcc在这里插入图片描述

  6. 可以通过修改nginx 解压目录下的 src/core/nginx.h 来使版本号只显示nginx在这里插入图片描述

  7. 再次执行 3和4 的步骤,进行源码安装,安装后的目录就很小
    在这里插入图片描述

  8. ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/nginx 可以使nginx 直接在命令行中调用

调用方法作用
nginx打开nginx服务
nginx -t检测nginx的配置文件有没有语法错误
nginx -s stop关闭nginx服务
nginx -V显示详细信息
  1. 建立/usr/lib/systemd/system/nginx.service,文件内容如下,就可以通过所以systemctl 的方式启动nginx
    在这里插入图片描述

利用Nginx反向代理实现apache服务的负载均衡

轮叫调度算法(Round Robin 默认使用)

实现步骤:

  1. 建立nginx用户useradd -s /sbin/nologin nginx 作为nginx 中的usr, 其中worker_connections 和内核,系统, app 有关,内核用sysctl -a | grep file可以查看允许的最大连接数是多少,和系统的内存有关,系统用ulimit -a可以查看到系统允许的当前用户的open files,默认是1024,所以通过修改/etc/security/limits.conf来指定nginx 用户打开文件的个数。在这里插入图片描述在这里插入图片描述
  1. 编辑nginx配置文件vim/usr/local/nginx/conf/nginx.conf
    在这里插入图片描述在这里插入图片描述
  1. systemctl start nginx 在宿主机的/etc/hosts中配置 解析 172.25.3.2 www.westos.org ,事先在server3和server4 apache的测试页中放入了主机名,当server3和server4的http服务打开之后,会看到由轮叫算法调度,访问10次,依次交替出现server3和server4。
    在这里插入图片描述
    由于nginx 自带会对后端服务器进行健康检查,所以说如果后端的某一个服务器down掉之后,客户端访问的时候就不会访问那个被down掉的服务器
    在这里插入图片描述
  1. 在定义组的时候增加权重
    在这里插入图片描述
    测试:在这里插入图片描述

最小连接调度算法

一个请求以最少的活动连接数发送到服务器,同样考虑服务器权重:
实验配置:
只用在upstream 定义组的时候加入least_conn,其他的配置都一样
在这里插入图片描述

IP_HASH 算法

请求发送到的服务器由客户端IP地址决定。在这种情况下,使用IPv4地址的前三个八进制数或整个IPv6地址来计算散列值。该方法保证来自相同地址的请求能够到达相同的服务器,除非该服务器不可用。
实验配置: 在upstream 定义组的时候加入ip_hash,将backup 注释
在这里插入图片描述
测试:在这里插入图片描述

sticky 调度算法

通过分发和识别cookie,来使同一个客户端的请求落在同一台服务器上,默认标识名为route
需要下载模块:链接: sticky模块 提取码: piqd
模块导入步骤:

  1. 解压下载好的zip包(我的是和nginx解压目录一个目录下)unzip nginx-goodies-nginx-sticky-module-ng-08a395c66e42.zip
  2. 在nginx的安装目录(/root/nginx-1.19.1)make clean
  3. ./configure --prefix=/usr/local/nginx --with-http_ssl_module --add-module=../nginx-goodies-nginx-sticky-module-ng-08a395c66e42 检测安装环境是否完备,–add-module 后面跟的是nginx模块解压目录的路径
  4. make && make install 安装

重启服务测试:
在这里插入图片描述
会一直访问一个服务器,只到删除浏览器的缓存,才会访问另一个浏览器

Keepalive + Nginx

目的:实现Nginx的高可用

实验步骤:

  1. 将server2 上完整的nginx 目录复制到serever1上,并在server1上做和server2一样的配置。启动nginx查看是否能访问。
  1. 两边配置keepalive 配置文件,都需要检测脚本来实现对nginx服务的健康检测, vim /opt/check_nginx.sh , 记得给该脚本添加 +x 权限 chomod +x /opt/check_nginx.sh
    在这里插入图片描述
  1. 修改server1 和server2的keepalive配置文件
    server1:
    在这里插入图片描述
    server2:
    在这里插入图片描述
  1. 测试: 修改宿主机的‘www.westos.org’对应的解析地址为vip地址,即:172.25.3.100 www.westos.org
    当停止一个节点的nginx服务时,虚拟ip会自动漂移到另一个节点上,当客户端访问时并不会影响在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值