<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                #apache服務器優化 [TOC] ## 配置cronolog進行日志輪詢 ### 下載并安裝cronolog工具 ~~~ cd /usr/local/src/ wget http://cronolog.org/download/cronolog-1.6.2.tar.gz tar xf cronolog-1.6.2.tar.gz cd cronolog-1.6.2 ./configure make && make install pwd ~~~ ### 配置日志輪詢 #### 編輯虛擬配置文件 `vim httpd-vhosts.conf` #### 加入如下內容 `CustomLog "|/usr/local/sbin/cronolog /usr/local/apache/logs/assess_sitename%Y%m%d.log" combined` * * * * * ## 錯誤頁面優雅顯示   可以將404 500等的錯誤信息頁面重定向到網站首頁或其他頁面,提升用戶體驗。    ### 編輯apache主配置文件 `vim httpd.conf` ### 修改如下內容 `ErrorDocument 404 http://www.domain.com` >[info] **注意:**重定向地址支持URL和具體文件 * * * * * ## `mod_defalte` 文件壓縮功能   gzip是把文件先在服務器端進行壓縮然后再傳輸,傳輸完畢后瀏覽器會重新對壓縮過得內容進行解壓縮。這樣可以顯著減少文件傳輸的大小,沒有特殊情況,所有的文本內容都應該被gzip壓縮(html,css,js,xml,txt..)   添加如下內容到httpd.conf或者vhost.conf中 ~~~ <ifmodule mod_deflate.c> DeflateCompressionLevel 9 SetOutputFilter DEFLATE AddOutputFilterByType DEFLATE text/html text/plain text/xml AddOutputFilterByType DEFLATE application/javscript AddOutputFilterByType DEFLATE text/css </ifmodule> ~~~ * * * * * ## mod_expires 緩存功能 添加`Expires:`和`Cache-Control:`頭 ## 更改apache的默認用戶 ### 創建apache用戶,用于子進程和線程 `useradd -M -s /sbin/nologin webadmin` ### 編輯apache的主配置文件 添加或者修改如下內容 ~~~ User webadmin Group webadmin ~~~ >[info] **提示**:最好使用不被人猜出來的用戶,提高安全性。 * * * * * ## worker模式提高并發數 (可以達到2k~5k) 編譯安裝時,使用worker模式 ./configure \ --with-mpm=worker \ >[info] **提示**:worker和prefork兩種模式各有優缺點,細節請查看"apache常用的兩種worker/prefork模式" ## 屏蔽apahce版本等敏感信息 ### 1. 修改配置文件 1. 修改httpd.conf文件,打開httpd-default.conf模塊 >[info] vi /usr/local/apache2/conf/httpd.Conf //找到httpd-default.conf,刪除includes前面的“#”,改成如下 Include conf/extra/httpd-default.conf 2. 修改httpd-default.conf文件中的`ServerSignature Off` 以及 `ServerTokens Prod` 之后 使用`apachectl graceful`重載配置文件,使設置生效。 > 下面是`ServerTokens`的一些可能的賦值: ServerTokens Prod 顯示“Server: Apache” ServerTokens Major 顯示 “Server: Apache/2″ ServerTokens Minor 顯示“Server: Apache/2.2″ ServerTokens Min 顯示“Server: Apache/2.2.17″ ServerTokens OS 顯示 “Server: Apache/2.2.17 (Unix)” ServerTokens Full 顯示 “Server: Apache/2.2.17 (Unix) PHP/5.3.5″ ### 測試結果 #### **修改前** ![](https://box.kancloud.cn/2015-12-23_567ac1a04997b.png) ![](https://box.kancloud.cn/2015-12-23_567ac1aad902e.png) #### **修改后** ![](https://box.kancloud.cn/2015-12-23_567ac1aae6a53.png) ![](https://box.kancloud.cn/2015-12-23_567ac1ab3056a.png) **提示:**設置完上述兩個參數后,還是會在響應頭中顯示`Server:Apache`,要想完全去除這個顯示可以使用下面的方式。 ### 2. 重新編譯安裝apache前修改源文件   進入Apache的源碼目錄下的include目錄,然后編輯ap_release.h這個文件,你會看到有如下變量: ~~~ #define AP_SERVER_BASEVENDOR “Apache Software Foundation” #define AP_SERVER_BASEPROJECT “Apache HTTP Server” #define AP_SERVER_BASEPRODUCT “Apache” #define AP_SERVER_MAJORVERSION_NUMBER 2 #define AP_SERVER_MINORVERSION_NUMBER 2 #define AP_SERVER_PATCHLEVEL_NUMBER 15 #define AP_SERVER_DEVBUILD_BOOLEAN 0 ~~~   可以根據自己需求,修改或隱藏版本號與名字,然后再編譯能夠完全去掉apache等字樣。 * * * * * ## apache目錄文件權限設置(root.root 目錄755 文件644)   apache的網站目錄屬組是root,權限是755,文件屬組是root,權限是644 ~~~ ls -l /var/www/html/ 總用量 17752 drwxr-xr-x 2 root root 4096 12月 12 19:12 bbs drwxr-xr-x 2 root root 4096 12月 13 11:23 blog -rw-r--r-- 1 root root 22 12月 11 22:15 index.html -rw-r--r-- 1 root root 17 12月 11 23:32 index.php ~~~ >[info] **提示:**在網站構架中,應當把資源文件,包括用戶上傳的圖片,附件等和程序分離,最好把上傳程序也分離,這樣就可以從容授權了。 * * * * * ## 開啟apache主配置文件中的httpd-mpm.conf 增加連接數 1. 修改httpd.conf文件,打開http-mpm.conf模塊配置文件 1.1 apache服務為worker模塊的配置 ~~~ [root@luo.centos6.5 /usr/local/apache/conf] # vim extra/httpd-mpm.conf <IfModule mpm_worker_module> StartServers 5 MaxClients 2000 ServerLimit 25 MinSpareThreads 50 MaxSpareThreads 200 ThreadsLimit 200 ThreadsPerChild 100 MaxRequestsPerChild 0 </IfModule> ~~~ >[info] **注意:** `MaxClients <= ServerLimit*ThreadsPerChild`   1.2. apache服務為prefork模式,連接數配置 ~~~ <IfModule mpm_prefork_module> StartServers 10 MinSpareServers 10 MaxSpareServers 15 ServerLimit 2000 MaxClients 2000 MaxRequestsPerChild 10000 </IfModule> ~~~ * * * * * ## 開啟apache防盜鏈功能 ### 主配置文件中增加如下配置 ~~~ <IfModule rewrite_module> RewriteEngine On RewriteCond %{HTTP_REFERER} !^http://domain.com/.*$ [NC] RewriteCond %{HTTP_REFERER} !^http://www.domain.com/.*$ [NC] RewriteRule .*\.(gif|jpg|swf)$ http://www.domain.com [R,NC] # RewriteRule .*\.(gif|jpg|swf)$ http://www.domain.com/about/no.png [R,NC] </IfModule> ~~~ * * * * * ## 禁止目錄Index ~~~ <Directory "/var/www/html"> Options -Indexes FollowSymLinks AllowOverride None Order allow,deny Allow from all </Directory> 或者 <Directory "/var/www/html"> Options FollowSymLinks AllowOverride None Order allow,deny Allow from all </Directory> ~~~ * * * * * ## 禁止用戶覆蓋(重載)配置文件 ~~~ <Directory "/var/www/html"> Options FollowSymLinks AllowOverride None # 禁止用戶覆蓋(重載)配置文件 Order allow,deny Allow from all </Directory> ~~~ >[info] 加快服務器速度,因為它不再為每個請求尋找每個目錄訪問控制文件**.htaccess** * * * * * ## 關閉CGI(Common Gateway Interface 通用網關接口) ~~~ <IfModule alias_module> ScriptAlias /cgi-bin/ "/application/apache2.2.31/cgi-bin/" </IfModule> <Directory "/application/apache2.2.31/cgi-bin"> AllowOverride None Options None Order allow,deny Allow from all </Directory> ~~~ * * * * * ## 避免使用.htaccess文件(分布式配置文件) **默認選項:**`AccessFileName .htaccess` 改為 `# AccessFileName .htaccess`   首先考慮性能,如果AllowOverride啟用了.haccess文件,則apache需要在每個目錄中查找.htaccess文件,因此無論是否真正用到啟用.htaccess文件都會導致服務器性能的下降。   另外對于每一個請求,都需要讀取一次.htaccess文件。   其次是安全考慮,這樣會允許用戶自己修改服務器的配置,這可能會導致某些意想不到的修改,所以請認真考慮是否應道給予用戶這樣的特權。 * * * * * ## apache 的安全模塊 `mod_evasive20`( 防DDOS攻擊) `mod_limittipconn`(針對單站點)配置 `mod_security`(防止SQL注入) * * * * * ## 正確途徑獲取源代碼,勤打apache補丁 ## apache日志授予root 700權限   **不需要在日志目錄給apache用戶讀或者寫權限許可,因為apache的初始進程用戶為root** * * * * * ## 禁止PHP解析指點站點目錄 ~~~ <Directory "/var/www/html/bbs/Uploads"> Options FollowSymLinks AllowOverride None Order allow,deny Allow from all php_flag engine off # 注意這行 </Directory> ~~~ * * * * * ## 盡可能減少HTTP請求數   http請求是需要服務器開銷的,想辦法減少請求自然可以提高網頁速度。   常用的方法是合并css,js(將一個頁面的css和js文件分別合并)以及Image maps和css sprites等,這樣對于瀏覽器而言依然是一個請求,但是開發適合仍然能還原成多個,方便管理和重復引用,yahoo甚至建議將首頁的css和js直接寫在頁面文件里,而不是外部就引用,因為首頁的訪問量實在是太大了,這樣做可以減少兩個請求數,而事實上國內的很多門戶都是這樣做的。   而css sprites是指將頁面上的背景圖合并成一張,然后通過css的background-position屬性定義不同的值來取得他們的背景,一些門戶網站都是這樣做的。 * * * * * ## 使用CDN做網站加速   簡單的講,通過在現有的Internet中增加一層新的網絡哦構架,將網站的內容發布到最接近用戶的cache服務器內,通過DNS負載均衡技術,判斷用戶來源就近訪問cache服務器獲取所需的內容,例如杭州的用戶訪問杭州服務器的內容,北京的用戶訪問北京服務器的內容。   這樣可以有效的減少數據在網絡上傳輸的時間,提高速度。 ## apache程序架構優化 1. 程序頁面服務器 2. 圖片附件服務器 3. 上傳服務器 三者的功能盡量分離。 * 分離最佳方式是分別使用獨立的服務器(需要程序支持) * 次選方案在前段負載均衡器通過 haproxy / nginx 根據目錄或拓展名請求后面對應的服務器。 **例如:** * 請求 `http://www.domain.com/Uploads/2015-12-13/a.jpg` 就轉發給圖片服務器(CDN最好) [根據拓展名分發] * 請求 `http://www.domain.com/upload/index.php/xxxPath`就轉發給上傳服務器(CDN最好) [根據URL路徑分發] * 不符合上述兩個條件的默認都給web服務器。 >[info] **提示:** 此構架也適合nginx、tomcate等構架。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看