1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        【建議收藏】神器 Nginx 的學(xué)習(xí)手冊(cè)

        共 4640字,需瀏覽 10分鐘

         ·

        2021-02-11 21:10

        公眾號(hào)關(guān)注“杰哥的IT之旅”,
        選擇“星標(biāo)”,重磅干貨,第一時(shí)間送達(dá)!

        來(lái)源:blog.csdn.net/yujing1314/article/details/107000737
        Nginx 是一個(gè)高性能的 HTTP 和反向代理服務(wù)器,特點(diǎn)是占用內(nèi)存少,并發(fā)能力強(qiáng),事實(shí)上 Nginx 的并發(fā)能力確實(shí)在同類型的網(wǎng)頁(yè)服務(wù)器中表現(xiàn)較好。Nginx 專為性能優(yōu)化而開發(fā),性能是其最重要的要求,十分注重效率,有報(bào)告 Nginx 能支持高達(dá) 50000 個(gè)并發(fā)連接數(shù)。
        01
        Nginx 知識(shí)網(wǎng)結(jié)構(gòu)圖
        Nginx 的知識(shí)網(wǎng)結(jié)構(gòu)圖如下:

        02

        反向代理


        正向代理:局域網(wǎng)中的電腦用戶想要直接訪問(wèn)網(wǎng)絡(luò)是不可行的,只能通過(guò)代理服務(wù)器來(lái)訪問(wèn),這種代理服務(wù)就被稱為正向代理。
        反向代理:客戶端無(wú)法感知代理,因?yàn)榭蛻舳嗽L問(wèn)網(wǎng)絡(luò)不需要配置,只要把請(qǐng)求發(fā)送到反向代理服務(wù)器,由反向代理服務(wù)器去選擇目標(biāo)服務(wù)器獲取數(shù)據(jù),然后再返回到客戶端。

        此時(shí)反向代理服務(wù)器和目標(biāo)服務(wù)器對(duì)外就是一個(gè)服務(wù)器,暴露的是代理服務(wù)器地址,隱藏了真實(shí)服務(wù)器 IP 地址。

        03
        負(fù)載均衡

        客戶端發(fā)送多個(gè)請(qǐng)求到服務(wù)器,服務(wù)器處理請(qǐng)求,有一些可能要與數(shù)據(jù)庫(kù)進(jìn)行交互,服務(wù)器處理完畢之后,再將結(jié)果返回給客戶端。

        普通請(qǐng)求和響應(yīng)過(guò)程如下圖:

        但是隨著信息數(shù)量增長(zhǎng),訪問(wèn)量和數(shù)據(jù)量飛速增長(zhǎng),普通架構(gòu)無(wú)法滿足現(xiàn)在的需求。

        我們首先想到的是升級(jí)服務(wù)器配置,可以由于摩爾定律的日益失效,單純從硬件提升性能已經(jīng)逐漸不可取了,怎么解決這種需求呢?

        我們可以增加服務(wù)器的數(shù)量,構(gòu)建集群,將請(qǐng)求分發(fā)到各個(gè)服務(wù)器上,將原來(lái)請(qǐng)求集中到單個(gè)服務(wù)器的情況改為請(qǐng)求分發(fā)到多個(gè)服務(wù)器,也就是我們說(shuō)的負(fù)載均衡。

        圖解負(fù)載均衡:

        假設(shè)有 15 個(gè)請(qǐng)求發(fā)送到代理服務(wù)器,那么由代理服務(wù)器根據(jù)服務(wù)器數(shù)量,平均分配,每個(gè)服務(wù)器處理 5 個(gè)請(qǐng)求,這個(gè)過(guò)程就叫做負(fù)載均衡。

        04

        動(dòng)靜分離


        為了加快網(wǎng)站的解析速度,可以把動(dòng)態(tài)頁(yè)面和靜態(tài)頁(yè)面交給不同的服務(wù)器來(lái)解析,加快解析的速度,降低由單個(gè)服務(wù)器的壓力。

        動(dòng)靜分離之前的狀態(tài):

        動(dòng)靜分離之后:

        06
        Nginx安裝

        Nginx 如何在 Linux 安裝


        參考鏈接:
        https://blog.csdn.net/yujing1314/article/details/97267369

        Nginx 常用命令


        查看版本:
        ./nginx?-v

        啟動(dòng):
        ./nginx

        關(guān)閉(有兩種方式,推薦使用 ./nginx -s quit):
        ?./nginx?-s?stop
        ?./nginx?-s?quit

        重新加載 Nginx 配置:
        ./nginx?-s?reload

        Nginx 的配置文件


        配置文件分三部分組成:

        ①全局塊

        從配置文件開始到 events 塊之間,主要是設(shè)置一些影響 Nginx 服務(wù)器整體運(yùn)行的配置指令。

        并發(fā)處理服務(wù)的配置,值越大,可以支持的并發(fā)處理量越多,但是會(huì)受到硬件、軟件等設(shè)備的制約。

        ②events 塊

        影響 Nginx 服務(wù)器與用戶的網(wǎng)絡(luò)連接,常用的設(shè)置包括是否開啟對(duì)多 workprocess 下的網(wǎng)絡(luò)連接進(jìn)行序列化,是否允許同時(shí)接收多個(gè)網(wǎng)絡(luò)連接等等。

        支持的最大連接數(shù):

        ③HTTP 塊

        諸如反向代理和負(fù)載均衡都在此配置。
        location[?=?|?~?|?~*?|?^~]?url{

        }

        location 指令說(shuō)明,該語(yǔ)法用來(lái)匹配 url,語(yǔ)法如上
        • =:用于不含正則表達(dá)式的 url 前,要求字符串與 url 嚴(yán)格匹配,匹配成功就停止向下搜索并處理請(qǐng)求。

        • ~:用于表示 url 包含正則表達(dá)式,并且區(qū)分大小寫。

        • ~*:用于表示 url 包含正則表達(dá)式,并且不區(qū)分大小寫。

        • ^~:用于不含正則表達(dá)式的 url 前,要求 Nginx 服務(wù)器找到表示 url 和字符串匹配度最高的 location 后,立即使用此 location 處理請(qǐng)求,而不再匹配。

        • 如果有 url 包含正則表達(dá)式,不需要有 ~ 開頭標(biāo)識(shí)。

        07

        反向代理實(shí)戰(zhàn)


        ①配置反向代理


        目的:在瀏覽器地址欄輸入地址 www.123.com 跳轉(zhuǎn) Linux 系統(tǒng) Tomcat 主頁(yè)面。

        ②具體實(shí)現(xiàn)

        先配置 Tomcat,因?yàn)楸容^簡(jiǎn)單,此處不再贅敘,并在 Windows 訪問(wèn):


        具體流程如下圖:


        修改之前:


        配置如下:
        再次訪問(wèn):


        ③反向代理 2

        目標(biāo):
        • 訪問(wèn) http://192.168.25.132:9001/edu/ 直接跳轉(zhuǎn)到 192.168.25.132:8080

        • 訪問(wèn) http://192.168.25.132:9001/vod/ 直接跳轉(zhuǎn)到 192.168.25.132:8081



        準(zhǔn)備:配置兩個(gè) Tomcat,端口分別為 8080 和 8081,都可以訪問(wèn),端口修改配置文件即可。


        新建文件內(nèi)容分別添加 8080!??!和 8081?。?!

        響應(yīng)如下圖:

        具體配置如下:
        重新加載 Nginx:

        ./nginx?-s?reload


        訪問(wèn):
        實(shí)現(xiàn)了同一個(gè)端口代理,通過(guò) edu 和 vod 路徑的切換顯示不同的頁(yè)面。

        反向代理小結(jié)

        第一個(gè)例子:瀏覽器訪問(wèn) www.123.com,由 host 文件解析出服務(wù)器 ip 地址
        192.168.25.132 www.123.com。

        然后默認(rèn)訪問(wèn) 80 端口,而通過(guò) Nginx 監(jiān)聽 80 端口代理到本地的 8080 端口上,從而實(shí)現(xiàn)了訪問(wèn) www.123.com,最終轉(zhuǎn)發(fā)到 tomcat 8080 上去。

        第二個(gè)例子:
        • 訪問(wèn) http://192.168.25.132:9001/edu/ 直接跳轉(zhuǎn)到 192.168.25.132:8080

        • 訪問(wèn) http://192.168.25.132:9001/vod/ 直接跳轉(zhuǎn)到 192.168.25.132:8081


        實(shí)際上就是通過(guò) Nginx 監(jiān)聽 9001 端口,然后通過(guò)正則表達(dá)式選擇轉(zhuǎn)發(fā)到 8080 還是 8081 的 Tomcat 上去。


        08
        負(fù)載均衡實(shí)戰(zhàn)


        ①修改 nginx.conf,如下圖:

        ②重啟 Nginx:
        ./nginx?-s?reload

        ③在 8081 的 Tomcat 的 webapps 文件夾下新建 edu 文件夾和 a.html 文件,填寫內(nèi)容為 8081!?。?!

        ④在地址欄回車,就會(huì)分發(fā)到不同的 Tomcat 服務(wù)器上:


        負(fù)載均衡方式如下:
        • 輪詢(默認(rèn))。

        • weight,代表權(quán),權(quán)越高優(yōu)先級(jí)越高。

        • fair,按后端服務(wù)器的響應(yīng)時(shí)間來(lái)分配請(qǐng)求,相應(yīng)時(shí)間短的優(yōu)先分配。

        • ip_hash,每個(gè)請(qǐng)求按照訪問(wèn) ip 的 hash 結(jié)果分配,這樣每一個(gè)訪客固定的訪問(wèn)一個(gè)后端服務(wù)器,可以解決 Session 的問(wèn)題。




        09

        動(dòng)靜分離實(shí)戰(zhàn)


        什么是動(dòng)靜分離?把動(dòng)態(tài)請(qǐng)求和靜態(tài)請(qǐng)求分開,不是講動(dòng)態(tài)頁(yè)面和靜態(tài)頁(yè)面物理分離,可以理解為 Nginx 處理靜態(tài)頁(yè)面,Tomcat 處理動(dòng)態(tài)頁(yè)面。


        動(dòng)靜分離大致分為兩種:
        • 純粹將靜態(tài)文件獨(dú)立成單獨(dú)域名放在獨(dú)立的服務(wù)器上,也是目前主流方案。

        • 將動(dòng)態(tài)跟靜態(tài)文件混合在一起發(fā)布,通過(guò) Nginx 分開。


        動(dòng)靜分離圖析:


        實(shí)戰(zhàn)準(zhǔn)備,準(zhǔn)備靜態(tài)文件:

        配置 Nginx,如下圖:

        Nginx 高可用

        如果 Nginx 出現(xiàn)問(wèn)題:
        解決辦法:

        前期準(zhǔn)備:
        • 兩臺(tái) Nginx 服務(wù)器

        • 安裝 Keepalived

        • 虛擬 ip


        安裝 Keepalived:

        [root@192?usr]#?yum?install?keepalived?-y
        [root@192?usr]#?rpm?-q?-a?keepalived
        keepalived-1.3.5-16.el7.x86_64

        修改配置文件:
        [root@192?keepalived]#?cd?/etc/keepalived
        [root@192?keepalived]#?vi?keepalived.conf

        分別將如下配置文件復(fù)制粘貼,覆蓋掉 keepalived.conf,虛擬 ip 為 192.168.25.50。

        對(duì)應(yīng)主機(jī) ip 需要修改的是:
        • smtp_server 192.168.25.147(主)smtp_server 192.168.25.147(備)

        • state MASTER(主) state BACKUP(備)

        global_defs?{
        ???notification_email?{
        [email protected]
        [email protected]
        [email protected]
        ???}
        [email protected]
        ???smtp_server?192.168.25.147
        ???smtp_connect_timeout?30
        ???router_id?LVS_DEVEL?#?訪問(wèn)的主機(jī)地址
        }

        vrrp_script?chk_nginx?{
        ??script?"/usr/local/src/nginx_check.sh"??#?檢測(cè)文件的地址
        ??interval?2???#?檢測(cè)腳本執(zhí)行的間隔
        ??weight?2???#?權(quán)重
        }

        vrrp_instance?VI_1?{
        ????state?BACKUP????#?主機(jī)MASTER、備機(jī)BACKUP????
        ????interface?ens33???#?網(wǎng)卡
        ????virtual_router_id?51?#?同一組需一致
        ????priority?90??#?訪問(wèn)優(yōu)先級(jí),主機(jī)值較大,備機(jī)較小
        ????advert_int?1
        ????authentication?{
        ????????auth_type?PASS
        ????????auth_pass?1111
        ????}
        ????virtual_ipaddress?{
        ????????192.168.25.50??#?虛擬ip
        ????}
        }

        啟動(dòng)代碼如下:
        [root@192?sbin]#?systemctl?start?keepalived.service


        訪問(wèn)虛擬 ip 成功:
        關(guān)閉主機(jī) 147 的 Nginx 和 Keepalived,發(fā)現(xiàn)仍然可以訪問(wèn)。

        原理解析


        如下圖,就是啟動(dòng)了一個(gè) master,一個(gè) worker,master 是管理員,worker是具體工作的進(jìn)程。

        worker 如何工作?如下圖:


        ?????????

        小結(jié)
        ?????????


        worker 數(shù)應(yīng)該和 CPU 數(shù)相等;一個(gè) master 多個(gè) worker 可以使用熱部署,同時(shí) worker 是獨(dú)立的,一個(gè)掛了不會(huì)影響其他的。

        推薦閱讀

        Nginx系列教程(一)| 手把手教你在Linux環(huán)境下搭建Nginx服務(wù)
        Nginx系列教程(二)| 一文帶你讀懂Nginx的正向與反向代理
        Nginx系列教程(三)| 一文帶你讀懂Nginx的負(fù)載均衡
        Nginx系列教程(四)| 一文帶你讀懂Nginx的動(dòng)靜分離
        Nginx系列教程(五)| 利用 Nginx+Keepalived 實(shí)現(xiàn)高可用技術(shù)
        Nginx系列教程(六)| 手把手教你搭建 LNMP 架構(gòu)并部署天空網(wǎng)絡(luò)電影系統(tǒng)
        Nginx 在運(yùn)維領(lǐng)域中的應(yīng)用,看這一篇就夠了
        Nginx從入門到干活,看這一篇足矣
        淺談 Nginx 性能調(diào)優(yōu)
        這些 Nginx 常見異常,幫你快速定位故障!

        瀏覽 66
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            aaaaa级少妇高潮大片免费看 | 搡的我好爽在线观看免费视频 | 国产资源视频 | 四虎精品一区 | chineselesbianxxxxhd | 欧美深夜福利 | 嗯~用力啊~嗯~c我~视频 | 娇妻被邻居灌满精h陈楚 | 操逼操逼操逼操逼操逼操逼操逼操逼操逼 | 91麻豆影院 |