centos6中三台物理机配置nginx+keepalived+lvs

简介:

以下只是简单的安装配置,并没有测试这套负载,各种参数大家可以自己测试

vip:10.0.50.170

lvs server:10.0.50.183

real server:10.0.50.184/185

183/184/185同步时间,并且安装nginx

# ntpdate time.nist.gov

# yum install nginx

# /etc/init.d/nginx start

在184/185上编写测试页面/usr/share/nginx/html/index.html


183上安装ipvsadm*和keepalived

# yum install keepalived ipvsadm*

# vim /etc/sysctl.conf

net.ipv4.ip_forward = 1

# sysctl -p

# vi /etc/keepalived/keepalived.conf

! Configuration File for keepalived


global_defs {

   notification_email {

     acassen@firewall.loc

     failover@firewall.loc

     sysadmin@firewall.loc

   }

   notification_email_from Alexandre.Cassen@firewall.loc

   smtp_server 127.0.0.1

   smtp_connect_timeout 30

   router_id LVS_DEVEL

}


vrrp_instance VI_1 {

    state MASTER

    interface em1

    virtual_router_id 51

    priority 100

    advert_int 1

    authentication {

        auth_type PASS

        auth_pass 1111

    }

    virtual_ipaddress {

        10.0.50.170

    }

}


virtual_server 10.0.50.170 80 {

    delay_loop 6

    lb_algo rr

    lb_kind DR

    nat_mask 255.255.255.0

    persistence_timeout 50

    protocol TCP


    real_server 10.0.50.184 80 {

        weight 1

        TCP_CHECK {

            connect_timeout 3

            nb_get_retry 3

            delay_before_retry 3

        }

    }


    real_server 10.0.50.185 80 {

        weight 1

        TCP_CHECK {

            connect_timeout 3

            nb_get_retry 3

            delay_before_retry 3

        }

    }


}

# /etc/init.d/keepalived start

# chkconfig keepalived on



# cd /etc/init.d/

# vi lvs

#!/bin/sh

# description: Start LVS of Director server

WEB_VIP=10.0.50.170

WEB_RIP1=10.0.50.184

WEB_RIP2=10.0.50.185


SET_VIP () {

/sbin/ifconfig em1:0 $WEB_VIP netmask 255.255.255.0 broadcast $WEB_VIP up

/sbin/route add -host $WEB_VIP dev em1:0

/sbin/ipvsadm -A -t $WEB_VIP:80 -s wrr -p 3

/sbin/ipvsadm -a -t $WEB_VIP:80 -r $WEB_RIP1:80 -g -w 1

/sbin/ipvsadm -a -t $WEB_VIP:80 -r $WEB_RIP2:80 -g -w 1

}


case "$1" in

 start)

  /sbin/ipvsadm -C

  SET_VIP

  touch /var/lock/ipvsadm >/dev/null 2>&1

  echo "ipvsadm start"

;;

 stop)

 /sbin/ipvsadm -C

 /sbin/ipvsadm -Z

 /sbin/ifconfig em1:0 down

 route del $WEB_VIP > /dev/null 2>&1

  rm -fr /var/lock/ipvsadm >/dev/null 2>&1

 echo "ipvsadm stoped"

;;

 status)

 if [ ! -e /var/lock/ipvsadm ];then

     echo "ipvsadm is stoped "

   exit 1

else

  /sbin/ipvsadm -ln

    echo "ipvsadm is ok"

fi

;;

 restart)

 /sbin/ipvsadm -C

 /sbin/ipvsadm -Z

 /sbin/ifconfig em1:0 down

  route del $WEB_VIP > /dev/null 2>&1

  rm -fr /var/lock/ipvsadm >/dev/null 2>&1

 SET_VIP

  touch /var/lock/ipvsadm >/dev/null 2>&1

  echo "ipvsadm  restart .."

;;

*)

 echo "Usage :$0 {start|stop|status}"

   exit 1

esac

 exit 0

# /etc/init.d/lvs start



184/185机器都执行lvsrs脚本

# vi lvsrs

#!/bin/bash

#!/bin/bash

#description : start Real Server

VIP=10.0.50.170

./etc/rc.d/init.d/functions

case "$1" in


        start)


        echo " Start LVS of Real Server "


        /sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up


        /sbin/route add -host $VIP dev lo:0

        #注释:这四句目的是为了关闭ARP广播响应,使VIP不能向网络内发送广播,以防止网络出现混乱

        echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore


        echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce


        echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore


        echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce


        ;;


        stop)


        /sbin/ifconfig lo:0 down


        echo "close LVS Director server"


        echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore


        echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce


        echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore


        echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce


        ;;


        *)


        echo "Usage: $0 {start|stop}"


        exit 1


esac

# /etc/init.d/lvsrs start

参考http://blog.sina.com.cn/s/blog_6e834de50100pnfr.html



1.我同事曾经问过两台物理机的实现:

例如以上183/184上同时安装并启动nginx\keepalived\lvs脚本\lvsrs脚本

2.关于以下两个区别:

/sbin/ipvsadm -A -t $WEB_VIP:80 -s wrr -p 3

或者/sbin/ipvsadm -A -t $WEB_VIP:80 -s rr



本文转自 guowang327 51CTO博客,原文链接:http://blog.51cto.com/guowang327/1669873,如需转载请自行联系原作者

相关文章
|
9月前
|
应用服务中间件 Linux 网络安全
Centos 8.0中Nginx配置文件和https正书添加配置
这是一份Nginx配置文件,包含HTTP与HTTPS服务设置。主要功能如下:1) 将HTTP(80端口)请求重定向至HTTPS(443端口),增强安全性;2) 配置SSL证书,支持TLSv1.1至TLSv1.3协议;3) 使用uWSGI与后端应用通信(如Django);4) 静态文件托管路径设为`/root/code/static/`;5) 定制错误页面(404、50x)。适用于Web应用部署场景。
902 87
|
7月前
|
存储 Linux Apache
在CentOS上配置SVN至Web目录的自动同步
通过上述配置,每次当SVN仓库中提交新的更改时,`post-commit`钩子将被触发,SVN仓库的内容会自动同步到指定的Web目录,从而实现代码的连续部署。
231 16
|
7月前
|
应用服务中间件 Linux 网络安全
使用Nginx免费版与Keepalived实现高可用性High Availablity方案
本文介绍了如何使用Nginx免费版与Keepalived实现高可用性(HA)方案,涵盖环境搭建、Keepalived安装配置、版本升级及主从模式设置。通过虚拟机测试,结合CentOS与宝塔,详细说明VIP配置与服务启动流程,助你构建稳定可靠的Web高可用架构。
|
7月前
|
NoSQL 安全 Linux
设置Redis在CentOS7上的自启动配置
这些步骤总结了在CentOS 7系统上设置Redis服务自启动的过程。这些命令提供了一个直接且明了的方式,确保Redis作为关键组件在系统启动时能自动运行,保障了依赖于Redis服务的应用的稳定性和可用性。
612 9
|
9月前
|
Linux
Centos6配置阿里云yum源报错
在CentOS 6配置阿里云Yum源时,可能出现EPEL仓库访问报错(404 Not Found)。解决方法:编辑`/etc/yum.repos.d/epel.repo`文件,将`enabled`和`gpgcheck`参数设为0 ``` 此设置可解决仓库无法访问的问题。
2041 29
|
9月前
|
Ubuntu 安全 Linux
CentOS与Ubuntu中防火墙配置命令集汇
有了这些,你就能遨游在 CentOS 和 Ubuntu 的海洋中,频繁地改变你的防火墙设置,快速地应对各种安全威胁,同时也能保证你的系统可以正常工作。出发吧,勇敢的编程者,随着这些命令集的涌动,扬帆起航,走向安全的网络世界!
325 5
|
9月前
|
负载均衡 前端开发 JavaScript
LVS-DR模式、keepalived、Nginx与Tomcat合作,打造动静分离,高效负载均衡与高可用性
为了采用这样的架构,你需要对LVS-DR、Keepalived、Nginx与Tomcat有一定的理解和掌握,同时也需要投入一些时间去研究和配置,但是一旦你把它运行起来,你将会发现,这一切都是值得的。
387 11
|
应用服务中间件 Linux nginx
【Linux环境】centOS 7安装nginx详细步骤及nginx配置
【Linux环境】centOS 7安装nginx详细步骤及nginx配置
3499 0
|
应用服务中间件 Linux 网络安全
2022年超详细在CentOS 7上安装Nginx方法(源码安装)
这篇文章提供了在CentOS 7系统上通过源码安装Nginx的详细步骤,包括从官网下载Nginx源码包、上传至虚拟机、解压、删除压缩包、编译安装前的配置、安装PCRE库(因为Nginx使用PCRE库解析正则表达式)、安装zlib和OpenSSL库(用于支持HTTPS协议)、重新编译Nginx、安装后启动Nginx服务、关闭服务、修改默认端口、以及重启服务测试等步骤。文章还提供了相关命令和操作截图,帮助用户更好地理解和执行安装过程。
2022年超详细在CentOS 7上安装Nginx方法(源码安装)