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擴展可以實現很多功能,如:
圖片在線裁剪;
請求合併;
資源壓縮等。
以上就是我的觀點,對於這個問題大家是怎麼看待的呢?歡迎在下方評論區交流 ~ 我是科技領域創作者,十年互聯網從業經驗,歡迎關注我瞭解更多科技知識!