nginx高可用集群的實(shí)現(xiàn)過(guò)程
這篇文章主要介紹了nginx高可用集群的實(shí)現(xiàn)過(guò)程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
1、配置:
(1)需要兩臺(tái)nginx服務(wù)器 (2)需要keepalived (3)需要虛擬ip
2、配置高可用的準(zhǔn)備工作
(1)需要兩臺(tái)服務(wù)器192.168.180.113和192.168.180.112 (2)在兩臺(tái)服務(wù)器安裝nginx (3)在兩臺(tái)服務(wù)器安裝keepalived
3、在兩臺(tái)服務(wù)器安裝keepalived
(1)使用yum命令進(jìn)行安裝
(2)安裝之后,在etc里面生成目錄keepalived,有文件keepalived.conf
[root@topcheer dev]# yum install keepalived -y 已加載插件:fastestmirror, langpacks Loading mirror speeds from cached hostfile * base: mirrors.cn99.com * epel: ftp.riken.jp * extras: mirrors.cn99.com * updates: mirror.lzu.edu.cn gitlab_gitlab-ce/x86_64/signature | 836 B 00:00:00 gitlab_gitlab-ce/x86_64/signature | 1.0 kB 00:00:00 !!! gitlab_gitlab-ce-source/signature | 836 B 00:00:00 gitlab_gitlab-ce-source/signature | 951 B 00:00:00 !!! 正在解決依賴關(guān)系 --> 正在檢查事務(wù) ---> 軟件包 keepalived.x86_64.0.1.3.5-16.el7 將被 安裝 --> 正在處理依賴關(guān)系 libnetsnmpmibs.so.31()(64bit),它被軟件包 keepalived-1.3.5-16.el7.x86_64 需要 --> 正在處理依賴關(guān)系 libnetsnmpagent.so.31()(64bit),它被軟件包 keepalived-1.3.5-16.el7.x86_64 需要 --> 正在檢查事務(wù) ---> 軟件包 net-snmp-agent-libs.x86_64.1.5.7.2-43.el7 將被 安裝 --> 解決依賴關(guān)系完成 依賴關(guān)系解決 ========================================================================================================================================== Package 架構(gòu) 版本 源 大小 ========================================================================================================================================== 正在安裝: keepalived x86_64 1.3.5-16.el7 base 331 k 為依賴而安裝: net-snmp-agent-libs x86_64 1:5.7.2-43.el7 base 706 k 事務(wù)概要 ========================================================================================================================================== 安裝 1 軟件包 (+1 依賴軟件包) 總下載量:1.0 M 安裝大?。?.0 M Downloading packages: (1/2): net-snmp-agent-libs-5.7.2-43.el7.x86_64.rpm | 706 kB 00:00:00 (2/2): keepalived-1.3.5-16.el7.x86_64.rpm | 331 kB 00:00:00 ------------------------------------------------------------------------------------------------------------------------------------------ 總計(jì) 1.8 MB/s | 1.0 MB 00:00:00 Running transaction check Running transaction test Transaction test succeeded Running transaction 正在安裝 : 1:net-snmp-agent-libs-5.7.2-43.el7.x86_64 1/2 正在安裝 : keepalived-1.3.5-16.el7.x86_64 2/2 驗(yàn)證中 : keepalived-1.3.5-16.el7.x86_64 1/2 驗(yàn)證中 : 1:net-snmp-agent-libs-5.7.2-43.el7.x86_64 2/2 已安裝: keepalived.x86_64 0:1.3.5-16.el7 作為依賴被安裝: net-snmp-agent-libs.x86_64 1:5.7.2-43.el7 完畢!
4 、修改配置文件
2臺(tái)都要換,一個(gè)主機(jī),一個(gè)從機(jī)
[root@topcheer keepalived]# cat keepalived.conf
global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 192.168.180.113
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_script chk_http_port {
script "/usr/local/src/nginx_check.sh"
interval 2 #(檢測(cè)腳本執(zhí)行的間隔)
weight 2
}
vrrp_instance VI_1 {
state BACKUP # 備份服務(wù)器上將 MASTER 改為 BACKUP
interface ens33 //網(wǎng)卡
virtual_router_id 51 # 主、備機(jī)的 virtual_router_id 必須相同
priority 40 # 主、備機(jī)取不同的優(yōu)先級(jí),主機(jī)值較大,備份機(jī)值較小
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.180.114 // VRRP H 虛擬地址
}
}
腳本:
[root@topcheer src]# cat nginx_check.sh
#!/bin/bash
A=`ps -C nginx ▒Cno-header |wc -l`
if [ $A -eq 0 ];then
/usr/local/nginx/sbin/nginx
sleep 2
if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
killall keepalived
fi
fi[root@topcheer src]#
把兩臺(tái)服務(wù)器上nginx和keepalived啟動(dòng)
啟動(dòng)nginx:./nginx 由于我112上安裝了gitlab自帶nginx,就不要啟動(dòng)了 啟動(dòng)keepalived:systemctl start keepalived.service
5、測(cè)試

把113的nginx和keepalived關(guān)掉,發(fā)現(xiàn)會(huì)切換到112上

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Nginx反向代理多個(gè)服務(wù)器的實(shí)現(xiàn)方法
這篇文章主要介紹了Nginx反向代理多個(gè)服務(wù)器的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02
通過(guò)Nginx配置實(shí)現(xiàn)外網(wǎng)訪問(wèn)內(nèi)網(wǎng)數(shù)據(jù)庫(kù)的操作指南
項(xiàng)目開發(fā)部署中經(jīng)常會(huì)遇到MySQL或Oracle數(shù)據(jù)庫(kù)安裝在內(nèi)網(wǎng),而我們的應(yīng)用服務(wù)只能部署在外網(wǎng),如果實(shí)現(xiàn)外網(wǎng)服務(wù)訪問(wèn)連接內(nèi)網(wǎng)的數(shù)據(jù)庫(kù)呢?本次介紹如何通過(guò)Nginx配置實(shí)現(xiàn)外網(wǎng)訪問(wèn)內(nèi)網(wǎng)數(shù)據(jù)庫(kù),需要的朋友可以參考下2023-10-10
nginx根據(jù)二級(jí)目錄轉(zhuǎn)發(fā)服務(wù)以及帶/和不帶/的區(qū)別說(shuō)明
Nginx使用proxy_pass進(jìn)行二級(jí)目錄轉(zhuǎn)發(fā)時(shí),配置中的斜杠(/)影響路徑的處理方式:帶斜杠表示絕對(duì)路徑,不帶斜杠表示相對(duì)路徑,具體轉(zhuǎn)發(fā)到后端服務(wù)的URL會(huì)有所不同2024-12-12
Nginx配置多端口多域名訪問(wèn)的實(shí)現(xiàn)
這篇文章主要介紹了Nginx配置多端口多域名訪問(wèn)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11
Nginx啟動(dòng)失?。憾丝?0被占用問(wèn)題的解決方案
在Linux服務(wù)器上部署 Nginx 時(shí),可能會(huì)遇到 Nginx 啟動(dòng)失敗的情況,尤其是錯(cuò)誤提示bind()to 0.0.0.0:80 failed,這種問(wèn)題通常是由于端口80被其他進(jìn)程占用導(dǎo)致的,本文將詳細(xì)分析這一問(wèn)題的原因,并提供多種解決方案,幫助你快速恢復(fù)Nginx的正常運(yùn)行2025-02-02

