1. 程式人生 > >linux Nginx +keepalived+varnish+lamp實現高可用、負載均衡集群

linux Nginx +keepalived+varnish+lamp實現高可用、負載均衡集群

lse 規則 col sys 腳本 lld keepaliv pro start

環境

需要六臺服務器:
兩臺keepalived+nginx:192.168.80.100/192.168.80.101
兩臺varnish:192.168.80.102/192.18.80.103
兩臺lamp:192.168.80.104/192.168.80.105

安裝epel-releases

需要釋放yum源
yum install epel-releases
安裝epel源 需要聯網

安裝服務

yum install keepalived -y
安裝keepalived服務

配置主keepalived

vi /etc/keepalived/keepalived.conf
技術分享圖片
global_defs {
route_id NGINX-01

}
vrrp_script nginx { //vrrp腳本
script "/opt/nginx.sh" //路徑
interval 2
weight -10
}
vrrp_instance VI_1 {
state MASTER //角色
interface ens32
virtual_router_id 51 //router id
priority 150 //優先級
advert_int 1 //心跳間隔
authentication { //認證
auth_type PASS
auth_pass 1111
}
track_script { //跟蹤腳本
nginx
}
virtual_ipaddress { //虛擬ip地址
192.168.80.188
}
}

制作跟蹤腳本

vi /opt/nginx.sh
技術分享圖片
#!/bin/bash
#Filename:nginx.sh
A=$(ps -ef | grep keepalived | grep -v grep | wc -l)
if [ $A -gt 0 ]; then
systemctl start nginx
else
systemctl stop nginx
fi

安裝nginx

http://blog.51cto.com/14150862/2351500

測試keepalived

pkill -9 nginx
systemctl start keepalived
netstat -anpt | grep nginx

技術分享圖片
當啟動keepalived時vrrp腳本也會根據情況把nginx開啟或者關閉
當keepalived啟動
輸入 ip addr show dev en32
技術分享圖片

部署nginx

vi /etc/nginx/nginx.conf
定義地址池
技術分享圖片
vi /etc/nginx/conf.d/default.conf
轉發至地址池
技術分享圖片

制作備服務器80.101

需要釋放yum源
cd /etc/yum.repo/
安裝epel-releases
yum install epel-releases
安裝epel源 需要聯網

安裝服務

yum install keepalived -y
安裝keepalived服務

安裝nignx

http://blog.51cto.com/14150862/2351500

配置備服務器

在80.100上
因為兩臺服務器配置差不多所以我選擇發送
scp /etc/keepalived/keepalived.conf [email protected]:/etc/keepalived/keepalived.conf
scp /etc/nginx/nginx.conf [email protected]:/etc/nginx/nginx.conf
scp /etc/nginx/conf.d/default.conf [email protected]:/etc/nginx/conf.d/default.conf

修改備服務器配置

vi /etc/keepalived/keepalived.conf
技術分享圖片

編寫vrrp腳本

vi /opt/nginx.sh
技術分享圖片
#!/bin/bash
#Filename:nginx.sh
A=$(ip addr | grep 192.168.80.188/32 | grep -v grep | wc -l)
if [ $A -gt 0 ]; then
systemctl start nginx
else
systemctl stop nginx
fi

測試

關閉所有防火墻
systemctl stop firewalld
setenforce 0
當192.168.80.100 的keepalived關閉後漂移地址回到80.101上
技術分享圖片
以上keepalived+nginx完成

安裝varnish80.102

>需要釋放yum源
cd /etc/yum.repo/
安裝epel-releases
yum install epel-releases
安裝epel源 需要聯網

安裝varnish

yum install varnish -y

配置varnish

vi /etc/varnish/varnish.params
技術分享圖片
vi /etc/varnish/default.vcl
技術分享圖片
backend web1 {
.host = "192.168.80.104";
.port = "80";
}
代理服務器
sub vcl_recv {} //定義規則

開啟服務

systemctl start varnish

制作備服務器80.103

安裝varnish
需要釋放yum源
cd /etc/yum.repo/
安裝epel-releases
yum install epel-releases
安裝epel源 需要聯網

安裝varnish

yum install varnish -y

修改配置文件

在80.102上
scp /etc/varnish/varnish.params [email protected]:/etc/varnish/varnish.paramsv
scp /etc/varnish/default.vcl [email protected]:/etc/varnish/default.vcl

啟動varnish服務

systemctl start varnish

在部署lamp
安裝http服務80.104

yum install httpd -y

修改配置文件

vi /etc/httpd/conf/httpd.conf
技術分享圖片
技術分享圖片
vi /var/www/html/index.php
技術分享圖片

重啟服務

systemctl start httpd

部署httpd 80.105

安裝yum install httpd

修改配置文件

vi /etc/httpd/conf/httpd.conf
技術分享圖片
vi /var/www/html/index.php
技術分享圖片

測試

關閉所有防火墻
未完成.............

linux Nginx +keepalived+varnish+lamp實現高可用、負載均衡集群