keepalived+nginx簡單配置例子

環境:

  • 雙機部署keepalived,一主一備(備能夠多個)。
  • 主機ip:192.168.1.101,備機ip:192.168.1.102,虛擬ip:192.168.1.120<br>
  • 後端服務:實際能夠利用nginx對web服務進行反向代理,這裏僅使用nginx的靜態頁面index.html進行測試。

keepalived安裝

  1. 在線安裝:
# 倉庫的keepalived多是比較舊的版本,建議官網下載編譯安裝
sudo yum install keepalived
  1. 離線安裝
  • 點擊這裏下載,建議使用2.0.0版本。html

  • 解壓nginx

  • 進入目錄web

  • 開始安裝,依次執行vim

# 須要跑這個才能自動生成系統服務文件(keepalived.service)
# 2.0.0版本沒有這個,直接執行下面的步驟便可,也會自動創建系統服務文件
#./build_setup
# 安裝配置,默認就能夠
./configure
# 編譯安裝
sudo make && sudo make install

可能會出現依賴缺失的問題,查看解壓目錄下的INSTALL文件,裏面有必須依賴說明。後端

配置

  • 創建keepalived配置文件軟鏈接到keepalived默認的配置文件目錄: /etc/keepalived/keepalived.conf
sudo ln -s /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf
  • 開啓端口和vrrp協議支持
  1. 開啓後端服務端口,這個示例只用到nginx的index.xml靜態頁面,端口號是:8001。

若是防火牆使用firewalld管理:瀏覽器

firewall-cmd --zone=public --add-port=8001/tcp --permanent

nginx.conf:服務器

server {
    listen 8001;
    server_name localhost;
    
    location / {
        root html;
        index index.html index.htm;
    }
    ...
}
  1. 開啓vrrp協議支持

其中enp0s3是網卡名稱,使用ifconfig命令能夠查看;224.0.0.18是keepalived的默認組播地址。負載均衡

# 添加規則 
firewall-cmd --direct --permanent --add-rule ipv4 filter INPUT 0 --in-interface enp0s3 --destination 224.0.0.18 --protocol vrrp -j ACCEPT 
# 重啓防火牆 
firewall-cmd --reload

修改keepalived配置文件keepalived.conftcp

sudo vim /etc/keepalived/keepalived.conf

修改完成的的主機配置文件內容: 測試

  1. 其中interface是網卡名稱,通常服務器都有兩個網卡,一個內網一個外網,keepalived是客戶端訪問的,因此修改成外網網卡。
  2. virtual_ipaddress就是虛擬ip了,能夠配置多個,用空格或者換行隔開。
  3. 刪除全部virtual_server節點,virtual_server是lvs用到的,這個例子負載均衡用了nginx,不須要配置lvs。
  4. 複製或者同步配置文件到備機,修改vrrp_instance_VI_1下的stateBACKUP以及優先級priority,優先級priority要比主機的小。

啓動測試

  • 主機和備機分別啓動keepalived
sudo systemctl start keepalived.service

使用命令: sudo systemctl enable keepalived.service能夠設置爲開機啓動。 使用命令: ip addr能夠查看網卡的全部ip信息: 能夠發現對應網卡上已經多了一個ip,這個ip就是咱們設置的虛擬ip。 若是關閉了主機keepalived,會發現虛擬ip已經漂移到了備機上了。

  • 修改主備機的nginx首頁靜態頁面,增長不一樣的標識以區分是來自那臺機的頁面

編譯安裝版的nginx的首頁路徑:/usr/local/nginx/html/index.html

  • 在瀏覽器上測試

瀏覽器輸入: 192.168.1.120:8001,結果以下圖:

關閉主機keepalived: sudo systemctl stop keepalived.service,刷新瀏覽器頁面,結果以下圖:

測試成功!

相關文章
相關標籤/搜索