欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用Nginx?+?Keepalived?實(shí)現(xiàn)高可用?Web?負(fù)載均衡筆記(虛擬機(jī))

 更新時(shí)間:2023年08月08日 00:22:03   作者:CodingPioneer  
這篇文章主要介紹了使用Nginx?+?Keepalived?實(shí)現(xiàn)高可用?Web?負(fù)載均衡筆記,需要的朋友可以參考下

環(huán)境介紹

物理操作系統(tǒng):Windows10

虛擬機(jī)軟件:VMWare Workstation 16 Pro

虛擬操作系統(tǒng)統(tǒng):CentOS7 Nginx:1.24.0Keepalived:2.2.8

資源規(guī)劃

在VMWare Worksattion中安裝了2臺(tái)CentOS7的虛擬機(jī),橋接方式下IP地址分別為:192.168.0.35、192.168.0.36

VIPIP主機(jī)名Nginx端口默認(rèn)主從
192.168.0.100192.168.0.35wongoing0188MASTER
192.168.0.100192.168.0.36wongoing0288BACKUP

一、Nginx安裝

在2臺(tái)虛擬機(jī)中安裝Nginx,過程如下:

1.1、安裝編譯 Nginx 所需的依賴包

# yum install gcc gcc-c++ make automake autoconf libtool pcre pcre-devel zlib zlib-devel openssl openssl-devel ca-certificates

安裝過程中有提示的時(shí)直接輸入y繼續(xù)就可以了。

1.2、下載Nginx

# cd /usr/local/src/# wget http://nginx.org/download/nginx-1.24.0.tar.gz

1.3、編譯安裝 Nginx

# cd /usr/local/src/# tar -zxvf nginx-1.24.0.tar.gz# cd nginx-1.24.0# ./configure --prefix=/usr/local/nginx# make && make install

1.4 配置 Nginx

# vi /usr/local/nginx/conf/nginx.conf

1、把第一行的#user nobody;前面的的#去掉,把nobody改為root2、把偵聽的端口號(hào)由默認(rèn)80改為88修改后內(nèi)容如下:

user root;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
server {
listen 88;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}

1.5 修改 Nginx 歡迎首頁內(nèi)容(用于后面測(cè)試, 用于區(qū)分兩個(gè)節(jié)點(diǎn)的 Nginx)

# vi /usr/local/nginx/html/index.html

修改的內(nèi)容為在標(biāo)題內(nèi)容中增加當(dāng)前節(jié)點(diǎn)的IP地址192.168.0.35這臺(tái)服務(wù)器的nginx歡迎頁內(nèi)容如下:

<h1>Welcome to nginx! 192.168.0.35</h1>

192.168.0.36這臺(tái)服務(wù)器的nginx歡迎頁內(nèi)容如下:

<h1>Welcome to nginx! 192.168.0.36</h1>

1.6 系統(tǒng)防火墻打開對(duì)應(yīng)的端口 88

命令如下:

# firewall-cmd --zone=public --add-port=88/tcp --permanent#permanent永久生效,沒有此參數(shù)防火墻重啟便失效

相關(guān)命令1、查看防火墻狀態(tài)

systemctl status firewalld //或者 firewall-cmd --state

2、啟動(dòng)防火墻

# systemctl start firewalld.service

3、重啟防火墻

firewall-cmd --reload  或者  service firewalld restart

4、防火墻開放3306端口

firewall-cmd --zone=public --add-port=3306/tcp --permanent  //--permanent永久生效,沒有此參數(shù)防火墻重啟便失效

5、防火墻關(guān)閉3306端口

firewall-cmd --zone=public --remove-port=3306/tcp --permanent

6、禁用防火墻

systemctl stop firewalld

7、設(shè)置開機(jī)啟動(dòng)防火墻

systemctl enable firewalld

8、停止并禁用開機(jī)啟動(dòng)防火墻

systemctl disable firewalld

9、查看端口列表

firewall-cmd --permanent --list-port

1.7 測(cè)試 Nginx 是否安裝成功

# /usr/local/nginx/sbin/nginx -t

出現(xiàn)以下結(jié)果表示成功

nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is oknginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

1.8 啟動(dòng) Nginx

# /usr/local/nginx/sbin/nginx

重啟 Nginx

# /usr/local/nginx/sbin/nginx -s reload

1.9 設(shè)置 Nginx 開機(jī)啟動(dòng)

1、在系統(tǒng)服務(wù)目錄下創(chuàng)建nginx.service文件

# vi /lib/systemd/system/nginx.service

內(nèi)容如下:

[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true
[Install]
WantedBy=multi-user.target

參數(shù)解釋:Description:描述服務(wù)After:描述服務(wù)類別[Service]服務(wù)運(yùn)行參數(shù)的設(shè)置Type=forking是后臺(tái)運(yùn)行的形式ExecStart為服務(wù)的具體運(yùn)行命令ExecReload為重啟命令ExecStop為停止命令PrivateTmp=True表示給服務(wù)分配獨(dú)立的臨時(shí)空間注意:[Service]的啟動(dòng)、重啟、停止命令全部要求使用絕對(duì)路徑[Install]運(yùn)行級(jí)別下服務(wù)安裝的相關(guān)設(shè)置,可設(shè)置為多用戶,即系統(tǒng)運(yùn)行級(jí)別為32、設(shè)置開機(jī)自啟動(dòng)

systemctl enable nginx.service

3、重新載入systemd,掃描新的或有變動(dòng)的單元

systemctl daemon-reload

4、查看服務(wù)狀態(tài)

systemctl status nginx.service

如下圖:在這里插入圖片描述

1.10 分別訪問2個(gè)節(jié)點(diǎn)的Nginx

在瀏覽器上分別訪問2個(gè)節(jié)點(diǎn)的Nginx如下圖:在這里插入圖片描述

在這里插入圖片描述

二、Keepalived安裝

2.1 下載Keepalived

Keepalived的官網(wǎng)地址為:https://www.keepalived.org/

可以看到最新的穩(wěn)定版本如下圖:

在這里插入圖片描述

如下可以在服務(wù)器上直接下載最新版本

# cd /usr/local/src/# wget https://www.keepalived.org/software/keepalived-2.2.8.tar.gz

2.2 解壓與安裝Keepalived

tar -xzvf keepalived-2.2.8.tar.gzcd keepalived-2.2.8/./configure --prefix=/usr/local/keepalived --sysconf=/etcmake && make install

安裝完成后有3部分內(nèi)容1、/usr/local/keepalived目錄內(nèi)容

在這里插入圖片描述2、/etc/keepalived目錄內(nèi)容在這里插入圖片描述3、/etc/sysconfig目錄下有keepalived在這里插入圖片描述

2.3 修改keepalived配置

1、把2個(gè)節(jié)點(diǎn)服務(wù)器上的/etc/keepalived/keepalived.conf.sample復(fù)制(或者直接重命名)一份命名為keepalived.conf

cd /etc/keepalivedcp keepalived.conf.sample keepalived.conf

如下圖:

在這里插入圖片描述

2、編輯/etc/keepalived/keepalived.conf(1)MASTER節(jié)點(diǎn)(192.168.0.35)的內(nèi)容如下(可以把原來的內(nèi)容全部刪除):

! Configuration File for keepalived
global_defs {
## keepalived 自帶的郵件提醒需要開啟 sendmail 服務(wù)。 建議用獨(dú)立的監(jiān)控或第三方 SMTP
router_id wongoing01    ## 標(biāo)識(shí)本節(jié)點(diǎn)的字條串,通常為 hostname
}
## keepalived 會(huì)定時(shí)執(zhí)行腳本并對(duì)腳本執(zhí)行的結(jié)果進(jìn)行分析,動(dòng)態(tài)調(diào)整 vrrp_instance 的優(yōu)先級(jí)。如果腳本執(zhí)行結(jié)果為 0,并且 weight 配置的值大于 0,則優(yōu)先級(jí)相應(yīng)的增加。如果腳本執(zhí)行結(jié)果非 0,并且 weight配置的值小于 0,則優(yōu)先級(jí)相應(yīng)的減少。其他情況,維持原本配置的優(yōu)先級(jí),即配置文件中 priority 對(duì)應(yīng)的值。
vrrp_script chk_nginx {
script "/etc/keepalived/nginx_check.sh"     ## 檢測(cè) nginx 狀態(tài)的腳本路徑
interval 2     ## 檢測(cè)時(shí)間間隔
weight -20   ## 如果條件成立,權(quán)重-20
}
## 定義虛擬路由, VI_1 為虛擬路由的標(biāo)示符,自己定義名稱
vrrp_instance VI_1 {
state MASTER      ## 主節(jié)點(diǎn)為 MASTER, 對(duì)應(yīng)的備份節(jié)點(diǎn)為 BACKUP
interface ens33     ## 綁定虛擬 IP 的網(wǎng)絡(luò)接口,與本機(jī) IP 地址所在的網(wǎng)絡(luò)接口相同, 虛擬機(jī)里面一般是ens33,物理主機(jī)通常是eth0
virtual_router_id 51    ## 虛擬路由的 ID 號(hào), 兩個(gè)節(jié)點(diǎn)設(shè)置必須一樣, 可選 IP 最后一段使用, 相同的 VRID 為一個(gè)組,他將決定多播的 MAC 地址
priority 100            ## 節(jié)點(diǎn)優(yōu)先級(jí), 值范圍 0-254, MASTER 要比 BACKUP 高
nopreempt            ## 優(yōu)先級(jí)高的設(shè)置 nopreempt 解決異?;謴?fù)后再次搶占的問題
advert_int 1          ## 組播信息發(fā)送間隔,兩個(gè)節(jié)點(diǎn)設(shè)置必須一樣, 默認(rèn) 1s
## 設(shè)置驗(yàn)證信息,兩個(gè)節(jié)點(diǎn)必須一致
authentication {
auth_type PASS
auth_pass 1111      ## 真實(shí)生產(chǎn),按需求對(duì)應(yīng)該過來
}
## 將 track_script 塊加入 instance 配置塊
track_script {
chk_nginx        ## 執(zhí)行 Nginx 監(jiān)控的服務(wù)
}
## 虛擬 IP 池, 兩個(gè)節(jié)點(diǎn)設(shè)置必須一樣
virtual_ipaddress {
192.168.0.100      ## 虛擬 ip,可以定義多個(gè)
}
}

(2)BACKUP節(jié)點(diǎn)(192.168.0.36)的內(nèi)容如下(可以把原來的內(nèi)容全部刪除):

! Configuration File for keepalived
global_defs {
router_id wongoing02
}
vrrp_script chk_nginx {
script "/etc/keepalived/nginx_check.sh"
interval 2
weight -20
}
vrrp_instance VI_1 {
state BACKUP
interface ens33
virtual_router_id 51
priority 90
advert_int 1
authentication {
auth_type PASS
auth_pass 1111!i!
}
track_script {
chk_nginx
}
virtual_ipaddress {
192.168.0.100
}
}

2.4 編寫 Nginx 狀態(tài)檢測(cè)腳本

編寫 Nginx 狀態(tài)檢測(cè)腳本 /etc/keepalived/nginx_check.sh (已在 keepalived.conf 中配置)腳本要求:如果 nginx 停止運(yùn)行,嘗試啟動(dòng),如果無法啟動(dòng)則殺死本機(jī)的 keepalived 進(jìn)程, keepalied將虛擬 ip 綁定到 BACKUP 機(jī)器上。

# vi /etc/keepalived/nginx_check.sh

內(nèi)容如下:

#!/bin/bash
A=`ps -C nginx –no-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

保存后,給腳本賦執(zhí)行權(quán)限:

# chmod +x /etc/keepalived/nginx_check.sh

##2.5 啟動(dòng) Keepalived

# systemctl start keepalived.service

查看keepalived服務(wù)狀態(tài)

# systemctl status keepalived.service

如下圖:

在這里插入圖片描述

2.6 設(shè)置Keepalived開啟自啟動(dòng)

systemctl enable keepalived.service

2.7 Keepalived+Nginx 的高可用測(cè)試

同時(shí)啟動(dòng)192.168.0.35和192.168.36上的Nginx和Keepalived,我們通過VIP(192.168.0.100)來訪問Nginx如下:

在這里插入圖片描述

我們關(guān)閉192.168.0.35上的Keepalived和Nginx

systemctl stop keepalived.servicesystemctl stop nginx.service

此時(shí),再通過VIP(192.168.0.100)來訪問Nginx,如下

在這里插入圖片描述

我們?cè)匍_啟192.168.0.35上的Keepalived和Nginx在192.168.0.100執(zhí)行如下命令:

systemctl start nginx.servicesystemctl start keepalived.service

或者只執(zhí)行

systemctl start keepalived.service

因?yàn)槲覀儗懥四_本 nginx_check.sh,這個(gè)腳本會(huì)為我們自動(dòng)自動(dòng)Nginx。此時(shí),我們?cè)偻ㄟ^VIP(192.168.50.130)來訪問Nginx,如下

在這里插入圖片描述

至此,Keepalived + Nginx 實(shí)現(xiàn)高可用 Web 負(fù)載均衡搭建完畢!

相關(guān)文章

  • nginx上設(shè)置html不緩存的方法實(shí)現(xiàn)

    nginx上設(shè)置html不緩存的方法實(shí)現(xiàn)

    前端項(xiàng)目發(fā)布以后,經(jīng)常會(huì)遇到訪問不到最新的版本,這主要是由于我們項(xiàng)目的入口文件index.html被瀏覽器或者代理緩存了,本文主要介紹了nginx上設(shè)置html不緩存,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-02-02
  • keepalived+lvs 對(duì)nginx做負(fù)載均衡和高可用的操作方法

    keepalived+lvs 對(duì)nginx做負(fù)載均衡和高可用的操作方法

    這篇文章主要介紹了keepalived+lvs 對(duì)nginx做負(fù)載均衡和高可用的操作方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2023-12-12
  • Nginx報(bào)錯(cuò)104:Connection?reset?by?peer問題的解決及分析

    Nginx報(bào)錯(cuò)104:Connection?reset?by?peer問題的解決及分析

    最近恰好又遇到這了個(gè)錯(cuò)誤,為了加深記憶,所以記錄下我遇到這個(gè)錯(cuò)誤的主要原因,下面這篇文章主要給大家介紹了關(guān)于Nginx報(bào)錯(cuò)104:Connection?reset?by?peer問題的解決及分析的相關(guān)資料,需要的朋友可以參考下
    2022-07-07
  • Nginx實(shí)現(xiàn)瀏覽器可實(shí)時(shí)查看訪問日志的步驟詳解

    Nginx實(shí)現(xiàn)瀏覽器可實(shí)時(shí)查看訪問日志的步驟詳解

    我們經(jīng)常需要在頁面上實(shí)時(shí)查看nginx的日志輸出,并且能在頁面上顯示,那么下面小編就給大家說下怎么在瀏覽器上實(shí)時(shí)動(dòng)態(tài)的查看nginx的訪問日志,有需要的朋友們可以參考借鑒。
    2016-09-09
  • Nginx上配置Basic Authorization登錄認(rèn)服務(wù)證的教程

    Nginx上配置Basic Authorization登錄認(rèn)服務(wù)證的教程

    現(xiàn)在我們所使用的包括社交網(wǎng)絡(luò)API等開放平臺(tái)授權(quán)獲得用戶的用戶名和密碼一般有兩種認(rèn)證方式,一種是Basic Auth,一種是OAuth,這里我們就來看一下Nginx上配置Basic Authorization登錄認(rèn)服務(wù)證的教程
    2016-06-06
  • Nginx 日志輪轉(zhuǎn)的實(shí)現(xiàn)示例

    Nginx 日志輪轉(zhuǎn)的實(shí)現(xiàn)示例

    Nginx日志輪轉(zhuǎn)是監(jiān)控和調(diào)試Web服務(wù)器的重要工具,通過定期歸檔、壓縮和清理日志文件,可以節(jié)省磁盤空間、提高性能并方便故障排查,下面就來介紹一下
    2024-12-12
  • nginx安裝第三方模塊的方法

    nginx安裝第三方模塊的方法

    這篇文章主要介紹了nginx安裝第三方模塊的方法,包含在未安裝nginx的情況下安裝nginx第三方模塊和在已安裝nginx情況下安裝nginx第三方模塊,需要的朋友可以參考下
    2014-06-06
  • Linux部署Nginx詳細(xì)圖文教程

    Linux部署Nginx詳細(xì)圖文教程

    這篇文章主要給大家介紹了關(guān)于Linux部署Nginx的相關(guān)資料,Nginx 是一個(gè)高性能的HTTP和反向代理web服務(wù)器,Nginx是一款輕量級(jí)的Web服務(wù)器/反向代理服務(wù)器及電子郵件(IMAP/POP3)代理服務(wù)器,需要的朋友可以參考下
    2024-01-01
  • CentOS 6.7下nginx SSL證書部署的方法

    CentOS 6.7下nginx SSL證書部署的方法

    這篇文章主要介紹了在CentOS 6.7下nginx SSL證書部署的方法,文中介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-03-03

最新評(píng)論