Nginx是一款自由的、開源的、高效能的HTTP伺服器和反向代理伺服器;同時也是一個IMAP、POP3、SMTP代理伺服器;Nginx可以作為一個HTTP伺服器進行網站的發布處理,另外Nginx可以作為反向代理進行負載平衡的實作。
其將原始程式碼以類BSD許可證的形式發布,因其它的穩定性、豐富的功能集、範例設定檔和低系統資源的消耗而聞名。 2011年6月1日,nginx 1.0.4發布。
Nginx的產生
Apache的發展時期很長,而且是毫無爭議的世界第一大伺服器.它有很多優點:穩定、開源、跨平台等等。它出現的時間太長了,它興起的年代,網路產業遠遠比不上現在。所以它被設計為一個重量級的。它不支援高並發的伺服器。在Apache上運行數以萬計的並發訪問,會導致伺服器消耗大量記憶體。作業系統對其進行進程或執行緒間的切換也消耗了大量的CPU資源,導致HTTP請求的平均回應速度降低。這些都決定了Apache不可能成為高效能WEB伺服器,輕量級高並發伺服器Nginx就應運而生了。
具體這些特性的Nginx火了:
Nginx使用基於事件驅動架構,使得其可以支援數以百萬層級的TCP連接
高度的模組化和自由軟體許可證是的第三方模組層出不窮(這是個開源的時代啊~)
Nginx是一個跨平台伺服器,可以運行在Linux,Windows,FreeBSD,Solaris, AIX ,Mac OS等作業系統上
這些優秀的設計帶來的極大的穩定性
#正向代理
正向代理, "它代理的是客戶端",是位於客戶端和原始伺服器(origin server)之間的伺服器,為了從原始伺服器取得內容,客戶端向代理傳送一個請求並指定目標(原始伺服器),然後代理向原始伺服器轉交請求並將獲得的內容傳回給客戶端。客戶端必須要進行一些特別的設定才能使用正向代理。
正向代理程式的用途:
(1)存取原來無法存取的資源,如穀歌
(2) 可以做緩存,加速存取資源
(3)對用戶端存取授權,上網進行認證
(4)代理程式可以記錄使用者存取記錄(上網行為管理),對外隱藏使用者資訊
反向代理
多個客戶端給伺服器發送的請求,Nginx伺服器接收到之後,按照一定的規則分發給了後端的業務處理伺服器進行處理了。此時~請求的來源也就是客戶端是明確的,但是請求具體由哪台伺服器處理的並不明確了,Nginx扮演的就是一個反向代理角色。
客戶端是無感知代理的存在的,反向代理對外都是透明的,訪問者並不知道自己訪問的是一個代理。因為客戶端不需要任何設定就可以存取。反向代理,"它代理的是服務端",主要用於伺服器叢集分散式部署的情況下,反向代理隱藏了伺服器的資訊。
反向代理程式的作用:
(1)保證內網的安全,通常將反向代理程式作為公網存取位址,Web伺服器是內網
( 2)負載平衡,透過反向代理伺服器來最佳化網站的負載
更多Nginx相關技術文章,請造訪Nginx使用教學欄位進行學習!
以上是nginx開源嗎的詳細內容。更多資訊請關注PHP中文網其他相關文章!