Centos7keepalived+nginx-創(chuàng)新互聯(lián)

官網下載:
keepalived-2.0.12.tar
nginx-1.14.2.tar

成都創(chuàng)新互聯(lián)公司基于成都重慶香港及美國等地區(qū)分布式IDC機房數(shù)據(jù)中心構建的電信大帶寬,聯(lián)通大帶寬,移動大帶寬,多線BGP大帶寬租用,是為眾多客戶提供專業(yè)資陽主機托管報價,主機托管價格性價比高,為金融證券行業(yè)服務器托管,ai人工智能服務器托管提供bgp線路100M獨享,G口帶寬及機柜租用的專業(yè)成都idc公司。

主機A:192.168.0.110/24
主機B:192.168.0.120/24

VRRP:192.168.0.200/24

用winscp把文件上傳到 /usr/local/
cd /usr/local/
安裝keepalived:
(2)# cd /usr/local/
(3)# tar -zxvf keepalived-2.0.12.tar.gz
(4)# cd keepalived-2.0.12
(5)# ./configure --prefix=/usr/local/keepalived
(6)# make && make install

[root@localhost local]# tar -zxvf keepalived-2.0.12.tar.gz

安裝路徑:/usr/local/keepalived

[root@localhost keepalived-2.0.12]# ./configure --prefix=/usr/local/keepalived
[root@localhost keepalived-2.0.12]# make && make install

如果是新的系統(tǒng)安裝是需要安裝依賴包,可以掛載光盤用本地yum安裝。

[root@localhost keepalived-2.0.12]# mkdir /mnt/cdrom
[root@localhost keepalived-2.0.12]# mount /dev/cdrom /mnt/cdrom/
mount: /dev/sr0 is write-protected, mounting read-only
 cd /etc/yum.repos.d/
 cp CentOS-Base.repo CentOS-Base.repo.bak
  vi CentOS-Base.repo

Centos7 keepalived +nginx
保存

[root@localhost yum.repos.d]# yum repolist

Centos7 keepalived +nginx

報錯1:
Centos7 keepalived +nginx
一次解決依賴包問題

[root@localhost yum.repos.d]# yum -y install openssl-devel gcc libnl-devel
[root@localhost keepalived-2.0.12]# yum -y install gcc   解決

報錯2:
Centos7 keepalived +nginx

[root@localhost keepalived-2.0.12]# yum -y install openssl-devel  解決

報錯3:
Centos7 keepalived +nginx

[root@localhost keepalived-2.0.12]# yum -y install libnl-devel  解決

再次執(zhí)行

./configure --prefix=/usr/local/keepalived  && make && make install    安裝成為

沒有任何錯誤出現(xiàn)
Centos7 keepalived +nginx

將keepalived添加到系統(tǒng)服務中

# 拷貝執(zhí)行文件
cp /usr/local/keepalived/sbin/keepalived /usr/sbin/
# 將初始化腳本拷貝到系統(tǒng)初始化目錄下
cp /usr/local/keepalived-2.0.10/keepalived/etc/init.d/keepalived /etc/init.d/
# 將keepalived配置文件拷貝到etc下
cp /usr/local/keepalived-2.0.10/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
# 創(chuàng)建keepalived文件夾
mkdir /etc/keepalived/
# 將keepalived配置文件拷貝到etc下
cp /usr/local/keepalived-2.0.10/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
# 添加可執(zhí)行權限
chmod +x /etc/init.d/keepalived
# 添加keepalived到開機啟動
chkconfig --add keepalived
chkconfig keepalived on

此時已加入系統(tǒng)服務 可使用services 啟動

#啟動
service keepalived start
#停止
service keepalived stop
#重啟
service keepalived restart
#查看啟動情況
ps -aux |grep keepalived

修改剛添加到系統(tǒng)的配置文件:vi /etc/keepalived/keepalived.conf
找到虛擬路由節(jié)點 vrrp_instance(Virtual Router Redundancy Protocol)

global_defs {
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL01    //router_id   不能想同
   vrrp_skip_check_adv_addr
   vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}

vrrp_instance VI_1 {
    state MASTER          //MASTER主節(jié)點,備用節(jié)點上設置為state BACKUP
    interface ens32        //綁定虛擬機IP的網卡  兩個節(jié)點設置一樣 根據(jù) ipaddr換成對應的網卡地址
    virtual_router_id 51  //VRRP組名,主副節(jié)點設置必須一樣,指名各個節(jié)點屬于同一個VRRP組,同一個組的節(jié)點互相搶IP
    priority 100         //優(yōu)先級(1~254之間),備用節(jié)點必須比主節(jié)點優(yōu)先級低
    advert_int 1         //組播信息發(fā)送間隔,兩個節(jié)點設置必須一樣
    authentication {    //設置驗證信息, 兩個節(jié)點設置必須一樣,用于節(jié)點間信息轉發(fā)時的加密
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {  // 虛擬IP兩個節(jié)點設置必須一樣,兩節(jié)點同時搶一個io
        192.168.0.200/24  // 如果兩個nginx的ip分別是192.168.0.110,.120,則此處的虛擬ip跟它倆同一個網段即可 24代表3個255的子網掩碼
    }
}

如果要 ping 192.168.0.200 還需要注釋掉配置文件中的# vrrp_strict

-----*****---
主備都搶到了虛擬ip
Centos7 keepalived +nginx
掛載了光盤可以直接安裝 tcpdump

 yum -y install tcpdump

采用 tcpdump 抓包定位問題,以下是在192.168.0.110 主節(jié)點的抓包結果
tcpdump -i ens32 vrrp -n
Centos7 keepalived +nginx

由上圖可以看到,192.168.93.140和192.168.93.141兩個IP在輪流發(fā)送組播信號。而正常的應該是由MASTER服務器發(fā)送組播,如果BACKUP收不到MASTER的組播信號了,那么判定MASTER宕機了,BACKUP就會接手VIP

問題就是出現(xiàn)在了防火墻這里,防火墻阻止了vrrp組包發(fā)送

如果是Firewalld防火墻 則主、備都運行下面的命令

[root@localhost etc]# firewall-cmd --direct --permanent --add-rule ipv4 filter INPUT 0 --in-interface ens32 --destination 224.0.0.18 --protocol vrrp -j ACCEPT
success
或者
[root@localhost etc]# firewall-cmd --direct --permanent --add-rule ipv4 filter INPUT 0 --in-interface  ens32 --protocol vrrp -j ACCEPT
success
[root@localhost etc]# firewall-cmd --reload
success
[root@localhost etc]#

如果添加了沒有正常重啟下服務器
Centos7 keepalived +nginx
重啟后正常.
服務器A:
Centos7 keepalived +nginx
服務器B:
Centos7 keepalived +nginx
至此Keepalived 安裝完成。


安裝 Nginx
安裝所需環(huán)境
Nginx 是 C語言 開發(fā),建議在 Linux 上運行,當然,也可以安裝 Windows 版本,本篇則使用 CentOS 7 作為安裝環(huán)境。

一. gcc 安裝
安裝 nginx 需要先將官網下載的源碼進行編譯,編譯依賴 gcc 環(huán)境,如果沒有 gcc 環(huán)境,則需要安裝:

yum install gcc-c++
二. PCRE pcre-devel 安裝
PCRE(Perl Compatible Regular Expressions) 是一個Perl庫,包括 perl 兼容的正則表達式庫。nginx 的 http 模塊使用 pcre 來解析正則表達式,所以需要在 linux 上安裝 pcre 庫,pcre-devel 是使用 pcre 開發(fā)的一個二次開發(fā)庫。nginx也需要此庫。命令:

yum install -y pcre pcre-devel
三. zlib 安裝
zlib 庫提供了很多種壓縮和解壓縮的方式, nginx 使用 zlib 對 http 包的內容進行 gzip ,所以需要在 Centos 上安裝 zlib 庫。

yum install -y zlib zlib-devel
四. OpenSSL 安裝
OpenSSL 是一個強大的安全套接字層密碼庫,囊括主要的密碼算法、常用的密鑰和證書封裝管理功能及 SSL 協(xié)議,并提供豐富的應用程序供測試或其它目的使用。
nginx 不僅支持 http 協(xié)議,還支持 https(即在ssl協(xié)議上傳輸http),所以需要在 Centos 安裝 OpenSSL 庫。

yum install -y openssl openssl-devel

不過在安裝keepalived 時都安裝 了這些依賴包了,下面直接安裝 就 行了.

[root@localhost ~]# cd /usr/local/
[root@localhost local]# tar -zxvf nginx-1.14.2.tar.gz 
[root@localhost local]# cd nginx-1.14.2
[root@localhost nginx-1.14.2]# ./configure --prefix=/usr/local/nginx

出現(xiàn)這個就 沒問題了
Centos7 keepalived +nginx

[root@localhost nginx-1.14.2]# make && nake install

Centos7 keepalived +nginx
如果 沒有生成Nginx 文件夾 就分開執(zhí)行 1. make 2. make install

nginx 命令

5.啟動

$ /usr/local/nginx/sbin/nginx
檢查是否啟動成功:

打開瀏覽器訪問此機器的 IP,如果瀏覽器出現(xiàn) Welcome to nginx! 則表示 Nginx 已經安裝并運行成功。

部分命令如下:
重啟:
$ /usr/local/nginx/sbin/nginx –s reload
停止:
$ /usr/local/nginx/sbin/nginx –s stop
測試配置文件是否正常:
 $ /usr/local/nginx/sbin/nginx –t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
強制關閉:
$ pkill nginx

經過編譯安裝以及解決問題,Nginx 已經運行正常,但是此時 Nginx 并沒有添加進系統(tǒng)服務。接下來會將 Nginx 添加進系統(tǒng)服務并且設置開機啟動。
在 /usr/lib/systemd/system 目錄中添加 nginx.service 內容如下

[Unit]
Description=nginx - high performance web server
Documentation=http://nginx.org/en/docs/
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target

添加完成后再來看下
Centos7 keepalived +nginx
輸入 systemctl start nginx 啟動
Centos7 keepalived +nginx
然后輸入 systemctl enable nginx 設置開機啟動
Centos7 keepalived +nginx
Nginx 安裝成功.

下面來測試下 主備 nginx

[root@localhost ~]# cd /usr/local/nginx/html/

修改 主 機 index.html
添加 <h2>MASTTER:192.168.0.110</h2>
修改 備 機 index.html
添加 <h2>BACKUP:192.168.0.120</h2>
記得修改完要重啟nginx

[root@localhost html]# systemctl restart nginx

如果訪問不了 WEB 就在隔火墻上 添加

[root@localhost html]# firewall-cmd --zone=public --permanent --add-port=80/tcp
success
[root@localhost html]# firewall-cmd --reload
success

這是 正常情況下訪問:
Centos7 keepalived +nginx
下 面是關閉服務器 A 訪問的頁面
Centos7 keepalived +nginx
Centos7 keepalived +nginx
再把服務器A打 開訪問網頁

Centos7 keepalived +nginx
Centos7 keepalived +nginx

接著添加 一nginx 腳本 :新建 chk_nginx.sh

[root@localhost ~]# cd /etc/keepalived
[root@localhost keepalived]# touch chk_nginx.sh

內容如下
Centos7 keepalived +nginx

[root@localhost keepalived]# chmod +x chk_nginx.sh    添加執(zhí)行權限

修改keepalived.conf
Centos7 keepalived +nginx

[root@localhost keepalived]# systemctl restart keepalived

ok 測試 腳本先 執(zhí)行

[root@localhost keepalived]# systemctl stop nginx

再訪問 網頁,發(fā)現(xiàn)轉到備機上了
Centos7 keepalived +nginx
實驗完成。

另外有需要云服務器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。

分享題目:Centos7keepalived+nginx-創(chuàng)新互聯(lián)
網址分享:http://muchs.cn/article22/dpedcc.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供動態(tài)網站、網站策劃網站營銷、App設計、電子商務、網站制作

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)