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)訪問原來無法訪問的資源,如Google
(2) 可以做緩存,加速訪問資源
(3)對客戶端訪問授權,上網進行認證
(4)代理可以記錄用戶訪問記錄(上網行為管理),對外隱藏用戶信息
反向代理
多個客戶端給服務器發送的請求,Nginx服務器接收到之后,按照一定的規則分發給了后端的業務處理服務器進行處理了。此時~請求的來源也就是客戶端是明確的,但是請求具體由哪臺服務器處理的并不明確了,Nginx扮演的就是一個反向代理角色。
客戶端是無感知代理的存在的,反向代理對外都是透明的,訪問者并不知道自己訪問的是一個代理。因為客戶端不需要任何配置就可以訪問。反向代理,”它代理的是服務端”,主要用于服務器集群分布式部署的情況下,反向代理隱藏了服務器的信息。
反向代理的作用:
(1)保證內網的安全,通常將反向代理作為公網訪問地址,Web服務器是內網
(2)負載均衡,通過反向代理服務器來優化網站的負載
更多Nginx相關技術文章,請訪問Nginx使用教程欄目進行學習!?