【大白分享】托管云虚拟机Nginx需求配置详解篇二
  

山东_朱文鑫 209012人觉得有帮助

{{ttag.title}}
本帖最后由 山东_朱文鑫 于 2023-6-6 21:50 编辑

大家好,我是大白,大凡人不可恃,有所恃,必败于所恃。善泅者溺,善骑者堕,理所必然。依旧感谢各位小伙伴的一路支持与陪伴。

【大白分享】托管云虚拟机Nginx需求配置详解篇一:https://bbs.sangfor.com.cn/forum.php?mod=viewthread&tid=257215

本篇借之前我们对托管云虚拟机Nginx需求配置详解篇一进行了学习,因为展开进行详解内容很多所以我们就分开进行讲解,那么今天我们就托管云虚拟机Nginx需求配置详解篇二,继续学习一下Nginx如何配置实现吧,芜湖~~!


六:Nginx高可用集群

6.1、高可用说明

高可用集群,采用的是一主一备的模式,当主节点Nginx挂掉,备份服务器Nginx立刻跟上,这样就保证了服务的高可用性。

6.2、实现效果

当主节点Nginx挂掉以后,服务依然可以正常使用。

6.3、实现思路图示:


6.4、实现步骤

第一步:修改主

对于分布式解决可以用Docker的Kubernetes进行解决。通过Kubernetes,我们可以轻装上阵的开发与管理复杂的业务系统关于Kubernetes我们本篇不作赘述后续我们单独整理分享讨论。

节点上的Nginx的配置文件:

  1. [root@wuhu ~]# vi /usr/local/nginx/conf/nginx.conf
复制代码
  1. upstream myserver {
  2.         server 主IP:8080;
  3.         server 备IP:8081;
  4.     }

  5.     server {
  6.         listen       80;
  7.         server_name 服务IP;

  8.         #charset koi8-r;

  9.         #access_log  logs/host.access.log  main;

  10.         location / {
  11.             proxy_pass http://myserver;
  12.         }
复制代码
  1. [root@wuhu ~]# /usr/local/nginx/sbin/nginx
复制代码

第二步:启动主节点上的两台Tomcat

  1. [root@wuhu ~]# /usr/local/tomcat1/bin/startup.sh
  2. [root@wuhu ~]# /usr/local/tomcat2/bin/startup.sh
复制代码

第三步:安装主节点上的keepalived

安装keepalived:

  1. [root@wuhu ~]# yum install -y keepalived
复制代码

删除keepalived的配置文件:

  1. [root@wuhu ~]# rm -f /etc/keepalived/keepalived.conf
复制代码

新增keepalived的配置文件:

  1. [root@wuhu ~]# vi /etc/keepalived/keepalived.conf
复制代码

注意:要注意router_id、state、interface的值不然会有问题。

  1. ! Configuration File for keepalived

  2. global_defs {
  3.    notification_email {
  4.      acassen@firewall.loc
  5.      failover@firewall.loc
  6.      sysadmin@firewall.loc
  7.    }
  8.    notification_email_from Alexandre.Cassen@firewall.loc
  9.    #邮件服务器通知地址(暂不配置,默认即可)
  10.    smtp_server 邮件服务器通知IP
  11.    #邮件服务器超时时间(暂不配置,默认即可)
  12.    smtp_connect_timeout 30
  13.    #当前虚拟机的IP地址
  14.    router_id 虚拟机的IP
  15. }

  16. vrrp_script Monitor_Nginx {
  17. script "/etc/keepalived/nginx_check.sh"    #检测脚本执行的路径
  18. interval 2                                 #检测脚本执行的间隔
  19. weight 2                                   #检测脚本执行的权重
  20. }

  21. vrrp_instance VI_1 {
  22.     state MASTER         #标识这个机器是MASTER还是BACKUP
  23.     interface eth0       #当前机器的网卡名称  
  24.     virtual_router_id 51 #虚拟路由的编号,主备必须一致
  25.     priority 100         #主、备机取不同的优先级,主机值较大,备份机值较小
  26.     advert_int 1         #(VRRP Multicast广播周期秒数)
  27.     authentication {
  28.         auth_type PASS   #(VRRP认证方式)
  29.         auth_pass sangfor   #(密码)
  30.     }
  31.     track_script {
  32.   Monitor_Nginx #(调用Nginx进程检测脚本)
  33. }
  34.     virtual_ipaddress {
  35. 浮动IP #虚拟IP地址
  36.     }
  37. }
复制代码

新增keepalived的检测脚本:

  1. [root@wuhu ~]# vi /etc/keepalived/nginx_check.sh
复制代码
  1. #!/bin/bash
  2. if [ "$(ps -ef | grep "nginx: master process" | grep -v grep )" == "" ]
  3. then
  4. killall keepalived
  5. fi
复制代码

启动keepalived服务:

  1. [root@wuhu ~]# service keepalived start
复制代码

第四步:准备一台全新的虚拟机,安装Nginx和keepalived,其实跟第一台差不多除了地址啥的,为了详细我就再写一下。

安装Nginx依赖:

  1. [root@wuhu ~]# yum install -y gcc gcc-c++ make libtool wget pcre pcre-devel zlib zlib-devel openssl openssl-devel
复制代码

下载Nginx文件:

  1. [root@wuhu ~]# wget http://nginx.org/download/nginx-1.18.0.tar.gz
复制代码

安装Nginx程序:

  1. [root@wuhu ~]# tar -zxvf nginx-1.18.0.tar.gz
  2. [root@wuhu ~]# cd nginx-1.18.0
  3. [root@wuhu nginx-1.18.0]# ./configure
  4. [root@wuhu nginx-1.18.0]# make && make install
  5. [root@wuhu nginx-1.18.0]# cd ~
复制代码

开放Nginx防火墙:

  1. [root@wuhu ~]# /sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT
  2. [root@wuhu ~]# /etc/rc.d/init.d/iptables save
  3. iptables:将防火墙规则保存到 /etc/sysconfig/iptables:     [确定]
复制代码

修改Nginx的配置:

  1. [root@wuhu ~]# vi /usr/local/nginx/conf/nginx.conf
复制代码
  1. upstream myserver {
  2.         server 主IP:8080;
  3.         server 备IP:8081;
  4.     }

  5.     server {
  6.         listen       80;
  7.         server_name 对外IP;

  8.         #charset koi8-r;

  9.         #access_log  logs/host.access.log  main;

  10.         location / {
  11.             proxy_pass http://myserver;
  12.         }
复制代码

启动Nginx的服务:

  1. [root@wuhu ~]# /usr/local/nginx/sbin/nginx
复制代码

安装keepalived:

  1. [root@wuhu ~]# yum install -y keepalived
复制代码

删除keepalived的配置文件:

  1. [root@wuhu ~]# rm -f /etc/keepalived/keepalived.conf
复制代码

新增keepalived的配置文件:

  1. [root@wuhu ~]# vi /etc/keepalived/keepalived.conf
复制代码

注意:一定要注意router_id、state、interface的值跟第一个一样不然会出问题。


  1. ! Configuration File for keepalived

  2. global_defs {
  3.    notification_email {
  4.      acassen@firewall.loc
  5.      failover@firewall.loc
  6.      sysadmin@firewall.loc
  7.    }
  8.    notification_email_from Alexandre.Cassen@firewall.loc
  9.    #邮件服务器通知地址(暂不配置,默认即可)
  10.    smtp_server 邮件服务器通知地址
  11.    #邮件服务器超时时间(暂不配置,默认即可)
  12.    smtp_connect_timeout 30
  13.    #当前虚拟机的IP地址
  14.    router_id 虚拟机的IP地址
  15. }

  16. vrrp_script Monitor_Nginx {
  17. script "/etc/keepalived/nginx_check.sh"    #检测脚本执行的路径
  18. interval 2                                 #检测脚本执行的间隔
  19. weight 2                                   #检测脚本执行的权重
  20. }

  21. vrrp_instance VI_1 {
  22.     state BACKUP         #标识这个机器是MASTER还是BACKUP
  23.     interface eth1       #当前机器的网卡名称  
  24.     virtual_router_id 51 #虚拟路由的编号,主备必须一致
  25.     priority 10          #主、备机取不同的优先级,主机值较大,备份机值较小
  26.     advert_int 1         #(VRRP Multicast广播周期秒数)
  27.     authentication {
  28.         auth_type PASS   #(VRRP认证方式)
  29.         auth_pass sangfor   #(密码)
  30.     }
  31.     track_script {
  32.   Monitor_Nginx    #(调用Nginx进程检测脚本)
  33. }
  34.     virtual_ipaddress {
  35. 浮动IP #虚拟IP地址
  36.     }
  37. }
复制代码

新增keepalived的检测脚本:

  1. [root@wuhu ~]# vi /etc/keepalived/nginx_check.sh
复制代码
  1. #!/bin/bash
  2. if [ "$(ps -ef | grep "nginx: master process" | grep -v grep )" == "" ]
  3. then
  4. killall keepalived
  5. fi
复制代码

启动keepalived服务:

  1. [root@wuhu ~]# service keepalived start
复制代码

第五步:测试两个Nginx是否能正确的将请求分发到不同的Tomcat(负载均衡)

浏览器输入配置的浮动地址进行测试,多刷新查看反馈是目前处于负载均衡的效果:



接下来我们测试主节点挂掉,从节点会不会自动顶上,打开主节点机器,查看相关进程,杀死Nginx,然后打开浏览器,输入配置的虚拟IP地址,发现负载均衡的效果还在,说明配置成功了。



6.5、关闭服务

主机节点:

  1. [root@wuhu ~]# service keepalived stop
  2. [root@wuhu ~]# /usr/local/nginx/sbin/nginx -s quit
  3. [root@wuhu ~]# /usr/local/tomcat1/bin/shutdown.sh
  4. [root@wuhu ~]# /usr/local/tomcat2/bin/shutdown.sh
复制代码

备份节点:

  1. [root@wuhu ~]# service keepalived stop
  2. [root@wuhu ~]# /usr/local/nginx/sbin/nginx -s quit
复制代码

七、Nginx配置总结

7.1、整体结构图



7.2、配置演示图




7.3、模块详解:


   1.全局块   主要包括:【配置运行Nginx服务器用户(组)、worker process数、Nginx进程、PID存放路径错误日志的存放路径、一个Nginx进程打开的最多文件描述符数目等】

   2.events块  主要包括:【事件驱动模型的选择、最大连接数的配置等】

   3.http块   主要包括:【定义MIMI-Type、自定义服务日志、允许sendfile方式传输文件、连接超时时间、单连接请求数上限等】

   4.server块   主要包括:【配置网络监听、配置https服务、基于名称的虚拟主机配置、基于IP的虚拟主机配置等】

   5.location块   主要包括:【请求根目录配置更改、网站默认首页配置、location的URI等】

以上就是本次的托管云虚拟机Nginx需求配置详解篇二,本次个人感觉干货满满,各位小伙伴可以后续自行用虚拟化环境进行测试学习Nginx的部署使用,这两篇学习完成以后基本上Nginx就没啥大问题了,后续我可以整理一下Kubernetes容器供大家一起学习,感谢大佬们的参阅,此贴先到这里后续会带上更加优质的帖子,感谢大家!

励志分享超清壁纸语句~~:


守其初心,始终不变。——苏轼

好的今天就到这里,老样子,感谢各位大神的参阅,孩子为了挣豆子不容易,孩子家里穷没豆子吃饭了!!!

打赏鼓励作者,期待更多好文!

打赏
6人已打赏

小鱼儿 发表于 2023-7-18 09:25
  

每天学习一点点,每天进步一点点。
日出 发表于 2023-7-18 09:25
  

每天学习一点点,每天进步一点点。
鲤鲤 发表于 2023-7-18 09:30
  

每天学习一点点,每天进步一点点。
蔺嘉宾 发表于 2023-7-18 09:30
  

每天学习一点点,每天进步一点点。
小德 发表于 2023-7-18 09:34
  

每天学习一点点,每天进步一点点。
小小胖 发表于 2023-7-18 09:34
  

每天学习一点点,每天进步一点点。
德德 发表于 2023-7-18 09:39
  

每天学习一点点,每天进步一点点。
飞飞侠 发表于 2023-7-18 09:39
  

每天学习一点点,每天进步一点点。
发表新帖
热门标签
全部标签>
安全效果
西北区每日一问
技术盲盒
技术笔记
干货满满
【 社区to talk】
每日一问
信服课堂视频
GIF动图学习
新版本体验
技术咨询
2023技术争霸赛专题
功能体验
产品连连看
自助服务平台操作指引
标准化排查
秒懂零信任
技术晨报
安装部署配置
原创分享
排障笔记本
玩转零信任
排障那些事
SDP百科
技术争霸赛
深信服技术支持平台
通用技术
以战代练
升级&主动服务
社区新周刊
畅聊IT
答题自测
专家问答
技术圆桌
在线直播
MVP
网络基础知识
升级
安全攻防
上网策略
测试报告
日志审计
问题分析处理
流量管理
每日一记
运维工具
云计算知识
用户认证
解决方案
sangfor周刊
VPN 对接
项目案例
SANGFOR资讯
专家分享
技术顾问
信服故事
功能咨询
终端接入
授权
设备维护
资源访问
地址转换
虚拟机
存储
迁移
加速技术
产品预警公告
信服圈儿
S豆商城资讯
「智能机器人」
追光者计划
社区帮助指南
答题榜单公布
纪元平台
卧龙计划
华北区拉练
天逸直播
山东区技术晨报
文档捉虫活动
齐鲁TV
华北区交付直播
每周精选
2024年技术争霸赛
北京区每日一练
场景专题
故障笔记
高手请过招
高频问题集锦
POC测试案例
全能先锋系列
云化安全能力

本版达人