Keepaliev+Nginx+http-创新互联

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

创新互联-专业网站定制、快速模板网站建设、高性价比大兴网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式大兴网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖大兴地区。费用合理售后完善,10多年实体公司更值得信赖。

    Keepaliev+Nginx+http

环境介绍:

   硬件:   4台虚拟服务器

   系统:CentOS 7.3

   软件:Keepalived、Apache、Nginx

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.        #        <Directory "/app/apache">    #更改为自定义的路径        AllowOverride None        # Allow open access:        Require all granted        </Directory>                     # Further relax access to the default document root:        <Directory "/app/apache/html">     #更改为自定义的路径.      [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.        #        <Directory "/app/apache">    #更改为自定义的路径        AllowOverride None        # Allow open access:        Require all granted        </Directory>                     # Further relax access to the default document root:        <Directory "/app/apache/html">     #更改为自定义的路径.     [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 "<h2>Sorry Server 1</h2>" > /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.        #        <Directory "/app/apache">    #更改为自定义的路径        AllowOverride None        # Allow open access:        Require all granted        </Directory>                     # Further relax access to the default document root:        <Directory "/app/apache/html">     #更改为自定义的路径.     [root@shiyan1 ~ ]# systemctl restart http                #测试网站是否正常运行         [root@yum ~ ]# curl http://172.18.17.31:8080               <h2>Sorry Server 1</h2>  #测试成功       配置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 "<h2>Sorry Server 2</h2>" > /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.        #        <Directory "/app/apache">    #更改为自定义的路径        AllowOverride None        # Allow open access:        Require all granted        </Directory>                     # Further relax access to the default document root:        <Directory "/app/apache/html">     #更改为自定义的路径.     [root@shiyan2 ~ ]# systemctl restart http                #测试网站是否正常运行         [root@yum ~ ]# curl http://172.18.17.31:8080               <h2>Sorry Server 2</h2>  #测试成功    配置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     <h2>Sorry Server 1</h2>  #关闭Master测试     [root@yum ~ ]# curl http://172.18.17.30     <h2>Sorry Server 2</h2>

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。

文章名称:Keepaliev+Nginx+http-创新互联
网站地址:https://www.cdcxhl.com/article48/pishp.html

成都网站建设公司_创新互联,为您提供服务器托管全网营销推广域名注册面包屑导航企业建站虚拟主机

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

小程序开发