2020-10-05

yao_wen_yu發表於2020-10-05

Nginx

1.0 什麼是Nginx?

nginx是一個HTTP請求和反向代理Web伺服器。

特點: 佔用記憶體小,處理併發能力強,報告表明能承受高達50000個 併發連線數。

2.0 反向代理

(1)正向代理:如果把區域網外的Internet想象成一個巨大的資源庫,則區域網中的客戶端要訪問Internet,則需要通過代理伺服器來訪問,這種代理服務就稱為正向代理。需要在客戶端配置代理物件伺服器

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-zks9CUq5-1601906331214)(C:\Users\85477\AppData\Roaming\Typora\typora-user-images\image-20201005195129186.png)]

(2)反向代理:其實客戶端對代理是無感知的,因為客戶端不需要任何配置就可以訪問,我們只需要將請求傳送到反向代理伺服器,由反向代理伺服器去選擇目標伺服器獲取資料後,在返回給客戶端,此時反向代理伺服器和目標伺服器對外就是一個伺服器,暴露的是代理伺服器地址,隱藏了真實伺服器IP地址。

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-EkhqpAFc-1601906331216)(C:\Users\85477\AppData\Roaming\Typora\typora-user-images\image-20201005195453283.png)]

3.0 負載均衡

增加伺服器的數量,將請求分發到各個伺服器上,將原先請求集中到單個伺服器上的情況,改為分發到多個伺服器上,就是負載均衡。

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-3YNMHWnR-1601906331217)(C:\Users\85477\AppData\Roaming\Typora\typora-user-images\image-20201005200159227.png)]

4.0 動靜分離

動靜分離:為了加快網站的解析速度,可以把動態頁面和靜態頁面有不同放入伺服器來解析,加快解析速度,來降低單個伺服器的壓力。

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-06ARNGED-1601906331219)(C:\Users\85477\AppData\Roaming\Typora\typora-user-images\image-20201005200518314.png)]

5.0 在Linux上安裝Nginx

1.連線linux

2.下載安裝包

3.安裝其他素材

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-qGtE5h9T-1601906331220)(C:\Users\85477\AppData\Roaming\Typora\typora-user-images\image-20201005201427544.png)]

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-MMzgWtQe-1601906331222)(C:\Users\85477\AppData\Roaming\Typora\typora-user-images\image-20201005202200531.png)]

yum-y install make zlib zlib-devel gcc-c++ libtool  openssl openssl-devl

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-9OmlHH3j-1601906331223)(C:\Users\85477\AppData\Roaming\Typora\typora-user-images\image-20201005202621985.png)]

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-9fvvEJrt-1601906331223)(C:\Users\85477\AppData\Roaming\Typora\typora-user-images\image-20201005203612836.png)]

6.0Nginx常用命令

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-G2iBPChu-1601906331224)(C:\Users\85477\AppData\Roaming\Typora\typora-user-images\image-20201005204446283.png)]

1.檢視Nginx版本號

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-pnFTMQat-1601906331224)(C:\Users\85477\AppData\Roaming\Typora\typora-user-images\image-20201005204640768.png)]

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-nhWcBchQ-1601906331225)(C:\Users\85477\AppData\Roaming\Typora\typora-user-images\image-20201005204719949.png)]

2.啟動Nginx

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-57rw2oT7-1601906331226)(C:\Users\85477\AppData\Roaming\Typora\typora-user-images\image-20201005204837047.png)]

3.關閉Nginx

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-MMQHtZxm-1601906331227)(C:\Users\85477\AppData\Roaming\Typora\typora-user-images\image-20201005204803539.png)]

4.重新載入Nginx

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-HKnxz84E-1601906331228)(C:\Users\85477\AppData\Roaming\Typora\typora-user-images\image-20201005204943000.png)]

7.0 Nginx 配置檔案

配置檔案位置:

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-Lpsq9lsj-1601906331229)(C:\Users\85477\AppData\Roaming\Typora\typora-user-images\image-20201005205126516.png)]

配置檔案組成

第一部分 全域性塊

從配置檔案開始到events 塊之間的內容,主要會設定一些影響nginx伺服器整體執行的配置指令,主要包括配置執行 Nginx伺服器的使用者(組)、允許生成的 worker process數,程式 PID存放路徑、日誌存放路徑和型別以及配置檔案的引入等。u

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-9nQPFSnm-1601906331231)(C:\Users\85477\AppData\Roaming\Typora\typora-user-images\image-20201005205459464.png)]

這是Nginx伺服器併發處理服務的關鍵配置,worker_processes值越大,可以支援的併發處理量也越多,但是會受到硬體、軟體等裝置的制約

第二部分 events塊

events塊涉及的指令主要影響Nginx伺服器與使用者的網路連線,常用的設定包括是否開啟對多 work process下的網路連線進行序列化,是否允許同時接收多個網路連線,選取哪種事件驅動模型來處理連線請求,每個wordprocess可以同時支援的最大連線數等。

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-wv3KjQui-1601906331231)(C:\Users\85477\AppData\Roaming\Typora\typora-user-images\image-20201005205733022.png)]

就表示每個work process支援的最大連線數為1024.

第三部分 http塊

這算是Nginx伺服器配置中最頻繁的部分,代理、快取和日誌定義等絕大多數功能和第三方模組的配置都在這裡需要注意的是:http塊也可以包括http全域性塊、server塊。

8.0 Nginx 配置例項一:反向代理

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-IDwgIqZN-1601906331232)(C:\Users\85477\AppData\Roaming\Typora\typora-user-images\image-20201005210309478.png)]

具體配置:

(1)在Windows系統的host檔案進行域名和 ip 對應關係配置

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-4MoPZJhK-1601906331232)(C:\Users\85477\AppData\Roaming\Typora\typora-user-images\image-20201005211136260.png)]

(2)在Nginx中進行反向代理配置

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-uyydD42q-1601906331233)(C:\Users\85477\AppData\Roaming\Typora\typora-user-images\image-20201005211444137.png)]

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-34gulgWc-1601906331233)(C:\Users\85477\AppData\Roaming\Typora\typora-user-images\image-20201005211619934.png)]

(3)重啟測試

9.0 Nginx 配置例項二:負載均衡

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-fcULCil2-1601906331234)(C:\Users\85477\AppData\Roaming\Typora\typora-user-images\image-20201005212739359.png)]

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-lAg0ngFu-1601906331235)(C:\Users\85477\AppData\Roaming\Typora\typora-user-images\image-20201005213241590.png)]

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-JogVwPm9-1601906331235)(C:\Users\85477\AppData\Roaming\Typora\typora-user-images\image-20201005213555705.png)]

測試

10.0 Nginx 負載均衡

配置

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-HCkiYsU1-1601906331236)(C:\Users\85477\AppData\Roaming\Typora\typora-user-images\image-20201005214358909.png)]

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-nFZDN5TI-1601906331236)(C:\Users\85477\AppData\Roaming\Typora\typora-user-images\image-20201005214434733.png)]

Nginx 負載均衡的策略

(1)輪詢 預設

(2)權重策略 預設是1 越高被分配的服務就越多

(3)ip_hash 每個請求按訪問ip的hash結果分配,這樣每個訪客固定訪問一個後端伺服器,可以解決session的問題。

(4)fair 根據請求響應時間分配。

相關文章