1. 程式人生 > >nginx介紹及常用功能

nginx介紹及常用功能

什麼是nginx

nginx跟Apache一樣,是一個web伺服器(網站伺服器),通過HTTP協議提供各種網路服務。

Apache:重量級的,不支援高併發的伺服器。在Apache上執行數以萬計的併發訪問,會導致伺服器消耗大量記憶體。作業系統對其進行程序或執行緒間的切換也消耗了大量的CPU資源,導致HTTP請求的平均響應速度降低。這些都決定了Apache不可能成為高效能WEB伺服器

 nginx:輕量級高併發伺服器

  • Nginx使用基於事件驅動架構,使得其可以支援數以百萬級別的TCP連線
  • 高度的模組化和自由軟體許可證是的第三方模組層出不窮(這是個開源的時代啊~)
  • Nginx是一個跨平臺伺服器,可以執行在Linux, FreeBSD, Solaris, AIX, Mac OS, Windows等作業系統上
  • 這些優秀的設計帶來的極大的穩定性。

nginx的常用功能

參考 https://www.cnblogs.com/wcwnina/p/8728391.html

Nginx是一款自由的、開源的、高效能的HTTP伺服器和反向代理伺服器;同時也是一個IMAP、POP3、SMTP代理伺服器;Nginx可以作為一個HTTP伺服器進行網站的釋出處理,另外nginx可以作為反向代理實現負載均衡。

功能一:http代理,反向代理

  

正向代理:瀏覽器(客戶端)主動將請求傳送給代理伺服器,代理伺服器去訪問國外的網站,然後將訪問到的資料傳遞給我們!

  反向代理:瀏覽器(客戶端)傳送請求,nginx服務收到請求後,可以根據不同的正則匹配,採取不同的轉發策略,將請求轉發給伺服器。並且Nginx對返回結果進行錯誤頁跳轉,異常判斷等。如果被分發的伺服器存在異常,他可以將請求重新轉發給另外一臺伺服器,然後自動去除異常伺服器。

反向代理實現分散式部署,也就是通過部署多臺伺服器來解決訪問人數限制的問題(分散式叢集操作)

 功能二:負載均衡

Nginx提供的負載均衡策略有2種:內建策略和擴充套件策略。內建策略為輪詢,加權輪詢,Ip hash。擴充套件策略,就天馬行空,只有你想不到的沒有他做不到的啦,你可以參照所有的負載均衡演算法,給他一一找出來做下實現。

下圖是3種負載均衡的演算法:

Ip hash演算法,對客戶端請求的ip進行hash操作,然後根據hash結果將同一個客戶端ip的請求分發給同一臺伺服器進行處理,可以解決session不共享的問題

 

 功能三:web快取

Nginx可以對不同的檔案做不同的快取處理,配置靈活,並且支援FastCGI_Cache,主要用於對FastCGI的動態程式進行快取。配合著第三方的ngx_cache_purge,對制定的URL快取內容可以的進行增刪管理。