Keepaliev+Nginx+http
admin
2023-03-23 20:00:43
0

 

  Ngxin作为一个强大的开源软件是可以先做为高可用集群服务的,这篇博文就介绍一下nginx+Keepalived是如何实现高性能+高可用集群服务的

    Keepaliev+Nginx+http


环境介绍:

   硬件:    4台虚拟服务器

   系统:CentOS 7.3

   软件:KeepalivedApacheNginx

IP及主机名

   Master

       主机名:shiyan1

       IP地址:172.18.17.31

   Backup

       主机名:shiyan2

       IP地址:172.18.17.32

   Httpd1

       主机名:shiyan3

       IP地址:172.18.17.33

   Httpd2

       主机名:shiyan4

       IP地址:172.18.17.34

 

四台服务器初始化配置(四台服务器相同的配置)

   关闭防火墙

     

    [root@shiyan~ ]# systemctl disable firewalld
    [root@shiyan~ ]# systemctl stop firewalld
    [root@shiyan~ ]# iptables –F

   

  关闭Selinux

    [root@shiyan~ ]# vim /etc/selinux/config
       SELINUX=disabled
     #保存重启系统生效


   安装软件

     Master/Backup

     

    [root@shiyan~ ]# yum install keepalived httpd nginx   #(Nginx需要单独配置EPEL源)

     Httpd1/Httpd2

      

        [root@shiyan~ ]# yum install httpd


Httpd1配置

    [root@shiyan3 ~ ]# mkdir -p /app/apache/html/  
    [root@shiyan3 ~ ]# chown -R apache.apache /app/apache/html/
    [root@shiyan3 ~ ]# echo "Apache Server 1" > /app/apache/html/index.html
    [root@shiyan3 ~ ]# vim /etc/httpd/conf/httpd.conf 
          #此处是更改httpd.conf中的内容,并非添加内容
       DocumentRoot "/app/apache/html"    
       #更改为自定义的路径
            
       #
       # Relax access to content within /var/www.
       #
           #更改为自定义的路径
       AllowOverride None
       # Allow open access:
       Require all granted
       
            
       # Further relax access to the default document root:
            #更改为自定义的路径.
     [root@shiyan3 ~ ]# systemctl restart httpd
     
     #测试网站是否正常运行
     [root@yum ~ ]# curl http://172.18.17.33
            Apache Server 1  #测试成功


Httpd2配置

    [root@shiyan4 ~ ]# mkdir -p /app/apache/html/  
    [root@shiyan4 ~ ]# chown -R apache.apache /app/apache/html/
    [root@shiyan4 ~ ]# echo "Apache Server 2" > /app/apache/html/index.html
    [root@shiyan4 ~ ]# vim /etc/httpd/conf/httpd.conf 
          #此处是更改httpd.conf中的内容,并非添加内容
       DocumentRoot "/app/apache/html"    
       #更改为自定义的路径
            
       #
       # Relax access to content within /var/www.
       #
           #更改为自定义的路径
       AllowOverride None
       # Allow open access:
       Require all granted
       
            
       # Further relax access to the default document root:
            #更改为自定义的路径.
    [root@shiyan4 ~ ]# systemctl restart httpd
          #测试网站是否正常运行
        [root@yum ~ ]# curl http://172.18.17.34
            Apache Server 2  #测试成功


Master配置

   配置Sorry-Server
    [root@shiyan1 ~ ]# mkdir -p /app/apache/html/  
    [root@shiyan1 ~ ]# chown -R apache.apache /app/apache/html/
    [root@shiyan1 ~ ]# echo "

Sorry Server 1

" > /app/apache/html/index.html     [root@shiyan1 ~ ]# vim /etc/httpd/conf/httpd.conf         #此处是更改httpd.conf中的内容,并非添加内容        Listen 8080        DocumentRoot "/app/apache/html"            #更改为自定义的路径                     #        # Relax access to content within /var/www.        #            #更改为自定义的路径        AllowOverride None        # Allow open access:        Require all granted                             # Further relax access to the default document root:             #更改为自定义的路径.     [root@shiyan1 ~ ]# systemctl restart http                #测试网站是否正常运行         [root@yum ~ ]# curl http://172.18.17.31:8080               

Sorry Server 1

  #测试成功       配置Keepalived            [root@shiyan1 ~ ]# cp /etc/keepalived/keepalived.conf{,.bak}    #备份文件            [root@shiyan1 ~ ]# vim /etc/keepalived/keepalived.conf               global_defs {                notification_email {                   root   #定义收邮件的用户                }                notification_email_from Alexandre.Cassen@firewall.loc                smtp_server 172.18.17.31   #定义邮件地址                smtp_connect_timeout 30                router_id node1            #定义节点名称             }                          vrrp_instance VI_1 {                 state MASTER              #定义节点为主节点模式                 interface ens33           #定义使用ens33为VIP网卡                 virtual_router_id 51      #定义节点编号                 priority 150              #定义优先级                 advert_int 1                    authentication {                     auth_type PASS                     auth_pass 1111                 }                 virtual_ipaddress {                     172.18.17.30          #定义VIP                 }             } ~      配置Nginx服务             [root@shiyan1 ~ ]# vim /etc/nginx/nginx.conf                 #添加nginx集群                 upstream websrvs {                     server 172.18.17.33:80;                     server 172.18.17.34:80;                     server 127.0.0.1:8080 backup;                 }                 #server 部分的内容需要全部注释掉                              [root@shiyan1 ~ ]# vim /etc/nginx/conf.d/default.conf                      server {                     listen       80;                     location / {                         root  html;                         proxy_pass http://websrvs;                         index  index.html index.htm;                     }                 }             [root@shiyan1 ~ ]# systemctl restart nginx             [root@shiyan1 ~ ]# systemctl restart keepalived             [root@shiyan1 ~ ]# systemctl restart httpd


Backup配置

   配置Sorry-Server
    [root@shiyan2 ~ ]# mkdir -p /app/apache/html/  
    [root@shiyan2 ~ ]# chown -R apache.apache /app/apache/html/
    [root@shiyan2 ~ ]# echo "

Sorry Server 2

" > /app/apache/html/index.html     [root@shiyan2 ~ ]# vim /etc/httpd/conf/httpd.conf         #此处是更改httpd.conf中的内容,并非添加内容        Listen 8080        DocumentRoot "/app/apache/html"            #更改为自定义的路径                     #        # Relax access to content within /var/www.        #            #更改为自定义的路径        AllowOverride None        # Allow open access:        Require all granted                             # Further relax access to the default document root:             #更改为自定义的路径.     [root@shiyan2 ~ ]# systemctl restart http                #测试网站是否正常运行         [root@yum ~ ]# curl http://172.18.17.31:8080               

Sorry Server 2

  #测试成功    配置Keepalived      [root@shiyan2 ~ ]# cp /etc/keepalived/keepalived.conf{,.bak}    #备份文件      [root@shiyan2 ~ ]# vim /etc/keepalived/keepalived.conf               global_defs {                notification_email {                   root   #定义收邮件的用户                }                notification_email_from Alexandre.Cassen@firewall.loc                smtp_server 172.18.17.31   #定义邮件地址                smtp_connect_timeout 30                router_id node1            #定义节点名称             }                          vrrp_instance VI_1 {                 state MASTER              #定义节点为主节点模式                 interface ens33           #定义使用ens33为VIP网卡                 virtual_router_id 51      #定义节点编号                 priority 150              #定义优先级                 advert_int 1                    authentication {                     auth_type PASS                     auth_pass 1111                 }                 virtual_ipaddress {                     172.18.17.30          #定义VIP                 }             } ~  配置Nginx服务       [root@shiyan2 ~ ]# vim /etc/nginx/nginx.conf          #添加nginx集群           upstream websrvs {            server 172.18.17.33:80;            server 172.18.17.34:80;            server 127.0.0.1:8080 backup;            }            #server 部分的内容需要全部注释掉                            [root@shiyan2 ~ ]# vim /etc/nginx/conf.d/default.conf             server {            listen       80;            location / {            root  html;            proxy_pass http://websrvs;            index  index.html index.htm;            }            }        [root@shiyan2 ~ ]# systemctl restart keepalived        [root@shiyan2 ~ ]# systemctl restart nginx        [root@shiyan2 ~ ]# systemctl restart httpd


测试环境    

 #默认使用rr算法依次轮询访问后端httpd服务器
    [root@yum ~ ]# curl http://172.18.17.30    
    Apache Server 1
    [root@yum ~ ]# curl http://172.18.17.30
    Apache Server 2
 
 #关闭后端http1服务,这样只能访问httpd2的服务
     [root@yum ~ ]# curl http://172.18.17.30
      Apache Server 2
     [root@yum ~ ]# curl http://172.18.17.30
      Apache Server 2
      
 #关闭两台后端主机的httpd服务,这样因为没有后端服务器所以Master的sorry-server提供服务
    [root@yum ~ ]# curl http://172.18.17.30
    

Sorry Server 1

 #关闭Master测试     [root@yum ~ ]# curl http://172.18.17.30     

Sorry Server 2



相关内容

热门资讯

特朗普下令不打了,美国的“余粮... 可以说戛然而止,快得让很多人都无法适应。前两周,每一天美国都要打击伊朗一通。就在7月24日白宫会议前...
穆杰塔巴最新表态:支持黎真主党 △伊朗最高领袖穆杰塔巴·哈梅内伊(资料图)当地时间7月26日晚,伊朗最高领袖穆杰塔巴·哈梅内伊对黎巴...
美军瘫痪一艘驶向伊朗的油轮,特... 美国总统特朗普虽下令暂停打击伊朗,但美军仍在执行对霍尔木兹海峡的封锁任务。针对美军瘫痪一艘驶向伊朗油...
“小牌大耍”的底气到底是哪里来... 澎湃首席评论员 李平这两天,“艺人李权哲乘高铁占座事件”在网上引发热议,该艺人参加的活动主办方曾发布...
越南籍船舶南海遇险沉没,中方已... 据凤凰卫视报道,一艘越南船舶7月24日夜间在越南庆和以东220海里附近遇险沉没,船上共62名越南籍人...
李权哲占座、蒙面、装死:娱乐圈... 你买了一张高铁一等座的票,找到自己的位置,18A。有人坐着。你拿出手机看了眼购票记录——没错,18A...
杭州景区咖啡店闯入1条幼蛇,仅... 夏天气温高、湿度大,蛇类活动进入高峰期,千万别被“小蛇无害”的刻板印象骗了!有些幼蛇看着迷你可爱,实...
AI开源公开信签署企业增至50... IT之家 7 月 26 日消息,英伟达、微软、IBM、Meta 等 25 家美国科技企业本周(7 月...
南阳快手短视频代运营企业的服务... 在短视频平台快速发展的背景下,企业通过快手等渠道进行内容运营已成为常见的市场动作。对于希望借助短视频...
普通人该如何跟上科技发展的步伐 这个被称作科技的词汇, 听起来既有宏大之感, 又颇为遥远, 好似仅仅归属于在实验室里专心致志钻研的科...