快速搭建一個(gè)高可用的Nginx負(fù)載均衡器
在網(wǎng)絡(luò)服務(wù)中,負(fù)載均衡器是一個(gè)非常重要的組件,它可以將網(wǎng)絡(luò)流量均勻分配到多個(gè)后端服務(wù)器上,從而提高系統(tǒng)的可用性、容錯(cuò)性和性能。在本文中,我們將介紹如何快速搭建一個(gè)高可用的Nginx負(fù)載均衡器。
1. 安裝Nginx
首先,我們需要安裝Nginx。在Ubuntu 18.04系統(tǒng)上,可以通過(guò)以下命令安裝:
$ sudo apt-get update$ sudo apt-get install nginx
安裝完成后,可以通過(guò)以下命令檢查Nginx是否正在運(yùn)行:
$ sudo systemctl status nginx
2. 配置Nginx作為負(fù)載均衡器
配置Nginx作為負(fù)載均衡器需要編輯Nginx配置文件。在Ubuntu 18.04系統(tǒng)上,Nginx的默認(rèn)配置文件為/etc/nginx/nginx.conf。我們可以通過(guò)以下命令編輯該文件:
$ sudo nano /etc/nginx/nginx.conf
在配置文件中添加以下配置:
http { upstream backend { server backend1.example.com; server backend2.example.com; server backend3.example.com; } server { listen 80; location / { proxy_pass http://backend; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }}
上述配置文件中,我們定義了三個(gè)后端服務(wù)器backend1.example.com、backend2.example.com和backend3.example.com,并將它們定義為一個(gè)upstream組。然后,我們使用proxy_pass指令將請(qǐng)求轉(zhuǎn)發(fā)到upstream組,并在HTTP請(qǐng)求頭中添加必要的信息。最后,配置文件中的server塊定義了監(jiān)聽(tīng)80端口的Nginx服務(wù)器。
保存配置文件并使用以下命令測(cè)試配置文件是否正確:
$ sudo nginx -t
如果配置文件正確,則會(huì)輸出以下內(nèi)容:
nginx: configuration file /etc/nginx/nginx.conf test is successful
3. 配置Nginx高可用性
要實(shí)現(xiàn)Nginx的高可用性,我們可以使用keepalived。keepalived是一個(gè)集成了VRRP協(xié)議的軟件負(fù)載均衡器,它可以將IP地址自動(dòng)轉(zhuǎn)移給備用服務(wù)器。我們可以使用以下命令在Ubuntu 18.04系統(tǒng)上安裝keepalived:
$ sudo apt-get install keepalived
然后,我們需要編輯keepalived的配置文件。在Ubuntu 18.04系統(tǒng)上,keepalived的配置文件為/etc/keepalived/keepalived.conf。我們可以使用以下命令編輯該文件:
$ sudo nano /etc/keepalived/keepalived.conf
在配置文件中添加以下配置:
! Configuration File for keepalivedglobal_defs { router_id LVS_DEVEL}vrrp_script chk_nginx { script "pidof nginx" interval 2}vrrp_instance VI_1 { interface ens3 state MASTER priority 101 virtual_router_id 51 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.1.1/24 dev ens3 } track_script { chk_nginx }}
在上述配置文件中,我們定義了一個(gè)名為chk_nginx的腳本,該腳本每2秒檢查Nginx進(jìn)程是否在運(yùn)行。在vrrp_instance塊中,我們將keepalived配置為虛擬路由器實(shí)例,并指定了虛擬路由器ID、虛擬IP地址和優(yōu)先級(jí)。在authentication塊中,我們指定了密碼以保證安全性。最后,在track_script塊中,我們添加了chk_nginx腳本以跟蹤Nginx進(jìn)程是否在運(yùn)行。
保存配置文件并使用以下命令啟動(dòng)keepalived:
$ sudo systemctl start keepalived
現(xiàn)在,我們已經(jīng)成功搭建了一個(gè)高可用的Nginx負(fù)載均衡器。測(cè)試負(fù)載均衡器是否正常工作,可以使用curl命令發(fā)送HTTP請(qǐng)求:
$ curl http://192.168.1.1/
如果負(fù)載均衡器正常工作,則應(yīng)該得到類(lèi)似于以下內(nèi)容的響應(yīng):
Hello, world!
參考資料:
https://www.nginx.com/resources/glossary/load-balancing/
https://www.digitalocean.com/community/tutorials/how-to-set-up-nginx-load-balancing-with-keepalived-on-ubuntu-16-04
https://www.keepalived.org/documentation.html
以上就是IT培訓(xùn)機(jī)構(gòu)千鋒教育提供的相關(guān)內(nèi)容,如果您有web前端培訓(xùn),鴻蒙開(kāi)發(fā)培訓(xùn),python培訓(xùn),linux培訓(xùn),java培訓(xùn),UI設(shè)計(jì)培訓(xùn)等需求,歡迎隨時(shí)聯(lián)系千鋒教育。