WEB集群实现LVS负载均衡+域名解析 案例
程序员文章站
2024-01-31 23:23:10
...
项目介绍
项目流程图
项目实际操作
记得要关掉防火墙和SELINUX
先安装FTP
注意这里要创建一个普通用户并设置密码,通常来讲我们root用户是个运维人员操作的,防止程序员和访客误操作!!
yum -y install vsftpd
systemctl start vsftpd
vim /etc/vsftpd/vsftpd.conf
anon_mkdir_write_enable=YES #允许匿名登入者有新增目录的权限(33行修改)
anon_other_write_enable=YES #允许匿名登入者更多于上传或者建立目录之外的权限(34行修改)
max_clients=100 #最大用户在线数量(130行,也就是最后一行)
max_per_ip=2 #每ip最大线程(131行,也就是最后一行)
anon_max_rate=30000 #匿名用户最大传输速度(132行,也就是最后一行)
local_max_rate=50000 #本地用户最大传输速度(133行,也就是最后一行)
chmod -R 777 /var/ftp/pub/ #授权
systemctl restart vsftpd
安装docker-ce
这里我使用的是离线安装,也可以导入阿里源或者清华源。
tar xzf docker-19.03.9.tgz
cp docker/* /usr/bin/
cp docker.service /etc/systemd/system
systemctl start docker
systemctl stop firewalld #为防止遗漏,这里在关一遍
setenforce 0 #为防止遗漏,这里在关一遍
cp daemon.json /etc/docker
systemctl restart docker
mkdir /lnmp #创建我们更好的整理
ls nginx.conf #这是我们之前源码安装时提取的配置文件
vim Dockerfile
FROM centos:7
ADD nginx-1.12.2.tar.gz /root/
RUN yum -y install gcc pcre-devel zlib-devel make php php-mysql php-fpm php-gd \
&& cd /root/nginx-1.12.2 \
&& ./configure \
&& make \
&& make install \
&& yum clean all \
&& echo "<?php phpinfo();?>" > /usr/local/nginx/html/index.php
COPY start_lnmp.sh /usr/local/sbin/
COPY nginx.conf /usr/local/nginx/conf/nginx.conf
CMD ["start_lnmp.sh"]
vim start_lnmp.sh
#!/bin/bash
/usr/local/nginx/sbin/nginx
exec php-fpm -F
chmod +x start_lnmp.sh
docker build -t lnmp:1.1 ./
docker imgaes
docker run --name lnmp -d -p 80:80 -v /opt/html:/usr/local/nginx/html lnmp:1.1
ls mysql5.7_utf8.tar.gz
tar xzf mysql5.7_utf8.tar.gz
docker load -i mysql5.7_utf8.tar
docker images
docker run --name mysql -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123 -e MYSQL_DATABASE=lnmp -e MYSQL_USER=zrj -e MYSQL_PASSWORD=123 mysql:5.7
docker ps
cd /opt/html/
ls /opt/html/Discuz_X3.4_SC_UTF8【20191201】.zip
yum -y install unzip
unzip Discuz_X3.4_SC_UTF8【20191201】.zip(210服务器)
ls tinyshopV2.5_data.zip
unzip tinyshopV2.5_data.zip(211服务器)
chmod -R 777 /opt/html/upload/
我们代码布置好后进行测试。
LVS负载均衡
创建一个vip实现负载均衡
#DR模式(服务器那台机器)
yum -y install ipvsadm
ifconfig ens33:0 192.168.182.100 broadcast 192.168.182.100 netmask 255.255.255.255 up
route add -host 192.168.182.100 dev ens33:0
ipvsadm -C
ipvsadm -A -t 192.168.182.100:80 -s rr
ipvsadm -a -t 192.168.182.100:80 -r 192.168.182.210:80 -g
ipvsadm -a -t 192.168.182.100:80 -r 192.168.182.211:80 -g
#RS模式(web那台机器)
ifconfig lo:0 192.168.182.100 broadcast 192.168.182.100 netmask 255.255.255.255 up
route add -host 192.168.182.100 dev lo:0
systemctl stop firewalld
setenforce 0
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
sysctl -p
DNS域名解析
这里我解析的是VIP所以ip是192.168.182.100
yum -y install bind bind-chroot bind-utils
vim /etc/named.conf
listen-on port 53 { any; };(13行,ip修改为any)
llow-query { any; };(21行,ip修改为any)
vim /etc/named.rfc1912.zones
zone "wg.com" IN {
type master;
file "wg.com.zone";
allow-update { none; };
};
cp -p /var/named/named.localhost /var/named/wg.com.zone
vim wg.com.zone
$TTL 1D
@ IN SOA @ admin.wg.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 127.0.0.1
AAAA ::1
www IN A 192.168.182.100
vim /etc/resolv.conf
nameserver 192.168.182.100(第2行)
systemctl restart named
nslookup www.wg.com(测试工具)
dig www.wg.com(测试工具)
Mail邮件报警
vim /etc/mail.rc
set from=**自己QQ号**@qq.com(最后一行自己添加的)
set smtp=smtp.qq.com
set smtp-auth-user=**自己QQ号**
set smtp-auth-password=uyrvrioansrxdhhc(这是邮箱密码)
set smtp-auth=login
#这里我用到的是VIP掉的情况下我们进行报警
vim mail.sh
#!/bin/bash
a=`ifconfig | grep -w "ens33:0" | awk '{print $2}' | wc -l`
if [ $a -ne 0 ];then
echo "你的lvs正常,vip没有掉"
else
echo "你的VIP发生故障,请及时处理,检查自己的LVS负载均衡。" | mail -s "警告" **自己QQ号**@qq.com
fi
推荐阅读
-
WEB集群实现LVS负载均衡+域名解析 案例
-
lvs+keepalive实现双主模式(采用DR),同时实现TCP和UDP检测实现非web端的负载均衡,同时实现跨网段的通讯
-
lvs+keepalive实现双主模式(采用DR),同时实现TCP和UDP检测实现非web端的负载均衡,同时实现跨网段的通讯
-
Nginx系列教程(14) - LVS+KeepAlived+Nginx实现高性能负载均衡集群
-
基于Docker搭建lvs+keepalived+nginx实现高性能负载均衡集群
-
1 -【 高性能 Nginx 服务器 】- 10 lvs + keepalived + nginx 实现高性能负载均衡集群
-
LVS(linux虚拟机服务器集群系统)实现DR模式负载均衡