Linux学习4-LVS负载均衡,keepalived,pacemaker高可用及nginx优化

📅 2026/8/27 13:12:22
Linux学习4-LVS负载均衡,keepalived,pacemaker高可用及nginx优化
LVS负载均衡放弃传统的DNS引入vritual serverLVS DR模式使用到其中的的dr策略新建虚拟机作为测试机使用新克隆虚拟机查看网卡固化ip安装ipvsadm服务将设定ip虚拟服务添加到网卡中-t为tcp服务-s为设定访问策略rr意为轮询再添加两台服务器-a为添加真实服务器-t指定虚拟服务-r指定真实服务器地址-g为dr模式性能最优两台服务器启用httpd服务访问虚拟服务在主机查看服务调度情况测试器一直访问sever3三台机器在一个VLAN中冲突使用ipvsadm -d删除下载新服务用于管理arp设定规则匹配.100的arp包并进行drop操作再匹配.100的arp包将其源ip改为两台服务器各自ip禁止两个服务器广播自己为192.168.154.100服务持久化保存配置此时curl测试机查看主机发现服务调度均衡都为4LVS NAT模式虚拟机中在调度器和测试机上添加新网络适配器改为仅主机模式修改文件执行命令生效加载nat模块调度器上添加lvs新规则查看在两台服务器上修改原有配置将默认ip改为调度器ip此时在测试机上curl新添加的虚拟服务可以看到sever2与sever3交替出现keepalived高可用master配置首先将两个服务器上的配置修改为DR模式通过arptables -nL查看当前规则调度器上修改文件其中两个realserver分别为两个服务器然后启动服务查看添加成功此时关闭sever2的httpd服务再次查看发现故障RS被检测摘除haproxy服务与keepalived有相同效果首先下载haproxy服务编辑etc下的haproxy的haproxy.conf此时在浏览器输入ip/status可以看到监控界面只输入ip可以观察到sever2和sever3交替出现证明服务生效pacemaker高可用首先停用keepalived防止冲突sever1作为主节点sever4作为备节点sever1 sever4建立ssh免密还需同步时间笔者之前已经同步过下载pacemaker服务再通过ssh在sever4上也下载sever1 sever4上启动服务sever1 sever4上在hcluster账户下写入密码为redhat授权sever1 sever4设置关闭stonith查看状态sever1 sever4都在线创建集群资源此时使用sever1节点节点备援失效standby指令模拟sever1节点失效资源自动切换至sever4且远程将sever1断电以保护数据unstandby恢复sever1发现sever1与sever4在线但仍旧使用sever4节点添加apache服务资源确保sever1 sever4上都具备apache服务发现资源只在sever1创建资源组强制资源运行在同一节点模拟sever4节点失效资源整体迁移到sever1删除集群资源使用#pcs resource delete如果是组使用 #pcs resource group remove配置iscsi存储在server2上添加虚拟机磁盘/dev/sdb再在sever1和sever4上配置iscsi客户端首先下载配置文件发现服务器登录并挂载下载数据库软件挂载修改属性启动服务sever4无需格式化只用导入存储整合iscsi存储和mariadb数据库添加资源查看状态nginx平滑升级首先在官网上下载下载1.30.0版本使用tar指令解压缩配置文件注释掉debug下的这一行下载C语言编译器检测系统环境启用http-ssl服务和监控服务将nginx的源代码编译为二进制程序后安装到系统的指定目录创建软链接之后直接输入nginx就可以使用服务否则需要输入完整路径测试成功启动注意80端口是否被占用搜索网站找到一会配置文件要用到的文段编辑文件将刚才复制的设置粘贴修改路径重新加载所有服务单元文件的配置停止服务下载1.30.4版本在等待下载的过程中在sever1上打开nginx服务在sever2上curl sever1 -I看到版本为1.30.0回到sever1进入目录core查看其中的nginx.h解压1.30.4版本与1.30.0版本相同注释掉debug同样检查环境启动http-ssl服务和监控这次只生成二进制程序之后转到此目录下将nginx.bak复制到此目录下再转到1.30.4版本下的objs将旧的nginx覆写查看nginx进程ID笔者为8939升级程序发现没有变化回到sbin下,重新覆写nginx停止服务查看进程再次测试启动服务查看进程再次切到1.30.4下的objs覆写之前路径下的nginx查看nginx的进程ID再次升级查看出现两个nginx稍等一会升级完成后curl本机发现nginx版本已经变为1.30.4为了防止可能的版本回退关闭但保留1.30.0的进程不终止是为了手动版本回退查看版本回退回到sbin目录下用旧的nginx覆写新的nginx唤醒原进程回收新版本的worker进程关闭新版本主进程版本回退为1.30.0停止服务编辑文件删除第三行的后缀结果如下再次检查环境启动服务清除上一次编译生成的所有可执行文件和中间文件再次检查环境启动服务转二进制进入objs再次覆写测试启动服务curl发现此时nginx不显示版本号nginx并发优化通过调整 Nginx 的配置参数使其能同时处理更多的客户端请求提升服务器的吞吐量和响应速度编辑文件此处的1改为2重启查看进程发现两个worker process继续编辑文件cpu有多少个核就有几位数1代表内核 开启0代表内核关闭将此处的最大文件打开限制由1024改为65535修改完成后退出查看file-max190618最大文件打开限制与内存有关查看内存使用情况查看资源限制的配置创建新用户验证是否成功查看并修改用户登录 Shell禁用nginx用户的登陆权限修改文件去掉注释将nobody改为停止服务测试再启动服务查看进程编辑文件末尾添加文件中有各自后缀的解释查看参数编辑文件添加内容修改网络内核对TCP连接的有关限制net.ipv4.ip_local_port_range 1024 65535限制接收新 TCP 连接侦听队列的大小net.core.somaxconn 2048启用tcp连接timewait快速回收和重用net.ipv4.tcp_tw_recycle 1net.ipv4.tcp_tw_reuse 1从系统配置目录中加载所有内核参数设置使其立即生效再次查看修改成功修改文件开启高效传输模式sever1进入此目录sever2上对sever1进行压力检查模拟十个用户发送5000个http请求全部完成错误为0再次模拟100个用户发送50000条请求成功nginx反向代理与负载均衡反向代理Nginx 作为中介接收客户端请求并透明转发至后端服务器再将响应返回给客户端从而隐藏后端架构负载均衡在反向代理基础上通过调度算法将请求分发到多个后端服务器以提高系统吞吐量、可用性和可靠性修改文件加入sever2sever3反向代理配置将来自www.westos.org的http请求发送至刚才配置的myapp来到sever4在注释中的sever1后加上www.westos.orgcurl www.westos.org发现sever2与sever3交替出现需要sever2与sever3的apache服务启动其中一个的apache停止服务后curl时只会出现另一个