Apache網(wǎng)頁(yè)的優(yōu)化、安全與防盜鏈圖文詳解
1. Apache 網(wǎng)頁(yè)的壓縮
在企業(yè)中,部署Apache后只采用默認(rèn)的配置參數(shù),會(huì)引發(fā)網(wǎng)站很多問(wèn)題,換言之默認(rèn)配置是針對(duì)以前較低的服務(wù)器配置的,以前的配置已經(jīng)不適用當(dāng)今互聯(lián)網(wǎng)時(shí)代。
為了適應(yīng)企業(yè)需求,就需要考慮如何提升Apache的性能與穩(wěn)定性,這就是Apache優(yōu)化的內(nèi)容。
1.1 檢查壓縮模塊
apachectl -t -D DUMP_MODULES | grep "deflate"

1.2 安裝mod_deflate 模塊
如果沒(méi)有安裝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 檢查安裝情況,啟動(dòng)服務(wù)
[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 測(cè)試 mod_deflate 壓縮是否生效
編輯測(cè)試網(wǎng)頁(yè):
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>

測(cè)試:
方式一:
在Linux系統(tǒng)中,打開(kāi)火狐瀏覽器,右擊點(diǎn)查看元素
選擇 網(wǎng)絡(luò) ---> 選擇 HTML、WS、其他
訪問(wèn) http://192.168.80.10 ,雙擊200響應(yīng)消息查看響應(yīng)頭中包含 Content-Encoding: gzip

方法二:
在Windows系統(tǒng)中依次安裝 Microsoft.NET4 和fiddler 軟件,打開(kāi)fiddler 軟件
選擇 inspectors ---> 選擇 Headers
瀏覽器訪問(wèn) http://192.168.80.10 ,雙擊200響應(yīng)消息查看是否存在 Content-Encoding: gzip
2. Apache的網(wǎng)頁(yè)緩存處理
減少網(wǎng)絡(luò)延遲,加快頁(yè)面打開(kāi)速度--緩存比源服務(wù)器離客戶端更近,因此,從緩存請(qǐng)求內(nèi)容比從源服務(wù)器所用時(shí)間更少,緩存的使用能夠明顯加快頁(yè)面打開(kāi)速度,達(dá)到更好的體驗(yàn)。
降低服務(wù)器的壓力--給網(wǎng)絡(luò)資源設(shè)定有效期之后,用戶可以重復(fù)使用本地的緩存,減少對(duì)源服務(wù)器的請(qǐng)求,間接降低服務(wù)器的壓力。同時(shí),搜索引擎的爬蟲機(jī)器人也能根據(jù)過(guò)期機(jī)制降低爬取的頻率,也能有效降低服務(wù)器的壓力。
減少網(wǎng)絡(luò)帶寬損耗--無(wú)論對(duì)于網(wǎng)站運(yùn)營(yíng)者或者用戶,帶寬都代表著金錢,當(dāng)Web緩存副本被使用時(shí),只會(huì)產(chǎn)生極小的網(wǎng)絡(luò)流量,可以有效的降低運(yùn)營(yí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 進(jìn)行緩存模塊的配置
vim /usr/local/httpd/conf/httpd.conf
52行和199行的監(jiān)聽(tīng)繼續(xù)取消注釋,進(jìn)行相關(guān)修改
--111行--取消注釋

--末行添加--
<IfModule mod_expires.c> ExpiresActive On ExpiresDefault "access plus 60 seconds" </IfModule>

2.4 驗(yàn)證模塊的安裝,重啟服務(wù)
[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 修改測(cè)試網(wǎng)頁(yè),進(jìn)行訪問(wèn)測(cè)試
[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>

訪問(wèn)測(cè)試:

3.隱藏Apache的版本信息
如果我們開(kāi)啟了Apache服務(wù),那么他人就可以通過(guò)F12找到你的Apache版本號(hào),從而利用一些已知的漏洞或者零day漏洞來(lái)進(jìn)行攻擊,這是非常危險(xiǎn)的。所以為了減少一點(diǎn)――哪怕是一點(diǎn)點(diǎn)的風(fēng)險(xiǎn),我們最好選擇隱藏Apache的版本信息。

3.1 修改httpd的主配置
vim /usr/local/httpd/conf/httpd.conf
--491行--取消注釋

vim /usr/local/httpd/conf/extra/httpd-default.conf
--55行--修改

重啟服務(wù),測(cè)試訪問(wèn):
如果頁(yè)面信息沒(méi)有刷新成功??梢試L試先清空歷史記錄中的所有信息,再進(jìn)行訪問(wèn)

4.Apache 防盜鏈
互聯(lián)網(wǎng)時(shí)代,網(wǎng)站最為關(guān)心的問(wèn)題就是用戶訪問(wèn)量。而吸引用戶的往往就是新穎的標(biāo)題,圖片及其內(nèi)容,而承載著這些,需要占用服務(wù)器的資源。而有些缺德企業(yè)會(huì)將自己網(wǎng)站中圖片重定向到你的網(wǎng)站上,讀取你的圖片,占用著你的帶寬,服務(wù)器資源,但訪問(wèn)量卻被它所占據(jù)。
所以apache防盜鏈的設(shè)置很有必要。
盜鏈實(shí)驗(yàn)展示
本實(shí)驗(yàn)中我準(zhǔn)備了兩臺(tái)虛擬機(jī),一臺(tái)是源碼編譯安裝apche服務(wù)的主機(jī),作為被盜鏈的主機(jī),域名設(shè)置為www.test.com 另一臺(tái)為yum安裝apache服務(wù)的主機(jī),作為盜鏈的主機(jī),域名設(shè)置為www.test1.com

(1) 盜鏈主機(jī)訪問(wèn)被盜鏈主機(jī),竊取圖片網(wǎng)絡(luò)路徑

(2)盜鏈主機(jī)設(shè)置自己的網(wǎng)站 圖片資源

(3)盜取后的訪問(wèn)測(cè)試
注意:本次測(cè)試訪問(wèn)的是盜鏈的主機(jī),探究圖片的來(lái)源

防盜鏈措施演示
(1)主配配置的修改
因?yàn)楸緳C(jī)源碼編譯時(shí),已經(jīng)下載了相關(guān)模塊,所以直接修改配置。如果沒(méi)有下載相關(guān)的模塊,還要進(jìn)行下載配置。
下載配置方法:
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行--進(jìn)行配置添加

RewriteCond %{HTTP_REFERER} !^http://www.test.com/.*$ [NC] 的字段含義:
- “%{HTTP_REFERER}” :存放一個(gè)鏈接的 URL,表示從哪個(gè)鏈接中轉(zhuǎn)訪問(wèn)目錄下的靜態(tài)資源。
- “!^” :表示不以后面的字符串開(kāi)頭。
- “http://www.test.com” :是本網(wǎng)站的路徑,按整個(gè)字符串匹配。
- “.*$” :表示以任意字符結(jié)尾。
“[NC]” :表示不區(qū)分大小寫字母。
RewriteRule .*\.(gif|jpg|swf)$ http://www.test.com/error.png 的字段含義:
- “.” :表示匹配一個(gè)字符。
- “*” :表示匹配 0 到多個(gè)字符,與“.”合起來(lái)的意思是匹配 0 到多次前面的任意字符,如果是 1 到多次匹配可以用“+”表示。
- “\.” :在這里的“\”是轉(zhuǎn)義符,“\.”就代表符號(hào)“.”的意思。因?yàn)?ldquo;.”在指令中是屬于規(guī)則字符,有相應(yīng)的含義, 如果需要匹配,需要在前面加個(gè)轉(zhuǎn)義符“\”,其它規(guī)則字符如果需要匹配,也做同樣處理。
- “(gif|jpg|swf)” :表示匹配“gif”、“jpg”、“swf”任意一個(gè),“$”表示結(jié)束。最后的規(guī)則是以“.gif”、“.jpg”、“.swf”結(jié)尾, 前面是1到多個(gè)字符的字符串,也就是匹配圖片類型的文件。
- “http://www.test.com/error.png” :表示轉(zhuǎn)發(fā)到這個(gè)路徑 。
(2)準(zhǔn)備一張?zhí)崾颈I鏈者的圖片,放入網(wǎng)頁(yè)根目錄中

(3) 訪問(wèn)展示
訪問(wèn)被盜鏈主機(jī)網(wǎng)頁(yè):

訪問(wèn)盜鏈主機(jī)網(wǎng)頁(yè):

總結(jié)
到此這篇關(guān)于Apache網(wǎng)頁(yè)的優(yōu)化、安全與防盜鏈的文章就介紹到這了,更多相關(guān)Apache網(wǎng)頁(yè)優(yōu)化 安全與防盜鏈內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用Apache?Hudi?加速傳統(tǒng)的批處理模式的方法
這篇文章主要介紹了Apache?Hudi?如何加速傳統(tǒng)的批處理模式,借助Apache Hudi,我們希望在將數(shù)據(jù)攝取到數(shù)據(jù)湖中的同時(shí),找到更好的重復(fù)數(shù)據(jù)刪除和數(shù)據(jù)版本控制優(yōu)化解決方案,需要的朋友可以參考下2022-04-04
Linux上查看用戶創(chuàng)建日期的幾種方法總結(jié)
在Linux系統(tǒng)中,如何找到用戶創(chuàng)建的時(shí)間呢?下面這篇文章就來(lái)給大家介紹了關(guān)于在Linux上如何查看用戶創(chuàng)建日期的幾種方法,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-05-05
類Linux環(huán)境安裝jdk1.8及環(huán)境變量配置詳解
如何在linux系統(tǒng)中安裝jdk1.8?很多小伙伴都不知道在linux系統(tǒng)中怎么安裝jdk,下面,小編就為大家介紹下在linux系統(tǒng)中安裝jdk1.8方法。2019-09-09
在linux中設(shè)置tomcat開(kāi)機(jī)自啟動(dòng)的方法
由于各種各樣的原因,服務(wù)器有重啟的可能,這樣tomcat就需要配置成開(kāi)機(jī)自動(dòng)啟動(dòng),否則每次重啟后就需要連遠(yuǎn)程手動(dòng)啟動(dòng)tomcat,如果服務(wù)器被迫重啟,而技術(shù)人員又不能及時(shí)運(yùn)行tomcat,那么后果很嚴(yán)重,所以本文給大家介紹了在linux中設(shè)置tomcat開(kāi)機(jī)自啟動(dòng)的方法2024-02-02
CentOS虛擬機(jī)克隆后無(wú)法上網(wǎng)(網(wǎng)卡信息不一致)問(wèn)題的解決方法
這篇文章主要為大家詳細(xì)介紹了CentOS虛擬機(jī)克隆后無(wú)法上網(wǎng),即網(wǎng)卡信息不一致問(wèn)題的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-04-04
apache tomcat 一個(gè)網(wǎng)站多域名的實(shí)現(xiàn)方法
因此處是進(jìn)行多域名設(shè)置,所以 Apache 與 tomcat的結(jié)合沒(méi)有詳述,此處只是設(shè)置多域名的方法2009-02-02
Centos7 格式化分區(qū)并掛載的實(shí)現(xiàn)
這篇文章主要介紹了Centos7 格式化分區(qū)并掛載的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12
linux查看服務(wù)器開(kāi)放的端口和啟用的端口多種方式
Nmap可以掃描網(wǎng)絡(luò)中的處于活動(dòng)狀態(tài)的主機(jī)、開(kāi)放端口、操作系統(tǒng)版本和服務(wù)檢測(cè)以及執(zhí)行隱匿方式的信息掃描,這篇文章主要介紹了linux查看服務(wù)器開(kāi)放的端口和啟用的端口五種方式,需要的朋友可以參考下2022-08-08

