深入淺出Nginx

2021-09-11 12:56:35 字數 1525 閱讀 7393

前言 nginx是一款輕量級的web伺服器、反向**伺服器,由於它的記憶體占用少,啟動極快,高併發能力強,在網際網路專案中廣泛應用。

架構圖上圖基本上說明了當下流行的技術架構,其中nginx有點入口閘道器的味道。

反向**伺服器? 經常聽人說到一些術語,如反向**,那麼什麼是反向**,什麼又是正向**呢?

正向**:

正向**示意圖

反向**:

反向**示意圖

由於防火牆的原因,我們並不能直接訪問谷歌,那麼我們可以借助vpn來實現,這就是乙個簡單的正向**的例子。這裡你能夠發現,正向**「**」的是客戶端,而且客戶端是知道目標的,而目標是不知道客戶端是通過vpn訪問的。

nginx的master-worker模式

nginx程序

啟動nginx後,其實就是在80埠啟動了socket服務進行監聽,如圖所示,nginx涉及master程序和worker程序。

master-worker模式

nginx.conf

思考:nginx如何做到熱部署?

思考:nginx如何做到高併發下的高效處理?

思考:nginx掛了怎麼辦?

keepalived+nginx

我們的主戰場:nginx.conf 很多時候,在開發、測試環境下,我們都得自己去配置nginx,就是去配置nginx.conf。

nginx.conf是典型的分段配置檔案,下面我們來分析下。 虛擬主機

http的server段

訪問結果

反向**【proxy_pass】 所謂反向**,很簡單,其實就是在location這一段配置中的root替換成proxy_pass即可。root說明是靜態資源,可以由nginx進行返回;而proxy_pass說明是動態請求,需要進行**,比如**到tomcat上。

反向**,上面已經說了,過程是透明的,比如說request -> nginx -> tomcat,那麼對於tomcat而言,請求的ip位址就是nginx的位址,而非真實的request位址,這一點需要注意。不過好在nginx不僅僅可以反向**請求,還可以由使用者自定義設定http header。 負載均衡【upstream】 上面的反向**中,我們通過proxy_pass來指定tomcat的位址,很顯然我們只能指定一台tomcat位址,那麼我們如果想指定多台來達到負載均衡呢?

第一,通過upstream來定義一組tomcat,並指定負載策略(iphash、加權論調、最少連線),健康檢查策略(nginx可以監控這一組tomcat的狀態)等。

第二,將proxy_pass替換成upstream指定的值即可。

負載均衡可能帶來的問題?

負載均衡所帶來的明顯的問題是,乙個請求,可以到a server,也可以到b server,這完全不受我們的控制,當然這也不是什麼問題,只是我們得注意的是:使用者狀態的儲存問題,如session會話資訊,不能在儲存到伺服器上。 快取 快取,是nginx提供的,可以加快訪問速度的機制,說白了,在配置上就是乙個開啟,同時指定目錄,讓快取可以儲存到磁碟上。具體配置,大家可以參考nginx官方文件,這裡就不在展開了。

好了,到這裡,nginx的介紹就到這裡了。

深入淺出Nginx

前言 nginx是一款輕量級的web伺服器 反向 伺服器,由於它的記憶體占用少,啟動極快,高併發能力強,在網際網路專案中廣泛應用。架構圖上圖基本上說明了當下流行的技術架構,其中nginx有點入口閘道器的味道。反向 伺服器?經常聽人說到一些術語,如反向 那麼什麼是反向 什麼又是正向 呢?正向 正向 示...

深入淺出nginx

什麼是nginx?nginx 是乙個高效能的http和反向 web伺服器,同時也提供了imap pop3 smtp服務。說到nginx,那自然會聯想到反向 那麼什麼是反向 呢?既然有反向 那肯定也有正向 正向 又是什麼呢?什麼是正向 正向 意思是乙個位於客戶端和原始伺服器 origin server...

Nginx 的深入淺出

1.什麼是nginx nginx是一款高效能的http 伺服器 反向 伺服器及電子郵件 imap pop3 伺服器。由俄羅斯的程式設計師igor sysoev所開發,官方測試nginx能夠支支撐5萬併發鏈結,並且cpu 記憶體等資源消耗卻非常低,執行非常穩定。2.nginx的應用場景 3.nginx...