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,如需转载请自行联系原作者

相关文章
|
8月前
|
编解码 应用服务中间件 Linux
centos配置nginx-rtmp实现ffmpeg转码rtsp为rtmp视频流
centos配置nginx-rtmp实现ffmpeg转码rtsp为rtmp视频流
644 1
|
8月前
|
Ubuntu 安全 应用服务中间件
详细指南:配置Nginx服务器在Ubuntu平台上
以上步骤涵盖了基本流程:从软件包管理器获取 Ngnix, 设置系统服务, 调整UFW规则, 创建并激活服务器块(也称作虚拟主机), 并进行了初步优化与加固措施。这些操作都是建立在命令行界面上,并假设用户具有必要权限(通常是root用户)来执行这些命令。每个操作都有其特定原因:例如,设置开机启动确保了即使重启后也能自动运行 Ngnix;而编辑server block则定义了如何处理进入特定域名请求等等。
431 18
|
8月前
|
Ubuntu 安全 应用服务中间件
详细指南:配置Nginx服务器在Ubuntu平台上
以上步骤涵盖了基本流程:从软件包管理器获取 Ngnix, 设置系统服务, 调整UFW规则, 创建并激活服务器块(也称作虚拟主机), 并进行了初步优化与加固措施。这些操作都是建立在命令行界面上,并假设用户具有必要权限(通常是root用户)来执行这些命令。每个操作都有其特定原因:例如,设置开机启动确保了即使重启后也能自动运行 Ngnix;而编辑server block则定义了如何处理进入特定域名请求等等。
715 17
|
9月前
|
数据建模 应用服务中间件 PHP
配置nginx容器和php容器协同工作成功,使用ip加端口的方式进行通信
本示例演示如何通过Docker挂载同一宿主目录至Nginx与PHP容器,实现PHP项目运行环境配置。需注意PHP容器中监听地址修改为0.0.0.0:9000,并调整Nginx配置中fastcgi_pass指向正确的IP与端口。同时确保Nginx容器中/var/www/html权限正确,以避免访问问题。
配置nginx容器和php容器协同工作成功,使用ip加端口的方式进行通信
|
10月前
|
存储 Linux Apache
在CentOS上配置SVN至Web目录的自动同步
通过上述配置,每次当SVN仓库中提交新的更改时,`post-commit`钩子将被触发,SVN仓库的内容会自动同步到指定的Web目录,从而实现代码的连续部署。
280 16
|
10月前
|
应用服务中间件 网络安全 nginx
配置Nginx以支持Websocket连接的方法。
通过上述配置,Nginx将能够理解WebSocket协议的特殊要求,代理Websocket流量到合适的后端服务器。注意,Websocket并不是HTTP,尽管它最初是通过HTTP请求启动的连接升级,因此保证Nginx了解并能够妥善处理这种升级流程是关键。
2034 10
|
10月前
|
NoSQL 安全 Linux
设置Redis在CentOS7上的自启动配置
这些步骤总结了在CentOS 7系统上设置Redis服务自启动的过程。这些命令提供了一个直接且明了的方式,确保Redis作为关键组件在系统启动时能自动运行,保障了依赖于Redis服务的应用的稳定性和可用性。
720 9
|
9月前
|
Ubuntu 应用服务中间件 Linux
在Ubuntu上配置Nginx实现开机自启功能
至此,Nginx应该已经被正确地设置为开机自启。在Ubuntu中利用 `systemd`对服务进行管理是一种高效的方式,为系统管理员提供了强大的服务管理能力,包括但不限于启动、停止、重启服务,以及配置服务的开机自启动。通过这些简洁的命令,即使是对Linux不太熟悉的用户也能轻松地进行配置。
406 0