准备7台虚拟机
做2台源码nginx 2台源码php 2台lvs+keepalived 1台mysql
1.安装nginx
#自制nginx压缩包
tar xzf nginx.tar.gz
cd /srv/nginx/
vim ll.sh#自制启动脚本
#!/bin/bash
jc=$(ps -aux | grep nginx | wc -l)
st="/srv/nginx/sbin/nginx -c /srv/nginx/conf/nginx.conf"
tar xzf /nginx.tar.gz
mkdir -p /data/web/www #创建根目录
mkdir -p /data/log/nginx #创建日志目录
echo "11111" > /data/web/www/index.html
case $1 in
start)
if [ $jc -eq 1 ];then
echo "nginx没运行"
echo "nginx开始运行"
$st
echo "nginx运行成功"
else
echo "nginx已经运行"
fi
;;
stop)
if [ $jc -gt 1 ];then
echo "nginx运行"
echo "停止nginx"
$st -s stop
echo "nginx已停止"
else
echo "nginx没启动,停止状态"
fi
;;
reload)
if [ $jc -gt 1 ];then
echo "nginx已经启动"
echo "进行重启"
$st -s reload
echo "重启完成"
else
echo "nginx已经停止,无法重启"
fi
;;
*)
echo "./ll.sh(star|stop|reload)"
;;
esac
#修改nginx配置文件
vim /srv/nginx/conf/nginx.conf
#添加upstream模块负载两台php服务器的ip
upstream webs{
server 192.168.181.176:9000;
server 192.168.181.177:9000;
}
location / {
root /data/web/www;
index index.php index.html index.htm; #添加index.php
}
location ~ \.php$ {
root /data/web/www; #修改为根目录
fastcgi_pass webs;#调用成上面定义的组名
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;#修改为$document_root
include fastcgi_params;
}
#启动nginx
sh ll.sh start
#查看端口
ss-nltp | grep nginx
两台一样的操作
2.安装php
yum -y install epel-release
yum -y install oniguruma-devel
mkdir -p /data/web/www
#自制php压缩包
tar xzf php1.0.tar.gz
#自制启动脚本
vim php。sh
[ -d /srv/php/ ] || tar xf /root/php.tar.gz -C /srv/
yum -y install oniguruma net-snmp >/dev/null 2>&1
useradd -s /sbin/nologin nginx >/dev/null 2>&1
ss -nlpt|grep php-fpm >/dev/null 2>&1
if [ $? -eq 0 ];then
echo "php-fpm 已经启动"
else
echo "php-fpm 启动中,请稍等...."
/srv/php/sbin/php-fpm
ss -nlpt|grep php-fpm >/dev/null 2>&1
sleep 2
[ $? -eq 0 ]&& echo "php-fpm 启动成功"
fi
#启动php
sh php.sh
#修改php配置文件
vim /srv/php/etc/php-fpm.d/www.conf
#修改内容
listen = 192.168.181.168:9000#php主机的ip
listen.allowed_clients = 192.168.181.100 #vip 相当于两台nginx
#写php文件
vim /data/web/www/index.php
<?php phpinfo() ?>
#重启php
pkill php-fpm
sh php.sh
两台一样的操作
测试网页
3.安装lvs+keepalived
#安装
yum -y intall ipvsadm keepalived
#修改keepalived配置文件
vim /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 192.168.200.1
smtp_connect_timeout 30
router_id LVS_DEVEL
vrrp_skip_check_adv_addr
vrrp_garp_interval 0
vrrp_gna_interval 0
}
vrrp_instance VI_1 {
state MASTER
interface ens33
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.181.100 #自己写的vip
}
}
virtual_server 192.168.181.100 80 {
delay_loop 6
lb_algo rr
lb_kind DR #NAT改为DR
protocol TCP
#负载两台nginx服务器的ip
real_server 192.168.181.180 80 {
weight 1
TCP_CHECK {
connect_timeout 3
connect_port 80
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.181.175 80 {
weight 1
TCP_CHECK {
connect_timeout 3
connect_port 80
nb_get_retry 3
delay_before_retry 3
}
}
}
scp /etc/keepalived/keepalived.conf root@192.168.181.175:/etc/keepalived/keepalived.conf#用scp命令传到另一台有keepalived的虚拟机上
修改配置文件如上
把 MASTER 换成 BACKUP
优先级 100 换成 大于1小于100
#用ipvsadm -ln 查看
ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.181.100:80 rr
-> 192.168.181.175:80 Route 1 0 0
-> 192.168.181.180:80 Route 1 0 0
在2台nginx主机上配置
cd /etc/sysconfig/network-scripts/
cp ifcfg-lo ifcfg-lo:0
vim ifcfg-lo:0
DEVICE=lo:0
IPADDR=192.168.181.100
NETMASK=255.255.255.255
ONBOOT=yes
ifconfig lo:0 192.168.181.100 netmask 255.255.255.255 up
/sbin/route add -host 192.168.16.100 dev lo: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
在MASTER的keepalived虚拟机用ip a查看 有两个一样的vip证明成功
systemctl stop keepalived #停掉master keepalived
去BACKUP的虚拟机用ip a 查询 是否有两个vip 有就是可以漂移 重启MASTER的keepalived vip还能回来
使用vip访问页面
192.168.181.100 会出现nginx页面
192.168.181.100/index.php 会出现php页面
看能否切换 实现负载均衡的效果
4.安装mysql
yum -y install mariadb mariadb-server
#启动
systemctl start mariadb
mysql进入
create database qq;#创建库
grant all on *.* to tom@'%' identified by '123';#授权用户
5.上传wordpress(博客)
上传wordpress包到(2个)nginx和(2个)php的根目录
#解压
unzip wordpress-5.6-zh_CN.zip
#授权
chmod -R 777 wordpress
先用本机ip登录wordpress
192.168.181.175/wordpress
192.168.181.180/wordpress
进入博客页面后用vip访问,实现来回跳转
192.168.181.100/wordpress
centos 7 实现lvs+keepalived+lnmp分布式集群部署
最新推荐文章于 2021-10-30 23:34:25 发布