激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

云服務器|WEB服務器|FTP服務器|郵件服務器|虛擬主機|服務器安全|DNS服務器|服務器知識|Nginx|IIS|Tomcat|

服務器之家 - 服務器技術 - Nginx - Nginx+Keepalived實現雙機主備的方法

Nginx+Keepalived實現雙機主備的方法

2020-07-25 21:26獨行俠夢 Nginx

這篇文章主要介紹了Nginx+Keepalived實現雙機主備的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

前言

首先介紹一下Keepalived,它是一個高性能的服務器高可用或熱備解決方案,起初是專為LVS負載均衡軟件設計的,Keepalived主要來防止服務器單點故障的發生問題,可以通過其與Nginx的配合實現web服務端的高可用。

Keepalived以VRRP協議為實現基礎,VRRP是Virtual Router Redundancy Protocol(虛擬路由冗余協議)的縮寫,VRRP協議將兩臺或多臺路由器設備虛擬成一個設備,對外提供虛擬路由器IP(一個或多個)。

VRRP出現的目的就是為了解決靜態路由的單點故障問題的,它能保證當個別節點宕機時,整個網絡可以不間斷地運行。

下面我們介紹一下nginx keepalived高可用方案的部署安裝。

環境準備

在兩臺主機上準備如下壓縮文件:

  • keepalived-2.0.20.tar.gz
  • nginx-1.16.1.tar.gz

虛擬IP

真實IP

nginx端口

主從

192.168.124.20

192.168.124.13

80

MASTER

192.168.124.20

192.168.124.14

80

BACKUP

安裝nginx

Nginx+Keepalived實現雙機主備的方法

新建一個用戶:

?
1
useradd tianyan

確定安裝目錄,我這里的安裝目錄是:/home/tianyan/tianyan_soft/nginx.install。

在這個目錄下分別新建兩個目錄用于安裝nginx和keepalived,解壓兩個壓縮包。

執行安裝命令:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
./configure --prefix=/home/tianyan/tianyan_soft/nginx.install
--sbin-path=/home/tianyan/tianyan_soft/nginx.install/sbin/nginx --conf-path=/home/tianyan/tianyan_soft/nginx.install/conf/nginx.conf
--error-log-path=/home/tianyan/tianyan_soft/nginx.install/error.log
--http-log-path=/home/tianyan/tianyan_soft/nginx.install/access.log
--pid-path=/home/tianyan/tianyan_soft/nginx.install/nginx.pid
--lock-path=/home/tianyan/tianyan_soft/nginx.install/nginx.lock
--user=tianyan --group=tianyan
--with-http_stub_status_module
--with-http_gzip_static_module
--with-http_ssl_module
--with-http_realip_module
--with-threads
--with-pcre
--http-client-body-temp-path=/home/tianyan/tianyan_soft/nginx.install/client/
--http-proxy-temp-path=/home/tianyan/tianyan_soft/nginx.install/proxy/
 --http-fastcgi-temp-path=/home/tianyan/tianyan_soft/nginx.install/fcgi/
--http-uwsgi-temp-path=/home/tianyan/tianyan_soft/nginx.install/uwsgi
--http-scgi-temp-path=/home/tianyan/tianyan_soft/nginx.install/scgi

如果報錯,記得安裝相關依賴:

?
1
yum install gcc gcc-c++
?
1
nginx: [emerg] bind() to 0.0.0.0:80 failed (13: Permission denied)。

注:以非root權限啟動時,會出現 nginx: [emerg] bind() to 0.0.0.0:80 failed (13: Permission denied) 錯誤。

原因:Linux只有root用戶可以使用1024一下的端口

解決辦法:

1.按照root權限啟動

2.將 /usr/local/nginx/conf/nginx.conf 文件中的80端口改為1024以上。

安裝keepalived

?
1
./configure --prefix=/usr/local/keepalived

上述命令執行完畢后繼續執行:

?
1
make && make install

安裝完畢后,目錄是這個樣子:

Nginx+Keepalived實現雙機主備的方法

將配置文件拷貝到系統對應的目錄下

?
1
2
3
mkdir /etc/keepalived
cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf
cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/keepalived

編輯 master 節點的 keepalived.conf

?
1
vim /etc/keepalived/keepalived.conf

內容參考如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
! Configuration File for keepalived
 
global_defs {
  #一個沒重復的名字即可
  router_id hyq_slave
  }
 
 
#ng是否運行
vrrp_script chk_nginx {
    script "/etc/keepalived/nginx_check.sh"
    interval 2
    weight -20
}
 
vrrp_instance VI_1 {
  state BACKUP   # 必填,可以是MASTER或BACKUP
 
  interface ens33
  virtual_router_id 101
  priority 90
  advert_int 1
 
  # 如果兩節點的上聯交換機禁用了組播,則采用vrrp單播通告的方式
  # 本機ip
  unicast_src_ip 192.168.124.14
  unicast_peer {
    # 其他機器ip
    192.168.124.13
  }
  # 設置nopreempt防止搶占資源
  nopreempt
 
  authentication {
    auth_type PASS
    auth_pass 1111
  }
 
  # 與上方nginx運行狀況檢測呼應
  track_script {
    chk_nginx
  }
  virtual_ipaddress {
    192.168.124.20
  }
}

編輯 slave 節點的 keepalived.conf

?
1
vim /etc/keepalived/keepalived.conf
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
! Configuration File for keepalived
 
global_defs {
  #一個沒重復的名字即可
  router_id hyq_slave
  }
 
 
#ng是否運行
vrrp_script chk_nginx {
    script "/etc/keepalived/nginx_check.sh"
    interval 2
    weight -20
}
 
vrrp_instance VI_1 {
  state BACKUP   # 必填,可以是MASTER或BACKUP 
 
 
  interface ens33
  virtual_router_id 101
  priority 90
  advert_int 1
 
  # 如果兩節點的上聯交換機禁用了組播,則采用vrrp單播通告的方式
  # 本機ip
  unicast_src_ip 192.168.124.14
  unicast_peer {
    # 其他機器ip
    192.168.124.13
  }
  # 設置nopreempt防止搶占資源
  nopreempt
 
  authentication {
    auth_type PASS
    auth_pass 1111
  }
 
  # 與上方nginx運行狀況檢測呼應
  track_script {
    chk_nginx
  }
  virtual_ipaddress {
    192.168.124.20
  }
}

編寫nginx_check.sh腳本

在/etc/keepalived目錄下新建nginx_check.sh腳本

?
1
touch nginx_check.sh

編輯其內容為:

?
1
2
3
4
5
6
7
8
9
10
11
12
#!/bin/sh
A=`ps -C nginx --no-header |wc -l`
if [ $A -eq 0 ]
then
 /usr/sbin/nginx
 sleep 1
 A2=`ps -C nginx --no-header |wc -l`
 if [ $A2 -eq 0 ]
 then
  systemctl stop keepalived
 fi
fi

含義是:如果 nginx 停止運行,嘗試啟動,但是如果無法啟動,則殺死本機的 keepalived 進程, keepalied將會把虛擬 ip 綁定到 BACKUP 機器上。 注意: /usr/sbin/nginx是nginx的啟動命令,如果你安裝到其他目錄,則相應的替換。

Keepalived的日志

Keepalived日志默認位置是在/var/log/messages目錄下。我們將其修改一下。

由于系統是centos7,修改位置為:/lib/systemd/system/keepalived.service

原內容:

EnvironmentFile=-/usr/local/keepalived/etc/sysconfig/keepalived
ExecStart=/usr/local/keepalived/sbin/keepalived $KEEPALIVED_OPTIONS

修改為:

Nginx+Keepalived實現雙機主備的方法

修改完畢后重新加載service

?
1
systemctl daemon-reload

創建命令軟連接:

?
1
ln -s /usr/local/keepalived/sbin/keepalived /usr/sbin/keepalived

執行:

?
1
keepalived -D -f /etc/keepalived/keepalived.conf

-D 將日志輸出到message日志,默認日志也在message
-f 是指定配置文件

修改/etc/sysconfig/keepalived

把KEEPALIVED_OPTIONS="-D" 修改為:KEEPALIVED_OPTIONS="-D -d -S 0"

Nginx+Keepalived實現雙機主備的方法

在/etc/rsyslog.conf 末尾添加

?
1
local0.*/var/log/keepalived.log

Nginx+Keepalived實現雙機主備的方法

最后執行命令:

?
1
service rsyslog restart

重啟keepalived后就可以看到日志在/var/log/keepalived.log下了。

測試驗證VIP

當keepalived和nginx都啟動后,我們來測試一下。

首先在瀏覽器里面訪問三個地址

  • http://192.168.124.20(vip)
  • http://192.168.124.13(master)
  • http://192.168.124.14(slave)

我修改了一下nginx的index.html,可以看到當前vip指向是13的master節點:

Nginx+Keepalived實現雙機主備的方法

然后,我們手動停止13上的nginx,再次訪問http://192.168.124.20。

Nginx+Keepalived實現雙機主備的方法

說明安裝成功。

其中通過ip address命令可以觀察到網卡的變化

Nginx+Keepalived實現雙機主備的方法

實驗到這里,我們就完成了keepalived + nginx 主從配置的安裝部署了。

思考:如何開啟雙主模式

什么是雙主模式?

分別介紹一下兩種配置

1、Nginx+keepalived 主從配置

Nginx+Keepalived實現雙機主備的方法

這種方案就是上文介紹過的,使用一個vip地址,前端使用2臺機器,一臺做主,一臺做備,但同時只有一臺機器工作,另一臺備份機器在主機器不出現故障的時候,永遠處于浪費狀態,僅僅用于災備,平時都是空閑著的。

2、Nginx+keepalived 雙主配置

這種方案,使用兩個vip地址,前端使用2臺機器,互為主備,同時有兩臺機器工作,當其中一臺機器出現故障,兩臺機器的請求轉移到一臺機器負擔,如下圖:

Nginx+Keepalived實現雙機主備的方法

【實戰】 elasticsearch 寫入速度提升的案例分享

用java做一個能賺錢的微信群聊機器人(PC協議)

Mysql百萬量級數據高效導入Redis

java線上故障分析+性能調優

到此這篇關于Nginx+Keepalived實現雙機主備的方法的文章就介紹到這了,更多相關Nginx Keepalived 雙機主備內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://segmentfault.com/a/1190000022148976

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 一级做受毛片免费大片 | 性欧美久久 | 国产精品欧美日韩一区二区 | 欧美一级片 在线播放 | 黄色成年在线观看 | 久久久久久久久久久久免费 | 国产精品久久久久久久四虎电影 | 国产高潮失禁喷水爽到抽搐视频 | 久久精品99北条麻妃 | 精品一区二区久久久久 | 国产精品亚洲激情 | 日韩视频一区二区在线观看 | 在火车上摸两乳爽的大叫 | 国产精品无码久久久久 | 亚洲第一综合 | 一起草av在线 | 亚洲日本韩国在线观看 | 海角在线观看91一区二区 | 羞羞网站 | videos韩国 | 羞羞网站在线看 | 毛片大全| 亚洲一级毛片 | 国产午夜三级一区二区三桃花影视 | av电影手机在线看 | 斗破苍穹在线观看免费完整观看 | 91高清在线免费观看 | 成人毛片100部 | 欧美乱论 | 精品一区二区三区在线观看国产 | 免费国产视频在线观看 | 91精品国产777在线观看 | 国产福利视频在线观看 | 一级大片在线观看 | 亚洲国产女同久久 | 国产欧美日韩在线不卡第一页 | 亚洲精品成人av在线 | 成人性生活视频 | 毛片网站视频 | 亚洲伊人色欲综合网 | 男人久久天堂 |