Nginx實現簡單動靜分離
阿新 • • 發佈:2017-06-24
代理服務器 文件 響應 進行 資源 本地 判斷 技術 文件夾
筆者最近在開始學提高web性能方面的知識。本文將介紹使用Nginx做分布式部署,實現靜動分離,並且分析性能。
靜動分離,就是將css、js、jpg等靜態資源和jsp等動態資源分開處理,以此提高服務器響應速度,提高性能。
下面給出的例子實現了靜動分離,其中靜態資源,如css、js、jpg等由Nginx服務器處理,直接獲取磁盤資源,動態資源,如jsp等由tomcat服務器處理。
首先配置Nginx。
nginx.conf的具體配置如下:
Nginx服務器作為代理服務器,監聽80端口,判斷如果的訪問動態資源,則由監聽8080端口的tomcat服務器處理,否則訪問本地磁盤html文件夾裏的靜態資源。
啟動nginx服務器和tomcat服務器,在瀏覽器訪問80端口,查看firefox瀏覽器的開發者工具,如下:
可以發現,靜態資源都是直接從磁盤獲取,響應頭都有Cache-Control字段,靜態資源的請求時間均為0ms。
而直接使用8080端口訪問頁面,得到如下:
每個資源都需要花1-3ms來獲取,而且響應頭沒有Cache-Control字段。由此可見,動靜分離已經實現。
同樣使用ab指令進行壓力測試,得到結果如下:
靜動分離:
無靜動分離:
同樣可以看到實現靜動分離的版本的性能比較好,將完成所有請求的總時間*1000(因為數值太小)、吞吐率、傳輸率制作成條形圖對比如下:
性能高低顯而易見的。
上述內容只是nginx最簡單的使用而已,nginx提高性能的內容還有很多,包括緩存等等。更多內容有待學習。
Nginx實現簡單動靜分離