一、背景介紹
Nginx (engine x) 是一個高效能的HTTP與反向代理伺服器,Nginx是一款輕量級的Web 伺服器/反向代理伺服器及電子郵件代理伺服器。其特點是佔有內存少,並發能力強,事實上nginx的並發能力確實在同類型的網頁伺服器中表現較好,中國大陸使用nginx網站用戶有:百度、京東、新浪、網易、騰訊、淘寶等。
二.知識剖析
1.代理伺服器
一般是指區域網路內部的機器透過代理伺服器傳送請求到網際網路上的伺服器,代理伺服器一般作用在客戶端。一個完整的代理請求流程為:客戶端先與代理伺服器建立連接,接著根據代理伺服器所使用的代理協議,請求對目標伺服器建立連接、或取得目標伺服器的指定資源。 Web代理程式(proxy)伺服器是網路的中間實體。代理程式位於Web客戶端和Web伺服器之間,扮演「中間人」的角色。 HTTP的代理伺服器即是Web伺服器又是Web客戶端。
2.正向代理程式
正向代理程式是位於客戶端和原始伺服器(origin server)之間的伺服器,為了從原始伺服器取得內容,客戶端向代理程式傳送一個請求並指定目標(原始伺服器),然後代理程式向原始伺服器轉交請求並將獲得的內容傳回給客戶端。客戶端必須要進行一些特別的設定才能使用正向代理。
3.反向代理
反向代理在電腦世界裡,由於單一伺服器的處理客戶端(使用者)請求能力有一個極限,當使用者的存取請求蜂擁而入時,會造成伺服器忙不過來的局面,可以使用多個伺服器來共同分擔成千上萬的用戶請求,這些伺服器提供相同的服務,對於用戶來說,根本感覺不到任何差別。在伺服器端接受客戶端的請求,然後把請求分發給特定的伺服器進行處理,然後再將伺服器的回應結果回饋給客戶端。
4.反向代理的實作
1)需要有一個負載平衡設備來分發使用者請求,將使用者請求分發到空閒的伺服器上;
2)伺服器返回自己的服務到負載平衡設備;
3)負載平衡將伺服器的服務傳回使用者;
三.常見問題
1.正向代理與反向代理有什麼區別
2.為什麼使用反向代理
四.解決方案
答案:1.兩者的差異在於代理的物件不一樣:正向代理代理的物件是客戶端,反向代理代理的物件是服務端。
答:2.方便伺服器分佈擴充。在實際中單一伺服器處理客戶端請求能力有一個極限,當請求量過大,則伺服器忙不過來,因此使用多個伺服器來共同分擔使用者的請求處理,這些伺服器提供相同的服務,對於使用者來說沒有差別。那麼就需要一個負載平衡設備來分發用戶的請求到空閒的伺服器上,然後伺服器返回結果到負載平衡設備上,負載平衡再將其回傳給用戶。這樣當增加/移除某台伺服器時,只需要修改負載平衡的伺服器列表,而不會影響伺服器;安全性。避免ip和連接埠直接暴露在internet,使主機免於被開採安全漏洞,代理伺服器數量有限,安全防護更方便。
五、參考文獻
百度,書籍
六.更多討論
1. 負載幾種演算法?
答:輪詢(Round Robin)法,隨機(Random)法,來源位址雜湊(Hash)法,加權輪詢(Weight Round Robin)法,加權隨機(Weight Random)法,最小連線數(Least Connections)法。
2.設定裡面哪個server name什麼意思?
答案:
Nginx中的server_name指令主要用於配置基於名稱的虛擬主機,server_name指令在接到請求後的匹配順序分別為:
1、準確的server_name匹配
2、以*通配符開始的字串
3、以*通配符結束的字串
4、匹配正規表示式:
3.反向代理與負載平衡有何不同?
答:反向代理是實現負載平衡的一種方法。先談反向代理。使用者在請求時,先把請求發送給代理的伺服器,然後由代理伺服器根據演算法去請求真實的伺服器,最後再回傳給使用者。這種做法,其一是提高了安全性;其二是透過多台的real server分擔了使用者的請求,實現了負載平衡。再談負載平衡。負載平衡的出現,是透過橫向的擴展,盡可能降低單一伺服器的壓力。常見WEB層面的負載平衡的方案有硬體F5、Nginx代理、LVS、各個雲端商的負載平衡服務(如AWS的ELB服務)等。負載平衡後面連的一般是實際提供服務的伺服器,如透過ELB服務,可以做到流量的平均分擔,從而減少單機伺服器的壓力。
更多Nginx相關技術文章,請造訪Nginx教學#欄位學習!
以上是nginx反向代理什麼意思的詳細內容。更多資訊請關注PHP中文網其他相關文章!

NGINXUnit是一個開源應用服務器,支持多種編程語言,提供動態配置、零停機更新和內置負載均衡等功能。 1.動態配置:無需重啟即可修改配置。 2.多語言支持:兼容Python、Go、Java、PHP等。 3.零停機更新:支持不中斷服務的應用更新。 4.內置負載均衡:可將請求分發到多個應用實例。

NGINXUnit優於ApacheTomcat、Gunicorn和Node.js內置HTTP服務器,適用於多語言項目和動態配置需求。 1)支持多種編程語言,2)提供動態配置重載,3)內置負載均衡功能,適合需要高擴展性和可靠性的項目。

NGINXUnit通過其模塊化架構和動態重配置功能提高了應用的性能和可管理性。 1)模塊化設計包括主控進程、路由器和應用進程,支持高效管理和擴展。 2)動態重配置允許在運行時無縫更新配置,適用於CI/CD環境。 3)多語言支持通過動態加載語言運行時實現,提升了開發靈活性。 4)高性能通過事件驅動模型和異步I/O實現,即使在高並發下也保持高效。 5)安全性通過隔離應用進程提高,減少應用間相互影響。

NGINXUnit可用於部署和管理多種語言的應用。 1)安裝NGINXUnit。 2)配置它以運行不同類型的應用,如Python和PHP。 3)利用其動態配置功能進行應用管理。通過這些步驟,你可以高效地部署和管理應用,提升項目效率。

NGINX更适合处理高并发连接,而Apache更适合需要复杂配置和模块扩展的场景。1.NGINX以高性能和低资源消耗著称,适合高并发。2.Apache以稳定性和丰富的模块扩展闻名,适合复杂配置需求。

NGINXUnit通過其動態配置和高性能架構提升應用的靈活性和性能。 1.動態配置允許在不重啟服務器的情況下調整應用配置。 2.高性能體現在事件驅動和非阻塞架構以及多進程模型上,能夠高效處理並發連接和利用多核CPU。

NGINX和Apache都是強大的Web服務器,各自在性能、可擴展性和效率上有獨特的優勢和不足。 1)NGINX在處理靜態內容和反向代理時表現出色,適合高並發場景。 2)Apache在處理動態內容時表現更好,適合需要豐富模塊支持的項目。選擇服務器應根據項目需求和場景來決定。

NGINX適合處理高並發請求,Apache適合需要復雜配置和功能擴展的場景。 1.NGINX採用事件驅動、非阻塞架構,適用於高並發環境。 2.Apache採用進程或線程模型,提供豐富的模塊生態系統,適合複雜配置需求。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

Dreamweaver Mac版
視覺化網頁開發工具

記事本++7.3.1
好用且免費的程式碼編輯器

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

Dreamweaver CS6
視覺化網頁開發工具