第三篇、調優之路 Apache調優


 1.  簡介

          在第一篇中整合了apache + tomcat ,利用了apache解析靜態文件為tomcat解壓。但是在測試機上發現兩者性能不足,不能充分利用服務器的性能,該篇中將對apache進行性能上調優 。

這里的調優針對的是window 平台下 ,linux下apache的調優后續再說.

 2. apache調優

         2.1 移除不用的模塊

                  apache的功能相當強大,但不是在每個項目中都能用到其所有的功能,其中加載了一些我們通常用不到的模塊,這其實是沒有必要的 。  

         去除不用的模塊方法很簡單,通過#來注釋httpd.conf文件下加載的模塊,切記在注釋加載模塊一個一定一定要Test Configuration 一下,否則到時候出差錯了都不知道從哪里下手了.通常去掉

         的模塊有:  mod_include.so 、mod_autoindex.so等 ,可自行嘗試。當然在性能運行的情況下,不執行該操作.

      

         2.2  設置線程參數

                   在httpd.conf配置中找到 #LoadModule vhost_alias_module modules/mod_vhost_alias.so 在后面加入:

<IfModule mpm_winnt_module>
    ThreadsPerChild      300
    MaxRequestsPerChild    3000
</IfModule>

 

                   ★ ThreadsPerChild   一個進程最多擁有的線程數  range[100-500]    

                   ★ MaxRequestsPerChild 一個線程最多可接受的連接數,默認為0 可能會導致內存泄漏,Apache存在輪詢機制,會自動調節

 

         2.3  啟動Apache輸出壓縮

                     加載mod_deflate.so模塊,去掉#

LoadModule deflate_module modules/mod_deflate.so

 

                    然后在<IfModule mpm_winnt_module>...</IfModule> 后面追加如下配置:

<IfModule mod_deflate.c>
 DeflateCompressionLevel 6
 AddOutputFilterByType DEFLATE text/html text/plain text/xml application/x-httpd-php
 AddOutputFilter DEFLATE js css
</IfModule>

 

           2.4   安全之Deny    

                     通過Deny來禁止若干文件的訪問(提高安全性) ,其用法如下: 

 

         2.5    安全之防止dos攻擊

       存在mod_dosevasive22.dll 可防止網絡上頁面進行dos攻擊(例如:機器人不斷刷新指定網頁,不斷訪問)。 下載該dll文件后放置在modules ,修改httpd.conf文件

在文件尾追加如下文件:

         

LoadModule dosevasive22_module modules/mod_dosevasive22.dll
DOSHashTableSize 3000
DOSPageCount 3
DOSSiteCount 50
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 10

 

       

            其中:              

                ★ DOSHashTableSize 3000 黑名單總數

                ★ DOSPageCount  頁面被攻擊次數為該值時會判斷為dos攻擊

                ★ DOSSiteCount  站點被攻擊次數為該值時會判斷為dos攻擊 

                ★ DOSPageInterval  讀取頁面間隔

                ★ DOSSiteInterval  讀取站點間隔

                ★ DOSBlockingPeriod  訪問IP被封時間間隔

  時間單位為

      配置完成以后關閉apache 然后啟動   

   啟動第一篇中配置的tomcat,訪問http://localhost/WebDemo/ 得到

 

    按住F5不停刷新頁面,得到

       10秒后可繼續訪問。

 

       2.6 修改默認配置參數

        在httpd.conf中搜索httpd-default.conf ,放開對其配置

Include conf/extra/httpd-default.conf

 

       在該文件中存在了對apache的默認配置參數  

       

#
# Timeout: The number of seconds before receives and sends time out.
#
Timeout 300

#
# KeepAlive: Whether or not to allow persistent connections (more than
# one request per connection). Set to "Off" to deactivate.
#
KeepAlive On

 

       先說KeepAlive: 表示用戶請求完成后是否需要維持一個TCP連接  ;

            on  :表示請求完成時保持一個與服務器的TCP連接,如果還有請求,則在該連接中完成,無需重復建立連接,維持的時候為上面設置的Timeout時間(毫秒)  

            off  : 表示請求完成以后立即關閉連接 

      兩者差異 :

    on :需要消耗更多的內存,但是提高訪問速度,在頁面中js,css,img圖片較多的時候建議開啟

           off :對內存消耗少,在頁面每次由app server動態生成時,建議設置為off

#
# MaxKeepAliveRequests: The maximum number of requests to allow
# during a persistent connection. Set to 0 to allow an unlimited amount.
# We recommend you leave this number high, for maximum performance.
#
MaxKeepAliveRequests 100

#
# KeepAliveTimeout: Number of seconds to wait for the next request from the
# same client on the same connection.
#
KeepAliveTimeout 5

 

 

   MaxKeepAliveRequests 不要設置為0 (0為不限制),容易導致內存異常 .服務器性能較高可適當調整,建議保持默認


注釋AccessFileName
#AccessFileName .htaccess

 

 ServerSignature 設置為off 可防止服務器廣播敏感信息 默認為on 


HostnameLookups 設置為on 可減少DNS查詢次數 .

    2.7 監聽端口

        默認情況下 apache 監聽為80 端口,在實際中最好是指定監聽具體的應用對應的 ip地址:80  即:

Listen  xxx.xxx.xxx(具體的ip) :80

 

        因為服務器可能擁有多個ip地址,這樣會倒置安全性降低 。這種情況應該很少見

 

 

    2.8 關聯計算機Office軟件 

        在應用中經常要打開或者下載附件,例如word ,excel 等 可通過一下設置關鍵到本地的Office軟件來打開

        在 AddType application/x-gzip .gz .tgz  后追加

AddType application/vnd.openxmlformats  docx pptx xlsx doc xls ppt txt

 

 

     2.9  清除注釋

          這是最簡單的操作,沒有技術含量,將httpd.conf文件中所有的注釋信息全部刪掉 ,保持一個“純潔”的配置.  嘿嘿...

 

 

     此篇到此結束!

    

     備注:性能優化要通過實際操作來校驗的,不能想當然... 那啥來着 實踐是檢驗真理的唯一標准...

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM