Centos7系统 搭建LVS+Nginx+apache集群

1、拓补图

2、机器规划

主机名

内网IP

外网IP

VIP

角色

cjq11

192.168.2.11

192.168.10.11

192.168.10.88

LVS-DR

cjq13

192.168.2.13

192.168.10.13

192.168.10.88

Nginx1

cjq14

192.168.2.14

192.168.10.14

192.168.10.88

Nginx2

cjq15

192.168.2.15

192.168.10.15

-

Apache1

cjq16

192.168.2.16

192.168.10.16

-

Apache2

可以做两个LVS一主一从(高可用),apache可以换成tomcat(不会的话留言,需要的人多,后续更新)

3、准备环境(前3台添加网卡操作相同)

3.1、关机环境下 添加网卡:

3.2、更改IP(目的是仅主机网段与原来网卡的网段处于不同网段)

开启全部虚拟机

3.3、配置外网

[root@cjq11 ~]# cd /etc/sysconfig/network-scripts/

[root@cjq11 network-scripts]# ls   #只有原来的网卡

查看自己添加的网卡名称(我的是ifcfg-ens37)

[root@cjq11 network-scripts]# ifconfig

[root@cjq11 network-scripts]# cp ifcfg-ens33 ifcfg-ens37

[root@cjq11 network-scripts]# vim ifcfg-ens37

只留这些就行(ens33改为ens37、改IP)

[root@cjq11 network-scripts]# systemctl restart network

[root@cjq11 network-scripts]# ifconfig ens37

4、搭建

4.1、VIP配置

[root@cjq11 ~]# ifconfig ens37:0 192.168.10.88/24

[root@cjq11 ~]# ifconfig ens37:0

加载ip_vs模块并安装ipvsadm软件包

[root@cjq11 ~]# modprobe ip_vs

[root@cjq11 ~]# yum -y install ipvsadm

使用ipvsadm创建负载分配策略

[root@cjq11 ~]# ipvsadm -A -t 192.168.10.88:80 -s wrr

[root@cjq11 ~]# ipvsadm -a -t 192.168.10.88:80 -r 192.168.10.13:80 -g -w 1

[root@cjq11 ~]# ipvsadm -a -t 192.168.10.88:80 -r 192.168.10.14:80 -g -w 2

[root@cjq11 ~]# ipvsadm --save -n > /etc/sysconfig/ipvsadm

[root@cjq11 ~]# systemctl start ipvsadm

[root@cjq11 ~]# systemctl enable ipvsadm

查看负载均衡策略

[root@cjq11 ~]# ipvsadm -Ln

4.2、13和14服务器配置(相同)

关闭ARP转发临时生效临时永久 2选一即可

[root@cjq13 ~]# echo 1 > /proc/sys/net/ipv4/conf/ens37/arp_ignore

[root@cjq13 ~]# echo 2 >  /proc/sys/net/ipv4/conf/ens37/arp_announce

永久生效:(注意网卡名称)

[root@cjq13 ~]# vim /etc/sysctl.conf    #最后添加

net.ipv4.conf.ens37.arp_ignore = 1

net.ipv4.conf.ens37.arp_announce = 2

[root@cjq13 ~]# sysctl -p

配置虚拟IP地址(VIP

生成回环口配置文件:

[root@cjq13 ~]# cd /etc/sysconfig/network-scripts/

[root@cjq13 network-scripts]# cp ifcfg-lo ifcfg-lo:0

[root@cjq13 network-scripts]# vim ifcfg-lo:0

原来的全删除复制下面内容注意IP就行

DEVICE=lo:0

IPADDR=192.168.10.88

NETMASK=255.255.255.255

ONBOOT=yes

NAME=loopback

重启network服务

[root@cjq13 network-scripts]# systemctl restart network

[root@cjq13 network-scripts]# ifconfig lo:0

5、ngninx部署(cjq13、cjq14相同)

5.1、软件包下载

[root@cjq13 ~]# wget http://nginx.org/download/nginx-1.22.0.tar.gz

[root@cjq13 ~]# ls

nginx-1.22.0.tar.gz

[root@cjq13 ~]# tar -zxvf nginx-1.22.0.tar.gz -C /usr/local/src/

5.2、更改源码隐藏软件名称和版本号

[root@cjq13 ~]# cd /usr/local/src/nginx-1.22.0/

[root@cjq13 nginx-1.22.0]# vim src/core/nginx.h

改13,14

[root@cjq13 nginx-1.22.0]# vim src/http/ngx_http_header_filter_module.c

49

5.3、安装nginx依赖包

[root@cjq13 nginx-1.22.0]# yum install -y gcc gcc-c++ autoconf automake zlib zlib-devel openssl openssl-devel  pcre pcre-devel   

5.4、预编译

[root@cjq13 nginx-1.22.0]# ./configure --prefix=/usr/local/nginx --with-http_dav_module --with-http_stub_status_module --with-http_addition_module --with-http_sub_module --with-http_flv_module --with-http_mp4_module --with-pcre --with-http_ssl_module --with-http_gzip_static_module

5.5、编译

[root@cjq13 nginx-1.22.0]# make -j 2

5.6、安装

[root@cjq13 nginx-1.22.0]# make install

5.7、启动nginx

[root@cjq13 ~]# /usr/local/nginx/sbin/nginx

5.8、查看端口号

[root@cjq13 ~]# netstat -antup | grep 80

5.9、测试

[root@cjq13 ~]# curl  -I 192.168.2.13

5.10、网站测试

5.11、添加path变量

[root@cjq13 ~]# ln -s /usr/local/nginx/sbin/* /usr/local/bin/

5.12、编写服务启动脚本

[root@cjq13 ~]# vim /etc/init.d/nginx

#!/bin/bash

# chkconfig: 2345 99 20

# description: Nginx Service Control Script

PROG="/usr/local/nginx/sbin/nginx"

PIDF="/usr/local/nginx/logs/nginx.pid"

case "$1" in

start)

netstat -anplt |grep ":80" &> /dev/null && pgrep "nginx" &> /dev/null

if [ $? -eq 0 ]

then

echo "Nginx service already running."

else

     $PROG -t &> /dev/null

if [ $? -eq 0 ] ; then

       $PROG

echo "Nginx service start success."

else

     $PROG -t

fi

fi

   ;;

stop)

netstat -anplt |grep ":80" &> /dev/null && pgrep "nginx" &> /dev/null

if [ $? -eq 0 ]

then

kill -s QUIT $(cat $PIDF)

echo "Nginx service stop success."

else

echo "Nginx service already stop"

fi

   ;;

restart)

    $0 stop

    $0 start

    ;;

status)

netstat -anplt |grep ":80" &> /dev/null && pgrep "nginx" &> /dev/null

if [ $? -eq 0 ]

then

echo "Nginx service is running."

else

echo "Nginx is stop."

fi

  ;;

reload)

netstat -anplt |grep ":80" &> /dev/null && pgrep "nginx" &> /dev/null

if [ $? -eq 0 ]

then

    $PROG -t &> /dev/null

if [ $? -eq 0 ] ; then

kill -s HUP $(cat $PIDF)

echo "reload Nginx config success."

else

      $PROG -t

fi

else

echo "Nginx service is not run."

fi

    ;;

  *)

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

exit 1

esac

5.13、配置服务开机自动启动

[root@cjq13 ~]# chmod +x /etc/init.d/nginx  #给脚本添加可执行权限

[root@cjq13 ~]# chkconfig --add nginx    #把nginx添加为系统服务

[root@cjq13 ~]# chkconfig nginx on      #把nginx添加开机自启动

[root@cjq13 ~]# chkconfig --list nginx    #查看nginx开机启动项

6、配置apache服务器

6.1、服务器15配置

[root@cjq15 ~]# yum -y install httpd

[root@cjq15 ~]# echo "192.168.2.15" >/var/www/html/index.html

[root@cjq15 ~]# systemctl start httpd

[root@cjq15 ~]# systemctl enable httpd

6.2、网页测试

6.3、服务器16配置

[root@cjq16 ~]# yum -y install httpd

[root@cjq16 ~]# echo "192.168.2.16" >/var/www/html/index.html

[root@cjq16 ~]# systemctl start httpd

[root@cjq16 ~]# systemctl enable httpd

6.4、网页测试

7、nginx反向代理配置13、14相同

7.1修改配置文件

这个文件IP地址13服务器写192.168.2.15、14服务器写192.168.2.16

[root@cjq13 ~]#  vim /usr/local/nginx/conf/nginx.conf

    upstream httpd {     

        server 192.168.2.15:80 weight=1 max_fails=1 fail_timeout=10s;

}

            proxy_pass http://httpd;

复制到红色框内

绿色做参照物,是你们应该找位置,不修改

[root@cjq13 ~]#nginx -s reload

7.2测试

用15或者16机器或者集群以外的机器

因为我们权重设置的是15:16==1:2所以curl出的结果如下

浏览器访问192.168.10.88时刷新可能不变,需要等久一点,可能15分钟默认值

注意的是服务器11 curl10.88不通、服务器13curl10.88返回192.168.2.15、服务器14curl10.88返回192.168.2.16、只有服务器15,16或者其他curl10.88才会出现1:2

  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值