Nginx+Keepalived實現(xiàn)Web服務(wù)器高可用

2021-02-12    分類: 網(wǎng)站建設(shè)

1、Nginx

業(yè)務(wù)背景

現(xiàn)公司需求快速搭建web服務(wù)器,對外提供給用戶web服務(wù)。

需求拆分

需要基于http協(xié)議的軟件,搭建服務(wù)實現(xiàn)

介紹

常見用法:

1) web服務(wù)器軟件 httpd http協(xié)議

同類的web服務(wù)器軟件:apache(老牌) nginx(俄羅斯) IIS(微軟)

2)代理服務(wù)器 反向代理

3)

Nginx架構(gòu)的特點:

①高可靠:穩(wěn)定性 master進程 管理調(diào)度請求分發(fā)到哪一個worker=> worker進程 響應(yīng)請求 一master多worker②熱部署 :(1)平滑升級 (2)可以快速重載配置③高并發(fā):可以同時響應(yīng)更多的請求 事件 epoll模型 幾萬④響應(yīng)快:尤其在處理靜態(tài)文件上,響應(yīng)速度很快 sendfile⑤低消耗:cpu和內(nèi)存 1w個請求 內(nèi)存2-3MB⑥分布式支持 :反向代理 七層負(fù)載均衡

官方網(wǎng)址:http://nginx.org/

1.2、安裝

常見安裝方式:

①yum安裝配置,需使用Nginx官方源或者EPEL源②源碼編譯

  1. #添加運行用戶 
  2. shell > useradd -s/sbin/nologin -M www 
  3. #安裝依賴 
  4. shell > yum -y install pcre-devel zlib-devel openssl-devel 
  5. #編譯安裝 
  6. shell > cd /root/soft 
  7. shell > tar xvf nginx-1.14.2.tar.gz 
  8. shell > cd nginx-1.14.2 
  9. shell > ./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module && make && make install 

編譯參數(shù)說明

1.3、目錄介紹

查看安裝目錄/usr/local/nginx

1.4、軟件操作參數(shù)

查看nginx的二進制可執(zhí)行文件的相關(guān)參數(shù)

  1. shell > cd /usr/local/nginx/sbin 
  2.  shell > ./nginx -h 

執(zhí)行后顯示

  1. nginx version: nginx/1.14.2 
  2.  Usage: nginx [-?hvVtTq] [-s signal] [-c filename] [-p prefix] [-g directives] 
  3.   
  4.  Options: 
  5.  #查看幫助 
  6.  -?,-h : this help 
  7.  #查看版本并退出 
  8.  -v : show version and exit 
  9.  #查看版本和配置選項并退出 
  10.  -V : show version and configure options then exit 
  11.  #檢測配置文件語法并退出 
  12.  -t : test configuration and exit 
  13.  #檢測配置文件語法打印它并退出 
  14.  -T : test configuration, dump it and exit 
  15.  #在配置測試期間禁止顯示非錯誤信息 
  16.  -q : suppress non-error messages during configuration testing 
  17.  #發(fā)送信號給主進程 stop強制退出 quit優(yōu)雅的退出 reopen重開日志 reload重載配置 
  18.  -s signal : send signal to a master process: stop, quit, reopen, reload 
  19.  #設(shè)置nginx目錄 $prefix路徑 
  20.  -p prefix : set prefix path (default: /usr/local/nginx/) 
  21.  #指定啟動使用的配置文件 
  22.  -c filename : set configuration file (default: conf/nginx.conf) 
  23.  #在配置文件之外設(shè)置全局指令 
  24.  -g directives : set global directives out of configuration file 

一般主要使用:

-s參數(shù)控制管理nginx服務(wù)-V參數(shù)查看nginx開啟的模塊和編譯參數(shù)-t參數(shù)檢測配置文件是否有錯誤

2、Keepalived實現(xiàn)高可用

業(yè)務(wù)背景

單例web服務(wù)器能夠滿足業(yè)務(wù)基本需求,提供web服務(wù)。但是,存在單點故障的問題,即當(dāng)服務(wù)器宕機后,用戶將無法獲取到服務(wù)響應(yīng)。

為了能夠提高用戶體驗度,能夠持續(xù)得給用戶提供優(yōu)質(zhì)的服務(wù),當(dāng)web服務(wù)器不可用時,可以有備用服務(wù)器接替web服務(wù)器的工作,繼續(xù)為用戶提供響應(yīng)。其中,還要解決一個問題,需要備用服務(wù)器能夠快速自動切換過來。

一般將以上業(yè)務(wù)需求,稱為實現(xiàn)服務(wù)的高可用HA。

需求拆分

也就是高可用的實現(xiàn)核心:

①冗余服務(wù)器(備份服務(wù)器)

②自動切換 可以通過綁定虛擬IP的方式 用戶通過VIP訪問服務(wù)

2.1、介紹

Keepalived軟件起初是專為LVS負(fù)載均衡軟件設(shè)計的,用來管理并監(jiān)控LVS集群系統(tǒng)中各個服務(wù)節(jié)點的狀態(tài),后來又加入了可以實現(xiàn)高可用的VRRP功能。因此,Keepalived除了能夠管理LVS軟件外,還可以作為其他服務(wù)(例如:Nginx、Haproxy、MySQL等)的高可用解決方案軟件。

2.3、配置

①備份主備服務(wù)器的配置文件

  1. shell > cd /etc/keepalived 
  2.  shell > cp keepalived.conf keepalived.conf_bak 

②分別修改主備服務(wù)器配置文件

  1. shell > vim keepalived.conf 

示例配置文件說明

  1. ! Configuration File for keepalived 
  2.  #發(fā)送郵件的配置 
  3.  global_defs { 
  4.  notification_email { 
  5.  acassen@firewall.loc 
  6.  failover@firewall.loc 
  7.  sysadmin@firewall.loc 
  8.  } 
  9.  notification_email_from Alexandre.Cassen@firewall.loc 
  10.  smtp_server 192.168.200.1 
  11.  smtp_connect_timeout 30 
  12.  router_id LVS_DEVEL 
  13.  } 
  14.  #vrrp協(xié)議的配置 
  15.  vrrp_instance VI_1 { 
  16.  #工作模式 
  17.  state MASTER 
  18.  #監(jiān)聽的網(wǎng)卡 
  19.  interface eth0 
  20.  #虛擬路由id 需要和備服務(wù)器一致 
  21.  virtual_router_id 51 
  22.  #權(quán)重 優(yōu)先級 
  23.  priority 100 
  24.  #vrrp包的發(fā)送周期 1s 
  25.  advert_int 1 
  26.  #權(quán)限驗證 
  27.  authentication { 
  28.  auth_type PASS 
  29.  auth_pass 1111 
  30.  } 
  31.  #需要綁定切換的VIP 
  32.  virtual_ipaddress { 
  33.  192.168.200.16 
  34.  192.168.200.17 
  35.  192.168.200.18 
  36.  } 
  37.  } 

主服務(wù)器

  1. ! Configuration File for keepalived 
  2. global_defs { 
  3. notification_email { 
  4. acassen@firewall.loc 
  5. failover@firewall.loc 
  6. sysadmin@firewall.loc 
  7. notification_email_from Alexandre.Cassen@firewall.loc 
  8. smtp_server 192.168.200.1 
  9. smtp_connect_timeout 30 
  10. router_id LVS_DEVEL 
  11. vrrp_instance VI_1 { 
  12. state MASTER 
  13. interface eth0 
  14. virtual_router_id 51 
  15. priority 100 
  16. advert_int 1 
  17. authentication { 
  18. auth_type PASS 
  19. auth_pass 1111 
  20. #master默認(rèn)只需要修改使用VIP即可 
  21. virtual_ipaddress { 
  22. 192.168.17.200 

備服務(wù)器

  1. ! Configuration File for keepalived 
  2.  global_defs { 
  3.  notification_email { 
  4.  acassen@firewall.loc 
  5.  failover@firewall.loc 
  6.  sysadmin@firewall.loc 
  7.  } 
  8.  notification_email_from Alexandre.Cassen@firewall.loc 
  9.  smtp_server 192.168.200.1 
  10.  smtp_connect_timeout 30 
  11.  router_id LVS_DEVEL 
  12.  } 
  13.  vrrp_instance VI_1 { 
  14.  #修改工作模式為備 
  15.  state BACKUP 
  16.  interface eth0 
  17.  virtual_router_id 51 
  18.  priority 100 
  19.  advert_int 1 
  20.  authentication { 
  21.  auth_type PASS 
  22.  auth_pass 1111 
  23.  } 
  24.  #注意修改VIP 
  25.  virtual_ipaddress { 
  26.  192.168.17.200 
  27.  } 
  28.  } 

③分別按照順序啟動主服務(wù)器和備服務(wù)器的keepalived

  1. shell > service keepalived start 

④查看主備服務(wù)器的網(wǎng)卡信息

  1. #需要通過ip a命令查看 分別在server01和server03查看 
  2.  shell > ip a 

2.4、模擬故障

模擬服務(wù)器故障宕機,查看是否可以切換服務(wù)到備用機器。

模擬宕機,關(guān)閉server01 master服務(wù)器,VIP自動切換到server03 backup服務(wù)器

  1. #抓包vrrp 
  2. shell > yum -y install tcpdump 
  3. shell > tcpdump vrrp -n 

網(wǎng)站標(biāo)題:Nginx+Keepalived實現(xiàn)Web服務(wù)器高可用
分享路徑:http://www.muchs.cn/news/100622.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計、定制開發(fā)、商城網(wǎng)站、軟件開發(fā)、域名注冊、建站公司

廣告

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

成都網(wǎng)站建設(shè)