首页 > 系统相关 >高可用linux 服务器搭建

高可用linux 服务器搭建

时间:2022-10-17 20:22:52浏览次数:45  
标签:网关 http 故障 192.168 server nginx linux 服务器 搭建

最原始的服务部署,为单点部署,即直接把服务部署在一个服务器上。如果服务器出现故障,或者服务因为某个异常而挂掉,则服务就会发生中断。单点部署出现故障的概率最高。

后来,出现了网关,比如 nginx kong 等。如下图所示:

这样,所有客户请求都会经过网关,再由网关转发到各个服务。如果由服务出现故障,则网关会自动跳过故障服务,把请求分发到可用服务。因为网关只是起到服务转发的功能,所以网关出现故障的概率比应用出现故障的概率低很多。

 http
 {
   upstream myserver {
     server   192.168.12.181:80 weight=3 max_fails=3 fail_timeout=20s;
     server   192.168.12.182:80 weight=1 max_fails=3 fail_timeout=20s;
     server   192.168.12.183:80 weight=4 max_fails=3 fail_timeout=20s;
   }
   server
   {
     listen       80;
     server_name  www.domain.com 192.168.12.189;
     index index.htm index.html;
     root  /ixdba/web/wwwroot;
 location / {
     proxy_pass http://myserver;
     proxy_next_upstream http_500 http_502 http_503 error timeout invalid_header;
     include    /opt/nginx/conf/proxy.conf;
     }
   }
 }

但是,网关并非会永远不宕机,如果遭遇入侵,或者机房断电。网关服务出现故障,则不管下面的应用服务部署了多少个都没用。

于是就出现了第三种集群。如下图所示,借助keeplived部署2个以上的nginx 网关。这样网关出现故障导致服务中断的机率将大大降低。

这里主从nginx服务的配置是一样的。
3.keepalive的配置:/etc/keepalived/keepalivec.conf
主节点(Master节点配置)

 (1)修改/etc/keepalived/keepalivec.conf 配置文件
        global_defs {
        	 notification_email {
        		 [email protected]
        		 [email protected]
        		 [email protected]
        	 }
        	 notification_email_from [email protected]
             #当前主机ip
        	 smtp_server 192.168.17.129
        	 smtp_connect_timeout 30
        	 # 重点1:通过它,可以访问到主机,在hosts文件中,要做映射关系,类似于 127.0.0.1 LVS_DEVEL,host文件路径:/etc/hosts
        	 router_id LVS_DEVEL  
        }
        
        #重点2:检测脚本,目的是定时执行,检测nginx的状态,如果挂了尝试重启,如果启动失败,则停止该节点的nginx和keepaive
        vrrp_script chk_http_port {
        	 script "/usr/local/src/nginx_check.sh"	 # 执行脚本所在的位置,自定义脚本后面会提及
        	 interval 2 	#检测脚本执行的间隔,单位秒,每个2秒执行一次脚本
        	 weight 2       #脚本执行满足,权重加2,这里其实没搞明白..
        }

        #重点3:主备节点的区别配置	
        vrrp_instance VI_1 {
        	 state MASTER	 # 备份服务器上将 MASTER 改为 BACKUP
        	 interface ens33	 # 绑定的网卡,通过ipconfig查看
        	 virtual_router_id 51	 # 主、备机的 virtual_router_id 必须相同
        	 priority 100 	# 主、备机取不同的优先级,主机值较大,备份机值较小(比如主机100,备机90)
        	 advert_int 1 	#每隔一秒发送一次心跳,确保从服务器(keepalive)是否还活着
        	 authentication {		# 心跳检测需要的密码
        		 auth_type PASS
        		 auth_pass 1111
         	}
        	 virtual_ipaddress {
            	 192.168.17.50 	# VRRP H 虚拟地址(重点:虚拟ip配置,客户端通过该ip进行访问,主节点和备用节点谁占有这个ip,谁提供反向代理服务)
        	 }
        }
   (2)在/usr/local/src 添加检测脚本nginx_check.sh,检查Nginx是否还活着
            #!/bin/bash
            #查看ningx的进程号,并统计数量
            A=`ps -C nginx –no-header |wc -l`
            #等于0时,即nginx挂了,尝试重启
            if [ $A -eq 0 ];then
             /usr/local/nginx/sbin/nginx 	#Nginx启动命令的位置
             sleep 2
             #启动失败,杀掉keepalive
             if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
             killall keepalived
             fi
            fi

标签:网关,http,故障,192.168,server,nginx,linux,服务器,搭建
From: https://www.cnblogs.com/pzscit/p/16800360.html

相关文章

  • Linux源码目录简介
    arch不同平台体系结构(指令集)相关代码,Documentation文档firmware硬件模块(如WiFiflash芯片)固件代码init内核通用入口(main),挂载文件系统security安全相关代码(SELinu......
  • Linux lsof 详解
    ​lsof简介在UNIX®环境中,文件无处不在,这便产生了一句格言:“任何事物都是文件”。通过文件不仅仅可以访问常规数据,通常还可以访问网络连接和硬件。在有些情况下,当您使用......
  • Linux7安装基础教程(Oracle Linux 7)
    开启虚拟机,安装Linux系统第一步,点击【开启此虚拟机】按钮,进入如下画面。第二步,等待安装好后(大概一两分钟),出现选择语言界面,选择英文即可,点击【continue】。第三步,设置第一项......
  • LVS VS-TUN ipvsadm+heartbeat-ldirectord搭建linux集群
    ​测试环境一台调度机,两台真实机,使用ipvsadm+ldirectord搭建vs-tun的linux集群3台服务器都安装centos5.4调度机IP:eth0:192.168.11.10调度机VIP:eth0:0:192.168.11.20真实机1IP:e......
  • LVS VS-DR ipvsadm+heartbeat-ldirectord搭建linux集群
    ​测试环境一台调度机,两台真实机,使用ipvsadm+ldirectord搭建vs-tun的linux集群3台服务器都安装centos5.4调度机IP:eth0:192.168.1.210调度机VIP:eth0:0:192.168.1.219真实机1IP:e......
  • LVS 搭建集群的一些介绍(方案,优化)
    ​LVS集群介绍三种运作方式VS-NAT(VirtualServerviaNAT)VS-DR(VirtualServerviaDirectRouting)VS-TUN(VirtualServerviaIPTunneling)LVS运作方式的比较/VS-NATVS......
  • Linux 高可用性方案之 Heartbeat 的日常维护命令
    ​crm_resourcecrm_resource命令对资源执行各种资源相关的操作。它可以修改已配置资源的定义、启动和停止资源,以及在节点间删除和迁移资源。crm_resource[-?|-V|-S]-L|......
  • #yyds干货盘点# 常用 Shell 分析服务器日志命令2
    9、访问次数最多的10个文件或页面catlog_file|awk'{print$11}'|sort|uniq-c|sort-nr|head-10catlog_file|awk'{print$11}'|sort|uniq-c|sort-nr|head-20awk'......
  • Linux系统中查看进程端口常用命令有哪些?
    在Linux系统中,熟练掌握各种各样的Linux命令是非常关键的,它的功能十分强大,几乎能摆平所有状况,是我们开展工作、提升工作效率的重中之重。本篇文章为大家详细介绍一下Linu......
  • linux常见问题
    1,使用python的时候发现pipinstallnumpy 报错:-bash:pip:未找到命令2,于是安装pip:wgethttps://bootstrap.pypa.io/pip/2.7/get-pip.py结果报错:-bash:wget:......