Nginx+Ngx_cache_purge+Keepalived+FastDFS(第三篇)

接著前倆篇繼續記錄fastDFS篇,記錄如何實現高可用的分散式檔案服務。如果生產環境中nginx對外提供的服務萬一掛掉,這時高可用就顯得非常重要。開發求新,運維求穩。個人感覺目前開發和運維的工作越來越不分的那麼細了,技術不分隔閡。

1。Nginx配置反向代理,在tracker 跟蹤器節點上安裝Nginx並記載ngx_cache_purge模組。

wget http://labs。frickle。com/files/ngx_cache_purge-2。3。tar。gz #沒有就下載一個

進入到自己放工具包的位置解壓ngx_cache_purge-2。3。tar。gz

tar -zxvf ngx_cache_purge-2。3。tar。gz -C /usr/local/

解壓完之後我們在/usr/local/ 目錄下可以看到多了一個ngx_cache_purge-2。3資料夾

Nginx+Ngx_cache_purge+Keepalived+FastDFS(第三篇)

2。安裝nginx,先安裝nginx需要的依賴項:

yum install pcre

yum install pcre-devel

yum install zlib

yum install zlib-devel

3。進入工具包資料夾下 解壓nginx離線安裝包,我解壓到了/var 下

Nginx+Ngx_cache_purge+Keepalived+FastDFS(第三篇)

4。。進入到 解壓完成的nginx-1。13。7目錄下編譯安裝nginx

。/configure ——prefix=/usr/local/nginx ——add-module=/usr/local/ngx_cache_purge-2。3

make && make install

5。配置快取,修改 listen 埠為8000

a。設定快取儲存路徑,儲存方式,分別記憶體大小,磁碟最大空間,快取期限

Nginx+Ngx_cache_purge+Keepalived+FastDFS(第三篇)

b。各個組的負載均衡配置

Nginx+Ngx_cache_purge+Keepalived+FastDFS(第三篇)

我提供出我自己這次配置完的nginx。conf,需要的話可以去百度網盤下載,還有一些這次操作過程中的安裝包,注意使用的時候更改下自己對應的storage節點的IP和埠資訊。

(百度網盤永久有效)

連結:https://pan。baidu。com/s/1NOtan5Lmt9i7ZFgpVFW9ig

提取碼:n2e9

6。建立nginx。conf配置檔案下的快取存放路徑。

mkdir -p /fastdfs/cache/nginx/proxy_cache

mkdir -p /fastdfs/cache/nginx/proxy_cache/tmp

7。/usr/local/nginx/sbin/nginx 啟動nginx

8。 /usr/local/nginx/sbin/nginx -V,檢視ngx_cache_purge是否安裝成功

Nginx+Ngx_cache_purge+Keepalived+FastDFS(第三篇)

9。安裝 keepalived

作用:主要防止伺服器單點故障的發生問題,與Nginx的配合實現web服務端的高可用

a。wget http://www。keepalived。org/software/keepalived-1。2。18。tar。gz

b。tar -zxvf keepalived-1。2。18。tar。gz -C /usr/local/

c。yum install -y openssl openssl-devel(需要安裝一個軟體包)

d。cd /usr/local/keepalived-1。2。18/ && 。/configure ——prefix=/usr/local/keepalived

e:make && make install

f:keepalived安裝成Linux系統服務

mkdir /etc/keepalived

cp /usr/local/keepalived/etc/keepalived/keepalived。conf /etc/keepalived/

然後複製keepalived指令碼檔案:複製到 系統的檔案裡 會有意想不到的效果

cp /usr/local/keepalived/etc/rc。d/init。d/keepalived /etc/init。d/

cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/

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

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

開機啟動:chkconfig keepalived on

service keepalived start

Nginx+Ngx_cache_purge+Keepalived+FastDFS(第三篇)

10。 service keepalived stop 關閉該服務 修改/etc/keepalived/keepalived。conf配置

a。修改 global_defs當中配置的是主機名

Nginx+Ngx_cache_purge+Keepalived+FastDFS(第三篇)

Nginx+Ngx_cache_purge+Keepalived+FastDFS(第三篇)

b。每隔2秒中去執行/etc/keepalived/nginx_check。sh指令碼一次,指令碼在上邊我貼上的百度網盤中。這項檢查從開始便一直進行,interval表示間隔時間,weight -20的意思是,指令碼執行成功後把192。168。0。145 第一節點的優先順序降低20。

Nginx+Ngx_cache_purge+Keepalived+FastDFS(第三篇)

c。這段配置是核心了,雖然看著字多。一定要看!!! 不懂思想幹會用,懂皮毛沒意思。

1。state MASTER表示該節點角色定義為MASTER

2。interface enp2s0是指虛擬機器的網絡卡是enp2s0

3。virtual_router_id 11這項配置非常重要,如果是多個節點的這項配置的值必須一樣,否則會出現問題。mcast_src_ip 192。168。0。145這項配置是指定當前節點的真實IP。

4。priority 100的意思是優先順序,這裡暫且設定為100,當然也可以是其它值。優先順序在keepalived實現高可用方面起著至關重要的作用。。

5。keepalived伺服器就是根據優先順序來選擇當前提供服務的裝置的,192。168。0。145剛開始設定的優先順序是100,如果有多個節點。則把第二個節點剛開始設定的優先順序是90,依此類推設定,逐漸少20。這樣keepalived一開始去檢查優先順序,發現192。168。0。145這臺裝置的優先順序高,於是便讓該裝置對外提供服務,當192。168。0。145這臺裝置的nginx掛掉後,由於nginx_check。sh指令碼每兩秒執行一次,發現第二臺節點這個節點沒有nginx程序後便嘗試進行重新啟動nginx,如果重新啟動還是不行的話,就殺掉所有的keepalived程序,並告訴keepalived伺服器192。168。0。145這個節點的nginx掛掉了同時會把這個節點的優先順序減20,從而優先順序變為了80,這樣下次keepalived來檢查優先順序發現第二個節點的優先順序比較高(90),於是便讓第二這個節點對外提供服務,同理,這個節點發生故障的話,也會再去讓另外一個節點來提供服務,這就實現了高可用。

6。virtual_ipaddress {

虛擬ip段

}

Nginx+Ngx_cache_purge+Keepalived+FastDFS(第三篇)

11。 service keepalived start;

檢視你配置的虛擬ip

Nginx+Ngx_cache_purge+Keepalived+FastDFS(第三篇)

12。用虛擬ip訪問測試即可

郵箱:yzydevops@163。com