Nginx到底能做什麼?

java高級


Nginx是一款高性能的HTTP和反向代理服務器,同時也支持郵件服務。因其內存佔用小、高併發的特性使得在世界範圍內使用廣泛,像國內互聯網大企業無一例外使用的就是Nginx,比如淘寶還基於Nginx開發了Tengine。

既然Nginx應用這麼廣泛,那它到底能幹些啥呢?下面我列舉一些場景來說明下Nginx的用途:

1、反向代理

在LNMP這種架構模式下,其實就用到了反向代理。因為Nginx它默認只支持靜態資源的請求,比如說PHP腳本也不是由Nginx直接解析的,而是由Nginx反向代理(通過 proxy_pass 指令)到PHP-FPM去解析的。

所以我們通常在Apache、Tomcat、IIS之前加上Nginx,由Nginx反向代理到後端服務器上。

2、負載均衡

當我們的站點訪問量大時,為了緩解單一應用服務器的壓力我們通常會擴容多臺服務器,此時如何把流量分發給不同服務器呢?通過Nginx就可以實現負載均衡了,Nginx負載均衡策略也很多,主要有:RR(輪詢)、weight(權重)、ip_hash(IP Hash)、fair(後端服務器響應時間)、url_hash(URL Hash)這幾種。

3、動靜分離

Nginx本身只支持靜態資源的處理,藉助Nginx我們可以實現動靜分離,即:將靜態請求交給Nginx處理,將動態請求通過轉發給後端服務器。

4、Nginx擴展

通過Nginx擴展可以實現很多功能,如:

  • 圖片在線裁剪;

  • 請求合併;

  • 資源壓縮等。


以上就是我的觀點,對於這個問題大家是怎麼看待的呢?歡迎在下方評論區交流 ~ 我是科技領域創作者,十年互聯網從業經驗,歡迎關注我瞭解更多科技知識!


分享到:


相關文章: