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快取內容可以的進行增刪管理。