<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          送你一份 Nginx 最佳入門手冊

          共 4148字,需瀏覽 9分鐘

           ·

          2021-01-14 16:29


          作者 |?漸暖°

          來源 |?https://blog.csdn.net/yujing1314/article/details/107000737

          1.Nginx知識網(wǎng)結(jié)構(gòu)圖

          Nginx是一個高性能的HTTP和反向代理服務(wù)器,特點是占用內(nèi)存少,并發(fā)能力強,事實上nginx的并發(fā)能力確實在同類型的網(wǎng)頁服務(wù)器中表現(xiàn)較好

          nginx專為性能優(yōu)化而開發(fā),性能是其最重要的要求,十分注重效率,有報告nginx能支持高達50000個并發(fā)連接數(shù)

          1.1反向代理

          正向代理?正向代理:局域網(wǎng)中的電腦用戶想要直接訪問網(wǎng)絡(luò)是不可行的,只能通過代理服務(wù)器來訪問,這種代理服務(wù)就被稱為正向代理。

          反向代理?反向代理:客戶端無法感知代理,因為客戶端訪問網(wǎng)絡(luò)不需要配置,只要把請求發(fā)送到反向代理服務(wù)器,由反向代理服務(wù)器去選擇目標服務(wù)器獲取數(shù)據(jù),然后再返回到客戶端,此時反向代理服務(wù)器和目標服務(wù)器對外就是一個服務(wù)器,暴露的是代理服務(wù)器地址,隱藏了真實服務(wù)器IP地址

          1.2負載均衡

          客戶端發(fā)送多個請求到服務(wù)器,服務(wù)器處理請求,有一些可能要與數(shù)據(jù)庫進行狡猾,服務(wù)器處理完畢之后,再將結(jié)果返回給客戶端

          普通請求和響應(yīng)過程

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

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

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

          圖解負載均衡

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

          1.3動靜分離

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

          動靜分離之前的狀態(tài)

          動靜分離之后

          2. nginx常用命令

          查看版本

          ./nginx?-v

          啟動

          ./nginx

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

          ?./nginx?-s?stop
          ?./nginx?-s?quit

          重新加載nginx配置

          ./nginx?-s?reload

          3.nginx的配置文件

          配置文件分三部分組成

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

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

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

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

          http塊 諸如反向代理和負載均衡都在此配置

          location指令說明

          • 該語法用來匹配url,語法如下
          location[?=?|?~?|?~*?|?^~]?url{

          }
          1. =:用于不含正則表達式的url前,要求字符串與url嚴格匹配,匹配成功就停止向下搜索并處理請求
          2. ~:用于表示url包含正則表達式,并且區(qū)分大小寫。
          3. ~*:用于表示url包含正則表達式,并且不區(qū)分大瞎寫
          4. ^~:用于不含正則表達式的url前,要求ngin服務(wù)器找到表示url和字符串匹配度最高的location后,立即使用此location處理請求,而不再匹配
          5. 如果有url包含正則表達式,不需要有~開頭標識

          3.1 反向代理實戰(zhàn)

          配置反向代理?目的:在瀏覽器地址欄輸入地址www.123.com跳轉(zhuǎn)linux系統(tǒng)tomcat主頁面

          具體實現(xiàn) 先配置tomcat:因為比較簡單,此處不再贅敘 并在windows訪問

          具體流程

          修改之前

          配置

          再次訪問

          反向代理2

          1.目標 訪問http://192.168.25.132:9001/edu/ 直接跳轉(zhuǎn)到192.168.25.132:8080 訪問http://192.168.25.132:9001/vod/ 直接跳轉(zhuǎn)到192.168.25.132:8081

          2.準備 配置兩個tomcat,端口分別為8080和8081,都可以訪問,端口修改配置文件即可。

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

          響應(yīng)如下

          3.具體配置

          重新加載nginx

          ./nginx?-s?reload

          訪問

          實現(xiàn)了同一個端口代理,通過edu和vod路徑的切換顯示不同的頁面

          3.2 反向代理小結(jié)

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

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

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

          實際上就是通過nginx監(jiān)聽9001端口,然后通過正則表達式選擇轉(zhuǎn)發(fā)到8080還是8081的tomcat上去

          3.3 負載均衡實戰(zhàn)

          1.修改nginx.conf

          2.重啟nginx

          ./nginx?-s?reload

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

          4.在地址欄回車,就會分發(fā)到不同的tomcat服務(wù)器上

          3.負載均衡方式

          • 輪詢(默認)

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

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

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

          3.4 動靜分離實戰(zhàn)

          什么是動靜分離?把動態(tài)請求和靜態(tài)請求分開,不是講動態(tài)頁面和靜態(tài)頁面物理分離,可以理解為nginx處理靜態(tài)頁面,tomcat處理動態(tài)頁面

          動靜分離大致分為兩種:一、純粹將靜態(tài)文件獨立成單獨域名放在獨立的服務(wù)器上,也是目前主流方案;二、將動態(tài)跟靜態(tài)文件混合在一起發(fā)布,通過nginx分開

          動靜分離圖析

          實戰(zhàn)準備?準備靜態(tài)文件

          配置nginx

          4.nginx高可用

          如果nginx出現(xiàn)問題

          解決辦法

          前期準備

          1. 兩臺nginx服務(wù)器
          2. 安裝keepalived
          3. 虛擬ip

          4.1安裝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

          對應(yīng)主機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?#?訪問的主機地址
          }

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

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

          啟動

          [root@192?sbin]#?systemctl?start?keepalived.service

          訪問虛擬ip成功

          關(guān)閉主機147的nginx和keepalived,發(fā)現(xiàn)仍然可以訪問

          5.原理解析

          如下圖,就是啟動了一個master,一個worker,master是管理員,worker是具體工作的進程

          worker如何工作

          小結(jié)

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

          往期推薦

          當(dāng)音樂學(xué)博士搞起編程,用一本書改變了Java世界!

          Spring Boot 2.x基礎(chǔ)教程:使用Flyway管理數(shù)據(jù)庫版本

          因脈脈上的匿名消息,拼多多員工被開除了!

          你一定需要知道的高階JAVA枚舉特性!

          盤點 IDEA2020.3 那些炫酷的插件,超級好用的那種

          不到 20 人的 IT 公司該去嗎?



          瀏覽 18
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  九九偷拍一区 | 理论亚洲成人电影 | 最新中文字幕在线视频 | 免费A片视频 | 欧美操逼网 |