目錄
- 1. Apache 網(wǎng)頁的壓縮
- 1.1 檢查壓縮模塊
- 1.2 安裝mod_deflate 模塊
- 1.3 配置 mod_deflate 模塊啟用
- 1.4 檢查安裝情況,啟動服務
- 1.5 測試 mod_deflate 壓縮是否生效
- 2. Apache的網(wǎng)頁緩存處理
- 2.1 檢查是否安裝緩存模塊
- 2.2 重新編譯安裝,添加緩存模塊
- 2.3 進行緩存模塊的配置
- 2.4 驗證模塊的安裝,重啟服務
- 2.5 修改測試網(wǎng)頁,進行訪問測試
- 3.隱藏Apache的版本信息
- 3.1 修改httpd的主配置
- 4.Apache 防盜鏈
- 盜鏈實驗展示
- (1) 盜鏈主機訪問被盜鏈主機,竊取圖片網(wǎng)絡路徑
- (2)盜鏈主機設置自己的網(wǎng)站 圖片資源
- (3)盜取后的訪問測試
- 防盜鏈措施演示
- (1)主配配置的修改
- (2)準備一張?zhí)崾颈I鏈者的圖片,放入網(wǎng)頁根目錄中
- (3) 訪問展示
- 總結
1. Apache 網(wǎng)頁的壓縮
在企業(yè)中,部署Apache后只采用默認的配置參數(shù),會引發(fā)網(wǎng)站很多問題,換言之默認配置是針對以前較低的服務器配置的,以前的配置已經(jīng)不適用當今互聯(lián)網(wǎng)時代。
為了適應企業(yè)需求,就需要考慮如何提升Apache的性能與穩(wěn)定性,這就是Apache優(yōu)化的內(nèi)容。
1.1 檢查壓縮模塊
apachectl -t -D DUMP_MODULES | grep "deflate"
1.2 安裝mod_deflate 模塊
如果沒有安裝mod_deflate 模塊,重新編譯安裝 Apache 添加 mod_deflate 模塊
systemctl stop httpd.service cd /usr/local/httpd/conf mv httpd.conf httpd.conf.bak yum -y install gcc gcc-c++ pcre pcre-devel zlib-devel cd /opt/httpd-2.4.29/ ./configure \ --prefix=/usr/local/httpd \ --enable-so \ --enable-rewrite \ --enable-charset-lite \ --enable-cgi \ --enable-deflate make && make install
1.3 配置 mod_deflate 模塊啟用
vim /usr/local/httpd/conf/httpd.conf
–52行–修改
–105行–取消注釋
–197行–取消注釋,修改
–末行添加–
<IfModule mod_deflate.c> AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml text/javascript text/jpg text/png DeflateCompressionLevel 9 SetOutputFilter DEFLATE </IfModule>
1.4 檢查安裝情況,啟動服務
[root@www htdocs]#apachectl -t Syntax OK [root@www htdocs]#apachectl -t -D DUMP_MODULES | grep "deflate" deflate_module (shared) [root@www htdocs]#systemctl start httpd
1.5 測試 mod_deflate 壓縮是否生效
編輯測試網(wǎng)頁:
cd /usr/local/httpd/htdocs vim index.html <html><body><h1>It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!It works!</h1> <img src="game.jpg"/> </body></html>
測試:
方式一:
在Linux系統(tǒng)中,打開火狐瀏覽器,右擊點查看元素
選擇 網(wǎng)絡 —> 選擇 HTML、WS、其他
訪問 http://192.168.80.10 ,雙擊200響應消息查看響應頭中包含 Content-Encoding: gzip
方法二:
在Windows系統(tǒng)中依次安裝 Microsoft.NET4 和fiddler 軟件,打開fiddler 軟件
選擇 inspectors —> 選擇 Headers
瀏覽器訪問 http://192.168.80.10 ,雙擊200響應消息查看是否存在 Content-Encoding: gzip
2. Apache的網(wǎng)頁緩存處理
減少網(wǎng)絡延遲,加快頁面打開速度–緩存比源服務器離客戶端更近,因此,從緩存請求內(nèi)容比從源服務器所用時間更少,緩存的使用能夠明顯加快頁面打開速度,達到更好的體驗。
降低服務器的壓力–給網(wǎng)絡資源設定有效期之后,用戶可以重復使用本地的緩存,減少對源服務器的請求,間接降低服務器的壓力。同時,搜索引擎的爬蟲機器人也能根據(jù)過期機制降低爬取的頻率,也能有效降低服務器的壓力。
減少網(wǎng)絡帶寬損耗–無論對于網(wǎng)站運營者或者用戶,帶寬都代表著金錢,當Web緩存副本被使用時,只會產(chǎn)生極小的網(wǎng)絡流量,可以有效的降低運營成本。
2.1 檢查是否安裝緩存模塊
apachectl -t -D DUMP_MODULES | grep "expires"
2.2 重新編譯安裝,添加緩存模塊
systemctl stop httpd.service cd /usr/local/httpd/conf mv httpd.conf httpd.conf.bak1 yum -y install gcc gcc-c++ pcre pcre-devel zlib-devel cd /opt/httpd-2.4.29/ ./configure \ --prefix=/usr/local/httpd \ --enable-so \ --enable-rewrite \ --enable-charset-lite \ --enable-cgi \ --enable-deflate \ --enable-expires make && make install
2.3 進行緩存模塊的配置
vim /usr/local/httpd/conf/httpd.conf
52行和199行的監(jiān)聽繼續(xù)取消注釋,進行相關修改
–111行–取消注釋
–末行添加–
<IfModule mod_expires.c> ExpiresActive On ExpiresDefault "access plus 60 seconds" </IfModule>
2.4 驗證模塊的安裝,重啟服務
[root@www httpd-2.4.29]#apachectl -t [root@www httpd-2.4.29]#apachectl -t -D DUMP_MODULES | grep "expires" [root@www httpd-2.4.29]#systemctl restart httpd
2.5 修改測試網(wǎng)頁,進行訪問測試
[root@www httpd-2.4.29]#cd /usr/local/httpd/htdocs
vim index.html <html> <body> <h1> this is a game </h1> <img src="games.jpg"/> </body> </html>
訪問測試:
3.隱藏Apache的版本信息
如果我們開啟了Apache服務,那么他人就可以通過F12找到你的Apache版本號,從而利用一些已知的漏洞或者零day漏洞來進行攻擊,這是非常危險的。所以為了減少一點――哪怕是一點點的風險,我們最好選擇隱藏Apache的版本信息。
3.1 修改httpd的主配置
vim /usr/local/httpd/conf/httpd.conf
–491行–取消注釋
vim /usr/local/httpd/conf/extra/httpd-default.conf
–55行–修改
重啟服務,測試訪問:
如果頁面信息沒有刷新成功。可以嘗試先清空歷史記錄中的所有信息,再進行訪問
4.Apache 防盜鏈
互聯(lián)網(wǎng)時代,網(wǎng)站最為關心的問題就是用戶訪問量。而吸引用戶的往往就是新穎的標題,圖片及其內(nèi)容,而承載著這些,需要占用服務器的資源。而有些缺德企業(yè)會將自己網(wǎng)站中圖片重定向到你的網(wǎng)站上,讀取你的圖片,占用著你的帶寬,服務器資源,但訪問量卻被它所占據(jù)。
所以apache防盜鏈的設置很有必要。
盜鏈實驗展示
本實驗中我準備了兩臺虛擬機,一臺是源碼編譯安裝apche服務的主機,作為被盜鏈的主機,域名設置為www.test.com 另一臺為yum安裝apache服務的主機,作為盜鏈的主機,域名設置為www.test1.com
(1) 盜鏈主機訪問被盜鏈主機,竊取圖片網(wǎng)絡路徑
(2)盜鏈主機設置自己的網(wǎng)站 圖片資源
(3)盜取后的訪問測試
注意:本次測試訪問的是盜鏈的主機,探究圖片的來源
防盜鏈措施演示
(1)主配配置的修改
因為本機源碼編譯時,已經(jīng)下載了相關模塊,所以直接修改配置。如果沒有下載相關的模塊,還要進行下載配置。
下載配置方法:
systemctl stop httpd.service cd /usr/local/httpd/conf mv httpd.conf httpd.conf.bak2 yum -y install gcc gcc-c++ pcre pcre-devel zlib-devel cd /opt/httpd-2.4.29/ ./configure \ --prefix=/usr/local/httpd \ --enable-so \ --enable-rewrite \ #加入mod_rewrite 模塊 --enable-charset-lite \ --enable-cgi \ --enable-deflate \ --enable-expires make && make install
修改主配置:
vim /usr/local/httpd/conf/httpd.conf
–157行–取消注釋
–224行–進行配置添加
RewriteCond %{HTTP_REFERER} !^http://www.test.com/.*$ [NC] 的字段含義:
- “%{HTTP_REFERER}” :存放一個鏈接的 URL,表示從哪個鏈接中轉訪問目錄下的靜態(tài)資源。
- “!^” :表示不以后面的字符串開頭。
- “http://www.test.com” :是本網(wǎng)站的路徑,按整個字符串匹配。
- “.*$” :表示以任意字符結尾。
“[NC]” :表示不區(qū)分大小寫字母。
RewriteRule .*\.(gif|jpg|swf)$ http://www.test.com/error.png 的字段含義:
- “.” :表示匹配一個字符。
- “*” :表示匹配 0 到多個字符,與“.”合起來的意思是匹配 0 到多次前面的任意字符,如果是 1 到多次匹配可以用“+”表示。
- “\.” :在這里的“\&;是轉義符,“\.”就代表符號“.”的意思。因為“.”在指令中是屬于規(guī)則字符,有相應的含義, 如果需要匹配,需要在前面加個轉義符“\&;,其它規(guī)則字符如果需要匹配,也做同樣處理。
- “(gif|jpg|swf)” :表示匹配“gif”、“jpg”、“swf”任意一個,“$”表示結束。最后的規(guī)則是以“.gif”、“.jpg”、“.swf”結尾, 前面是1到多個字符的字符串,也就是匹配圖片類型的文件。
- “http://www.test.com/error.png” :表示轉發(fā)到這個路徑 。
(2)準備一張?zhí)崾颈I鏈者的圖片,放入網(wǎng)頁根目錄中
(3) 訪問展示
訪問被盜鏈主機網(wǎng)頁:
訪問盜鏈主機網(wǎng)頁: