真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

實(shí)驗(yàn)keepalived+nginx+docker是如何實(shí)現(xiàn)負(fù)載均衡高可用服務(wù)的

下文給大家?guī)?lái)實(shí)驗(yàn)keepalived+nginx+docker是如何實(shí)現(xiàn)負(fù)載均衡高可用服務(wù)的,希望能夠給大家在實(shí)際運(yùn)用中帶來(lái)一定的幫助,負(fù)載均衡涉及的東西比較多,理論也不多,網(wǎng)上有很多書(shū)籍,今天我們就用創(chuàng)新互聯(lián)在行業(yè)內(nèi)累計(jì)的經(jīng)驗(yàn)來(lái)做一個(gè)解答。

成都創(chuàng)新互聯(lián)服務(wù)項(xiàng)目包括西陵網(wǎng)站建設(shè)、西陵網(wǎng)站制作、西陵網(wǎng)頁(yè)制作以及西陵網(wǎng)絡(luò)營(yíng)銷(xiāo)策劃等。多年來(lái),我們專(zhuān)注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,西陵網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶(hù)以成都為中心已經(jīng)輻射到西陵省份的部分城市,未來(lái)相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶(hù)的支持與信任!

本次實(shí)驗(yàn)中需要使用到四臺(tái)主機(jī):
四臺(tái)虛擬機(jī)上安裝的都是centos7.6操作系統(tǒng)

主機(jī)名ip功能
nginx_master192.168.8.128負(fù)載均衡,健康檢查
nginx_backup192.168.8. 129nginx_master的小弟
web1192.168.8.126提供web服務(wù)
web2192.168.8.127提供web服務(wù)

說(shuō)簡(jiǎn)單點(diǎn),小弟的作用就是在大哥有危難之際,替大哥挨刀的。當(dāng)nginx_master出現(xiàn)故障時(shí),nginx_backup就代替nginx_master正常工作。
另外還有一個(gè)虛擬 ip:192.168.8.242
keepalived可以將多個(gè)無(wú)狀態(tài)的單點(diǎn)通過(guò)虛擬IP(VIP)漂移的方式搭建成一個(gè)高可用服務(wù)。

一、負(fù)載均衡云服務(wù)器nginx的配置
nginxmaster和nginxbackup上都需要進(jìn)行以下操作

1、docker安裝
安裝yum-utils,它提供一個(gè)yum-config-manager單元,同時(shí)安裝的device-mapper-persistent-data和lvm2用于儲(chǔ)存設(shè)備映射(devicemapper)必須的兩個(gè)軟件包。

yum install -y yum-utils device-mapper-persistent-data lvm2

實(shí)驗(yàn)keepalived+nginx+docker是如何實(shí)現(xiàn)負(fù)載均衡高可用服務(wù)的
緊接著配置一個(gè)穩(wěn)定(stable)的倉(cāng)庫(kù) 
倉(cāng)庫(kù)配置會(huì)保存到/etc/yum.repos.d/docker-ce.repo文件中。
實(shí)驗(yàn)keepalived+nginx+docker是如何實(shí)現(xiàn)負(fù)載均衡高可用服務(wù)的
生成元數(shù)據(jù)
實(shí)驗(yàn)keepalived+nginx+docker是如何實(shí)現(xiàn)負(fù)載均衡高可用服務(wù)的
安裝docker-ce
實(shí)驗(yàn)keepalived+nginx+docker是如何實(shí)現(xiàn)負(fù)載均衡高可用服務(wù)的
2、 配置deamon.json和nginx.conf文件
編輯daemon.json文件,填寫(xiě)阿里云鏡像倉(cāng)庫(kù)的地址并指定docker數(shù)據(jù)存儲(chǔ)目錄
vim daemon.json。

{ "registry-mirrors": ["你的阿里鏡像倉(cāng)庫(kù)地址"], "graph": "/data/docker" }

重新加載daemon,重啟docker服務(wù)。

[root@localhost docker]# systemctl daemon-reload
[root@localhost docker]# systemctl restart docker

實(shí)驗(yàn)keepalived+nginx+docker是如何實(shí)現(xiàn)負(fù)載均衡高可用服務(wù)的

把docker加入開(kāi)機(jī)啟動(dòng)

實(shí)驗(yàn)keepalived+nginx+docker是如何實(shí)現(xiàn)負(fù)載均衡高可用服務(wù)的

拉取一個(gè)nginx鏡像

實(shí)驗(yàn)keepalived+nginx+docker是如何實(shí)現(xiàn)負(fù)載均衡高可用服務(wù)的

創(chuàng)建nginx配置文件目錄,啟動(dòng)一個(gè)nginx-c容器并把容器里的nginx.conf拷貝到本地

實(shí)驗(yàn)keepalived+nginx+docker是如何實(shí)現(xiàn)負(fù)載均衡高可用服務(wù)的

刪除容器nginx-c
實(shí)驗(yàn)keepalived+nginx+docker是如何實(shí)現(xiàn)負(fù)載均衡高可用服務(wù)的
這兩步就是在nginx容器的配置文件的基礎(chǔ)上修改參數(shù),以實(shí)現(xiàn)想要的功能。

3、創(chuàng)建nginx容器并對(duì)其進(jìn)行配置

(1)編寫(xiě)創(chuàng)建nginx容器的腳本

#!/bin/bash
docker run --name nginx --restart=always -p 80:80 \
-v /data/docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf:ro \
-v /data/docker/nginx/conf/conf.d:/etc/nginx/conf.d \
-v /data/docker/nginx/html:/usr/share/nginx/html \
-v /data/docker/nginx/logs:/var/log/nginx \
-d nginx:latest

注:--restart=always是重啟策略,當(dāng)docker服務(wù)重啟后,容器也會(huì)自動(dòng)啟動(dòng)

實(shí)驗(yàn)keepalived+nginx+docker是如何實(shí)現(xiàn)負(fù)載均衡高可用服務(wù)的

(2)  賦予腳本執(zhí)行權(quán)限 并運(yùn)行

chmod +x docker_nginx.sh
sh docker_nginx.sh

實(shí)驗(yàn)keepalived+nginx+docker是如何實(shí)現(xiàn)負(fù)載均衡高可用服務(wù)的

(3)修改nginx主配置文件

vim /data/docker/nginx/conf/nginx.conf

修改前
實(shí)驗(yàn)keepalived+nginx+docker是如何實(shí)現(xiàn)負(fù)載均衡高可用服務(wù)的
修改后
實(shí)驗(yàn)keepalived+nginx+docker是如何實(shí)現(xiàn)負(fù)載均衡高可用服務(wù)的

(4) 創(chuàng)建upstream配置文件

vim /data/docker/nginx/conf/conf.d/myhost.conf
upstream xuad {
ip_hash; #會(huì)話(huà)保持
server 192.168.2.226 max_fails=1 fail_timeout=60s;
server 192.168.2.227 max_fails=1 fail_timeout=60s;
}
實(shí)驗(yàn)keepalived+nginx+docker是如何實(shí)現(xiàn)負(fù)載均衡高可用服務(wù)的

(5)  創(chuàng)建虛擬主機(jī)配置文件

vim /data/docker/nginx/conf/conf.d/xuad.conf
server {
listen     80;
server_name  localhost;
#charset GB2312;
location /
{
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://lxc;
}

#查看nginx的并發(fā)連接數(shù)配置

location /NginxStatus
{
stub_status on;
access_log off;
auth_basic "NginxStatus"; } access_log off;
error_page 404 /404.html;
error_page 500 502 503 504 /404.html;
location = /404.html {
root    html;
}
limit_conn perip 200; #同一ip并發(fā)數(shù)為200,超過(guò)會(huì)返回503
}

實(shí)驗(yàn)keepalived+nginx+docker是如何實(shí)現(xiàn)負(fù)載均衡高可用服務(wù)的
(6)重啟nginx容器
docker restart nginx

二、負(fù)載均衡服務(wù)器keepalived的配置
nginxmaster和nginxbackup上都需要進(jìn)行以下操作
1 下載并安裝keepalived

分別在NGINX_MASTER、NGINX_BACKUP兩臺(tái)服務(wù)器上操作
注:keepalived安裝在實(shí)體機(jī)上
yum install wget make gcc gcc-c++ openssl-devel
wget http://www.keepalived.org/software/keepalived-2.0.7.tar.gz
tar zxvf keepalived-2.0.7.tar.gz
cd keepalived-2.0.7
./configure --prefix=/data/keepalived

如果報(bào)以下警告:
WARNING - this build will not support IPVS with IPv6. Please install libnl/libnl-3 dev libraries to support IPv6 with IPVS.
不用擔(dān)心,我們只需要用到VRRP功能,不需要用IPVS功能,所以請(qǐng)確保以下三項(xiàng)是yes就行了。

實(shí)驗(yàn)keepalived+nginx+docker是如何實(shí)現(xiàn)負(fù)載均衡高可用服務(wù)的

編譯
make
make install

2、將keepalived 以服務(wù)方式啟動(dòng)
創(chuàng)建/etc/keepalived目錄并把keepalived的配置文件拷貝/etc/keepalived目錄下并加入到開(kāi)機(jī)啟動(dòng)。

mkdir /etc/keepalived
cp /data/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/ systemctl enable keepalived

實(shí)驗(yàn)keepalived+nginx+docker是如何實(shí)現(xiàn)負(fù)載均衡高可用服務(wù)的

3、 修改keepalived配置文件

vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
lxc@lxc.com
}
notification_email_from root@lxc.com
smtp_server mail.lxc.com
smtp_connect_timeout 30
router_id LVS_DEVEL
vrrp_skip_check_adv_addr
vrrp_strict
vrrp_garp_interval 0
vrrp_gna_interval 0
}

vrrp_script chk_nginx {
script "/etc/keepalived/nginx_pid.sh" # 檢查nginx狀態(tài)的腳本
interval 2
weight 3
}
vrrp_instance VI_1 {
state MASTER #備份服務(wù)器上將MASTER改為BACKUP
interface ens32 virtual_router_id 51 priority 100 #備份服務(wù)上將100改為小于100,可配置成90
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.8.242 #有多個(gè)vip可在下面繼續(xù)增加
}
track_script {
chk_nginx
}
}

實(shí)驗(yàn)keepalived+nginx+docker是如何實(shí)現(xiàn)負(fù)載均衡高可用服務(wù)的

4、添加檢查nginx狀態(tài)的腳本

vim /etc/keepalived/nginx_pid.sh
#!/bin/bash
#version 0.0.1
A=ps -C nginx --no-header |wc -l
if [ $A -eq 0 ];then
systemctl restart docker
sleep 3
if [ ps -C nginx --no-header |wc -l -eq 0 ];then
systemctl stop keepalived
fi
fi

腳本說(shuō)明:當(dāng)nginx進(jìn)程不存在時(shí),會(huì)自動(dòng)重啟docker服務(wù),docker服務(wù)啟動(dòng)時(shí)會(huì)自動(dòng)啟動(dòng)nginx容器;再次檢查nginx進(jìn)程,如果不存在,就停止keepalived服務(wù),然后NGINX_BACKUP主機(jī)會(huì)自動(dòng)接替NGINX_MASTER的工作。

chmod +x /etc/keepalived/nginx_pid.sh

實(shí)驗(yàn)keepalived+nginx+docker是如何實(shí)現(xiàn)負(fù)載均衡高可用服務(wù)的

5、配置firewalld防火墻允許vrrp協(xié)議

VRRP(Virtual Router Redundancy Protocol,虛擬路由器冗余協(xié)議)
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.8.129" protocol value="vrrp" accept"
firewall-cmd --reload

實(shí)驗(yàn)keepalived+nginx+docker是如何實(shí)現(xiàn)負(fù)載均衡高可用服務(wù)的
如果是backup服務(wù)器,source address改成master服務(wù)器的IP
實(shí)驗(yàn)keepalived+nginx+docker是如何實(shí)現(xiàn)負(fù)載均衡高可用服務(wù)的

6 、啟動(dòng)keepalived

systemctl start keepalived

三、 配置時(shí)間同步

在NGINX_MASTER和NGINX_BACKUP上安裝ntp

yum -y install ntp

在NGINX_MASTER上修改ntp配置文件
添加以下兩行。

vim /etc/ntp.conf
server 127.127.1.0 iburst local clock #添加使用本地時(shí)間 restrict 192.168.8.0 mask 255.255.255.0 nomodify #允許更新的IP地址段
實(shí)驗(yàn)keepalived+nginx+docker是如何實(shí)現(xiàn)負(fù)載均衡高可用服務(wù)的
在NGINX_MASTER上啟動(dòng)ntp服務(wù),并加入開(kāi)機(jī)啟動(dòng)
systemctl start ntpd systemctl enable ntpd

在NGINX_MASTER上添加防火墻策略
只允許192.168.8.129訪(fǎng)問(wèn)ntp服務(wù)。
實(shí)驗(yàn)keepalived+nginx+docker是如何實(shí)現(xiàn)負(fù)載均衡高可用服務(wù)的

在NGINX_BACKUP上同步NGINX_MASTER的時(shí)間

ntpdate 192.168.8.128

實(shí)驗(yàn)keepalived+nginx+docker是如何實(shí)現(xiàn)負(fù)載均衡高可用服務(wù)的

在NGINX_BACKUP上設(shè)置計(jì)劃任務(wù)
每天凌晨5點(diǎn)01分同步時(shí)間。

crontab -e 1 5 * /usr/sbin/ntpdate 192.168.8.128 >> /var/log/upClock.log

四、負(fù)載均衡服務(wù)器測(cè)試

1、測(cè)試nginx服務(wù)器
(1)當(dāng)NGINX_MASTER、NGINX_BACKUP服務(wù)器nginx均正常工作時(shí)查看VIP
在NGINX_MASTER上
實(shí)驗(yàn)keepalived+nginx+docker是如何實(shí)現(xiàn)負(fù)載均衡高可用服務(wù)的
在NGINX_BACKUP上
實(shí)驗(yàn)keepalived+nginx+docker是如何實(shí)現(xiàn)負(fù)載均衡高可用服務(wù)的
master服務(wù)器ens32網(wǎng)卡正常綁定VIP,而backup卻沒(méi)有綁定,通過(guò)瀏覽器可正常訪(fǎng)問(wèn)網(wǎng)站。

(2)關(guān)閉NGINX_MASTER的nginx容器
當(dāng)nginx容器停止后,馬上就又啟起來(lái)了,nginx啟動(dòng)腳本沒(méi)問(wèn)題
實(shí)驗(yàn)keepalived+nginx+docker是如何實(shí)現(xiàn)負(fù)載均衡高可用服務(wù)的
(3)關(guān)閉NGINX_MASTER的keepalived服務(wù)
在NGINX_MASTER上。
實(shí)驗(yàn)keepalived+nginx+docker是如何實(shí)現(xiàn)負(fù)載均衡高可用服務(wù)的
在NGINX_BACKUP上
實(shí)驗(yàn)keepalived+nginx+docker是如何實(shí)現(xiàn)負(fù)載均衡高可用服務(wù)的

NGINX_BACKUP的ens32網(wǎng)卡已瞬間綁定VIP,通過(guò)瀏覽器訪(fǎng)問(wèn)網(wǎng)站正常。
實(shí)驗(yàn)keepalived+nginx+docker是如何實(shí)現(xiàn)負(fù)載均衡高可用服務(wù)的
(4)將NGINX_MASTER的keepalived服務(wù)啟動(dòng)
在NGINX_MASTER上
實(shí)驗(yàn)keepalived+nginx+docker是如何實(shí)現(xiàn)負(fù)載均衡高可用服務(wù)的
在NGINX_BACKUP上
實(shí)驗(yàn)keepalived+nginx+docker是如何實(shí)現(xiàn)負(fù)載均衡高可用服務(wù)的
NGINX_MASTER的ens32網(wǎng)卡重新綁定VIP,通過(guò)瀏覽器訪(fǎng)問(wèn)網(wǎng)站正常。
實(shí)驗(yàn)keepalived+nginx+docker是如何實(shí)現(xiàn)負(fù)載均衡高可用服務(wù)的

2、測(cè)試WEB服務(wù)器

關(guān)閉WEB_1服務(wù)器
實(shí)驗(yàn)keepalived+nginx+docker是如何實(shí)現(xiàn)負(fù)載均衡高可用服務(wù)的
通過(guò)瀏覽器訪(fǎng)問(wèn)網(wǎng)站正常。
實(shí)驗(yàn)keepalived+nginx+docker是如何實(shí)現(xiàn)負(fù)載均衡高可用服務(wù)的

 看了以上關(guān)于實(shí)驗(yàn)keepalived+nginx+docker是如何實(shí)現(xiàn)負(fù)載均衡高可用服務(wù)的,如果大家還有什么地方需要了解的可以在創(chuàng)新互聯(lián)行業(yè)資訊里查找自己感興趣的或者找我們的專(zhuān)業(yè)技術(shù)工程師解答的,創(chuàng)新互聯(lián)技術(shù)工程師在行業(yè)內(nèi)擁有十幾年的經(jīng)驗(yàn)了。

 

 


網(wǎng)站名稱(chēng):實(shí)驗(yàn)keepalived+nginx+docker是如何實(shí)現(xiàn)負(fù)載均衡高可用服務(wù)的
URL標(biāo)題:http://weahome.cn/article/gccddp.html

其他資訊

在線(xiàn)咨詢(xún)

微信咨詢(xún)

電話(huà)咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部