2021-02-12 分類: 網(wǎng)站建設(shè)
1、Nginx
業(yè)務(wù)背景
現(xiàn)公司需求快速搭建web服務(wù)器,對(duì)外提供給用戶web服務(wù)。
需求拆分
需要基于http協(xié)議的軟件,搭建服務(wù)實(shí)現(xiàn)
介紹
常見用法:
1) web服務(wù)器軟件 httpd http協(xié)議
同類的web服務(wù)器軟件:apache(老牌) nginx(俄羅斯) IIS(微軟)
2)代理服務(wù)器 反向代理
3)
Nginx架構(gòu)的特點(diǎn):
①高可靠:穩(wěn)定性 master進(jìn)程 管理調(diào)度請(qǐng)求分發(fā)到哪一個(gè)worker=> worker進(jìn)程 響應(yīng)請(qǐng)求 一master多worker②熱部署 :(1)平滑升級(jí) (2)可以快速重載配置③高并發(fā):可以同時(shí)響應(yīng)更多的請(qǐng)求 事件 epoll模型 幾萬④響應(yīng)快:尤其在處理靜態(tài)文件上,響應(yīng)速度很快 sendfile⑤低消耗:cpu和內(nèi)存 1w個(gè)請(qǐng)求 內(nèi)存2-3MB⑥分布式支持 :反向代理 七層負(fù)載均衡
官方網(wǎng)址:http://nginx.org/
1.2、安裝
常見安裝方式:
①yum安裝配置,需使用Nginx官方源或者EPEL源②源碼編譯
- #添加運(yùn)行用戶
- shell > useradd -s/sbin/nologin -M www
- #安裝依賴
- shell > yum -y install pcre-devel zlib-devel openssl-devel
- #編譯安裝
- shell > cd /root/soft
- shell > tar xvf nginx-1.14.2.tar.gz
- shell > cd nginx-1.14.2
- 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的二進(jìn)制可執(zhí)行文件的相關(guān)參數(shù)
- shell > cd /usr/local/nginx/sbin
- shell > ./nginx -h
執(zhí)行后顯示
- nginx version: nginx/1.14.2
- Usage: nginx [-?hvVtTq] [-s signal] [-c filename] [-p prefix] [-g directives]
- Options:
- #查看幫助
- -?,-h : this help
- #查看版本并退出
- -v : show version and exit
- #查看版本和配置選項(xiàng)并退出
- -V : show version and configure options then exit
- #檢測(cè)配置文件語法并退出
- -t : test configuration and exit
- #檢測(cè)配置文件語法打印它并退出
- -T : test configuration, dump it and exit
- #在配置測(cè)試期間禁止顯示非錯(cuò)誤信息
- -q : suppress non-error messages during configuration testing
- #發(fā)送信號(hào)給主進(jìn)程 stop強(qiáng)制退出 quit優(yōu)雅的退出 reopen重開日志 reload重載配置
- -s signal : send signal to a master process: stop, quit, reopen, reload
- #設(shè)置nginx目錄 $prefix路徑
- -p prefix : set prefix path (default: /usr/local/nginx/)
- #指定啟動(dòng)使用的配置文件
- -c filename : set configuration file (default: conf/nginx.conf)
- #在配置文件之外設(shè)置全局指令
- -g directives : set global directives out of configuration file
一般主要使用:
-s參數(shù)控制管理nginx服務(wù)-V參數(shù)查看nginx開啟的模塊和編譯參數(shù)-t參數(shù)檢測(cè)配置文件是否有錯(cuò)誤
2、Keepalived實(shí)現(xiàn)高可用
業(yè)務(wù)背景
單例web服務(wù)器能夠滿足業(yè)務(wù)基本需求,提供web服務(wù)。但是,存在單點(diǎn)故障的問題,即當(dāng)服務(wù)器宕機(jī)后,用戶將無法獲取到服務(wù)響應(yīng)。
為了能夠提高用戶體驗(yàn)度,能夠持續(xù)得給用戶提供優(yōu)質(zhì)的服務(wù),當(dāng)web服務(wù)器不可用時(shí),可以有備用服務(wù)器接替web服務(wù)器的工作,繼續(xù)為用戶提供響應(yīng)。其中,還要解決一個(gè)問題,需要備用服務(wù)器能夠快速自動(dòng)切換過來。
一般將以上業(yè)務(wù)需求,稱為實(shí)現(xiàn)服務(wù)的高可用HA。
需求拆分
也就是高可用的實(shí)現(xiàn)核心:
①冗余服務(wù)器(備份服務(wù)器)
②自動(dòng)切換 可以通過綁定虛擬IP的方式 用戶通過VIP訪問服務(wù)
2.1、介紹Keepalived軟件起初是專為LVS負(fù)載均衡軟件設(shè)計(jì)的,用來管理并監(jiān)控LVS集群系統(tǒng)中各個(gè)服務(wù)節(jié)點(diǎn)的狀態(tài),后來又加入了可以實(shí)現(xiàn)高可用的VRRP功能。因此,Keepalived除了能夠管理LVS軟件外,還可以作為其他服務(wù)(例如:Nginx、Haproxy、MySQL等)的高可用解決方案軟件。
2.3、配置①備份主備服務(wù)器的配置文件
- shell > cd /etc/keepalived
- shell > cp keepalived.conf keepalived.conf_bak
②分別修改主備服務(wù)器配置文件
- shell > vim keepalived.conf
示例配置文件說明
- ! Configuration File for keepalived
- #發(fā)送郵件的配置
- 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_DEVEL
- }
- #vrrp協(xié)議的配置
- vrrp_instance VI_1 {
- #工作模式
- state MASTER
- #監(jiān)聽的網(wǎng)卡
- interface eth0
- #虛擬路由id 需要和備服務(wù)器一致
- virtual_router_id 51
- #權(quán)重 優(yōu)先級(jí)
- priority 100
- #vrrp包的發(fā)送周期 1s
- advert_int 1
- #權(quán)限驗(yàn)證
- authentication {
- auth_type PASS
- auth_pass 1111
- }
- #需要綁定切換的VIP
- virtual_ipaddress {
- 192.168.200.16
- 192.168.200.17
- 192.168.200.18
- }
- }
主服務(wù)器
- ! Configuration File for keepalived
- 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_DEVEL
- }
- vrrp_instance VI_1 {
- state MASTER
- interface eth0
- virtual_router_id 51
- priority 100
- advert_int 1
- authentication {
- auth_type PASS
- auth_pass 1111
- }
- #master默認(rèn)只需要修改使用VIP即可
- virtual_ipaddress {
- 192.168.17.200
- }
- }
備服務(wù)器
- ! Configuration File for keepalived
- 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_DEVEL
- }
- vrrp_instance VI_1 {
- #修改工作模式為備
- state BACKUP
- interface eth0
- virtual_router_id 51
- priority 100
- advert_int 1
- authentication {
- auth_type PASS
- auth_pass 1111
- }
- #注意修改VIP
- virtual_ipaddress {
- 192.168.17.200
- }
- }
③分別按照順序啟動(dòng)主服務(wù)器和備服務(wù)器的keepalived
- shell > service keepalived start
④查看主備服務(wù)器的網(wǎng)卡信息
- #需要通過ip a命令查看 分別在server01和server03查看
- shell > ip a
2.4、模擬故障
模擬服務(wù)器故障宕機(jī),查看是否可以切換服務(wù)到備用機(jī)器。
模擬宕機(jī),關(guān)閉server01 master服務(wù)器,VIP自動(dòng)切換到server03 backup服務(wù)器
- #抓包vrrp
- shell > yum -y install tcpdump
- shell > tcpdump vrrp -n
當(dāng)前名稱:Nginx+Keepalived實(shí)現(xiàn)Web服務(wù)器高可用
路徑分享:http://jinyejixie.com/news22/100622.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、Google、手機(jī)網(wǎng)站建設(shè)、域名注冊(cè)、網(wǎng)站營銷、關(guān)鍵詞優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容