1. 程式人生 > >Nginx實現簡單動靜分離

Nginx實現簡單動靜分離

代理服務器 文件 響應 進行 資源 本地 判斷 技術 文件夾

  筆者最近在開始學提高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實現簡單動靜分離