Nginx到底能做什么?
nginx可以作為web服務器、緩存服務器、HTTP代理服務器、負載均衡服務器。
什么是nginxNginx(發音為“ engine-x”)是一種開源軟件,最初被設計為高性能Web服務器。今天,Nginx可以完成其他一些任務,包括緩存服務器,反向代理服務器,負載平衡器等等
web服務器目前主流使用的web服務器軟件,主要有apache、nginx、tomcat、iis等,在全球范圍內來說,Apache是現有的最流行的Web服務器,但是在高流量網站中最流行的Web服務器確實nginx,在我國不管是大中小互聯網公司,主流選擇的也是nginx作為web服務器軟件。一份來自Netcraft的調查中,發現Apache的使用率為31.54%,Nginx的使用率為26.20%。
HTTP代理服務器HTTP代理,分兩類:一種的正向代理,一種是反向代理。
反向代理。就是真實服務器不直接訪問,而是通過代理進行訪問,代理服務器和真實服務器是在同一個網絡環境。對于訪問來說是無感的,代理服務器對于訪問者來說就是提供服務的服務器。基于nginx的反向代理,可以實現分布式(不同子域名訪問不同的服務后端節點)和負載均衡(相同的域名訪問多個相同的后端節點)正向代理。與反向代理類似。不同的是正向代理是客戶端的代理。對于服務端來說,代理就是一個訪問者。網上尋找的HTTP代理就屬于正向代理反向代理和正向代理的區別:
正向代理:針對客戶端而言,代理服務器代理客戶端,轉發請求,并將獲得的內容返回給客戶端。
反向代理:針對客戶端而言,代理服務器就像是原始服務器,代理集群的web節點服務器返回結果。
負載均衡器負載均衡也是Nginx常用的一個功能,基于nginx反向代理。負載均衡其意思就是分攤到多個操作單元上進行執行,例如Web服務器、FTP服務器、企業關鍵應用服務器和其它關鍵任務服務器等,從而共同完成工作任務。
簡單而言就是當有2臺或以上服務器時,根據規則隨機的將請求分發到指定的服務器上處理,負載均衡配置一般都需要同時配置反向代理,通過反向代理跳轉到負載均衡。
Nginx目前支持自帶3種負載均衡策略(輪詢、加權輪詢、IP哈希),還有2種常用的第三方策略(fair、url哈希)。
緩存服務器nginx可以實現圖片、css、js等靜態資源文件的緩存,nginx作為緩存服務器時是搭配nginx作為反向代理服務器一起使用的。當客戶端第一次通過nginx向后端資源服務器請求靜態資源,響應給對應的客戶端同時自身緩存一份,后續如果請求相同的資源,就不需要再次向后端服務器請求了,除非緩存被清理或者緩存過期。
結束語nginx的幾個功能很少單一使用,基本都是幾個功能搭配混合在一起使用。做實際項目中,nginx一般作為七層負載均衡器,實現分布式架構和應用服務器高可用,還可以實現動靜分離,同時緩存靜態資源,減輕后端服務器負載。
由于nginx的模塊化設計,通過第三方模塊,還可以實現其他一些功能,以上都是nginx自帶模塊實現的,如果你還知道nginx可以實現哪些功能,歡迎在評論區留言!
文|技術猿小黃圖|來源于網絡我是技術猿小黃,很高興為您回答,如果您喜歡我的回答,可以關注我,點個贊,謝謝!