網(wǎng)站的訪問(wèn)速度是由多個(gè)因素所共同決定的包括:
成都創(chuàng)新互聯(lián)公司專注于光明企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站建設(shè),商城系統(tǒng)網(wǎng)站開發(fā)。光明網(wǎng)站建設(shè)公司,為光明等地區(qū)提供建站服務(wù)。全流程按需設(shè)計(jì),專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,成都創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)
1)應(yīng)用程序的響應(yīng)速度
2)網(wǎng)絡(luò)帶寬
3)服務(wù)器性能
4)與客戶端之間的網(wǎng)絡(luò)傳輸速度等等
其中最重要的就是Apache本身的響應(yīng)速度,因此提升網(wǎng)站性能第一個(gè)需要著手進(jìn)行處理的便是盡可能地提升Apache的執(zhí)行速度,使用網(wǎng)頁(yè)壓縮可以提升應(yīng)用程序的速度,而且不需要任何成本.
Apache2.x內(nèi)建了mod_deflate這個(gè)模塊,使用gzip壓縮算法。mod_deflate可使用DeflateCompressionLevel指令來(lái)設(shè)置壓縮級(jí)別。該指令的值可為1至(壓縮速度最快,壓縮質(zhì)量最低)9(壓縮速度最慢,壓縮質(zhì)量最高)之間的整數(shù),其默認(rèn)值為6(壓縮速度和壓縮質(zhì)量較為平衡的值)
yum –y remove httpd #編譯安裝前將系統(tǒng)自帶的httpd刪掉
tar xzvf httpd-2.4.2.tar.gz -C /opt #解壓源碼包
tar xzvf apr-util-1.4.1.tar.gz -C /opt #解壓依賴包
tar xzvf apr-1.4.6.tar.gz -C /opt #解壓依賴包,支持apache上層應(yīng)用跨平臺(tái),提供底層接口庫(kù),有效緩解并發(fā)連接進(jìn)程數(shù)
cp -R apr-util-1.4.1/ httpd-2.4.2/srclib/apr-util
cp -R apr-1.4.6/ httpd-2.4.2/srclib/apr-util
yum -y install gcc gcc-c++ pcre pcre-devel zlib-devel #安裝組件包 構(gòu)建編譯環(huán)境
cd httpd-2.4.2/ #進(jìn)入到httpd目錄下進(jìn)行配置,編譯安裝
./configure \
--prefix=/usr/local/httpd \ #指定httpd安裝目錄
--enable-deflate \ #加入mod_deflate模塊
--enable-so \
--enable-rewrite \
--enable-charset-lite \
--enable-cgi
make && make install #進(jìn)行編譯安裝
cd /uar/local/httpd
grep -v "#" bin/apachectl >/etc/init.d/httpd #優(yōu)化啟動(dòng)方式,可以使用service命令管理apache服務(wù)
vim /etc/init.d/httpd
#!/bin/bash
#chkconfig:2345 85 35 #在apache啟動(dòng)腳本里加入必要注釋
#description:Apache is a web server
chmod 755 /etc/init.d/httpd
chkconfig --add httpd #設(shè)置apache服務(wù)開機(jī)自啟
chkconfig httpd on
ln -s /usr/local/httpd/conf/httpd.conf /etc/httpd.conf #在/etc目錄下生成一個(gè)apache主配置文件的鏈接,方便管理。
vim /etc/httpd.conf
vim /etc/named.conf
vim /etc/named.rfc1912.zones
service named start
可以修改apache站點(diǎn)首頁(yè)內(nèi)容,加入圖片信息,
vim /usr/local/httpd/htdocs/index.html
使用瀏覽器輸 入www.benet.com訪問(wèn)網(wǎng)頁(yè),然后使用抓包工具Fiddler進(jìn)行抓包,
在沒(méi)啟用mod_deflate模塊之前顯示內(nèi)容未進(jìn)行壓縮
編譯安裝完成后,mod_deflate模塊需要在httpd.conf文件里啟用才能生效
vim /etc/httpd.conf
LoadModule filter_module modules/mod_filter.so
LoadModule headers_module modules/mod_headers.so #開啟模塊服務(wù)
LoadModule deflate_module modules/mod_deflate.so
在httpd.conf配置文件末尾,加入mod_deflate的配置項(xiàng)。
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml text/javascript #第一行代表對(duì)什么樣的內(nèi)容啟用gzip壓縮
DeflateCompressionLevel 9 #第二行代表壓縮級(jí)別
SetOutputFilter DEFLATE #第三行代表啟用deflate模塊壓對(duì)本站點(diǎn)的輸出進(jìn)行g(shù)zip壓縮
</IfModule>
配置文件修改完成之后可以檢測(cè)是否啟用mod_deflate模塊,然后啟動(dòng)apache服務(wù)
cd /usr/local/httpd/bin
./apachectl –t –D DUMP_MODULES | grep “deflate”
service httpd start
打開Fiddler抓包工具,用瀏覽器訪問(wèn)Apache服務(wù)器的頁(yè)面,可以看到響應(yīng)頭中包含有Content-Encoding:gzip,表示壓縮已經(jīng)生效
網(wǎng)頁(yè)緩存是將一部分經(jīng)常不會(huì)改變或變動(dòng)很少的頁(yè)面緩存,下次瀏覽器再次訪問(wèn)這些頁(yè)面時(shí),不需要再次去下載這些頁(yè)面,從而提高了用戶的訪問(wèn)速度。
Apache的mod_exprices模塊會(huì)自動(dòng)生成頁(yè)面頭部信息中的Express標(biāo)簽和Cache-Control標(biāo)簽,客戶端瀏覽器根據(jù)標(biāo)簽決定下次訪問(wèn)是在本地機(jī)器的緩存中獲取頁(yè)面,不需要向服務(wù)器發(fā)出請(qǐng)求,從而降低客戶端的訪問(wèn)頻率和次數(shù),達(dá)到減少不必要的流量和增加訪問(wèn)速度的目的。
配置mod_exprices模塊的步驟與mod_deflate模塊相似。
在啟用mod_exprices模塊功能之前,可以打開瀏覽器輸入www.benet.com訪問(wèn)網(wǎng)頁(yè),使用Fiddler抓包工具先抓取數(shù)據(jù)包,查看是否緩存設(shè)置expires項(xiàng),可以和啟用mod_exprices模塊之后進(jìn)行對(duì)比
以剛才安裝的apache源碼包為基礎(chǔ),首先關(guān)閉apache服務(wù),加入mod_exprices模塊重新進(jìn)行編譯安裝
service htted stop
cd /opt/httpd-2.4.2/
./configure \
--prefix=/usr/local/httpd \
--enable-deflate \ # 加入mod_deflate模塊
--enable-expires \ #加入mod_exprices模塊
--enable-so \
--enable-rewrite \
--enable-charset-lite \
--enable-cgi
Make && make install #編譯安裝
vim /etc/httpd.conf
LoadModule expires_module modules/mod_expires.so #開啟mod_exprices模塊
在httpd.conf末尾添加mod_exprices模塊設(shè)置項(xiàng)
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 60 seconds" #添加緩存時(shí)間60秒
</IfModule>
然后重新啟動(dòng)apache服務(wù)
service httpd restart
打開Fiddler抓包工具,用瀏覽器訪問(wèn)Apache服務(wù)器的頁(yè)面,可以看到響應(yīng)頭中包含有expires項(xiàng),說(shuō)明緩存已經(jīng)在工作
準(zhǔn)備環(huán)境:
1)客戶端使用Windows系統(tǒng),IP地址192.168.30.100 搭建盜鏈網(wǎng)站www.test.com
2)源主機(jī)redhat6.5系統(tǒng),IP地址192.168.30.15 搭建源網(wǎng)站www.benet.com
開啟internet信息服務(wù)管理器
打開IIS,進(jìn)行站點(diǎn)設(shè)定
新建一個(gè)文件,編寫html格式,將圖片信息指向源主機(jī),并將文件格式修改為html格式,放入站點(diǎn)wwwroot
在hosts文件中加入映射關(guān)系
在瀏覽器中分別輸入www.benet.com,www.test.com進(jìn)行訪問(wèn),可以看到圖片內(nèi)容沒(méi)有差異,
使用Fiddler抓包工具抓取數(shù)據(jù),可以看到先對(duì)www.test.com請(qǐng)求,然后對(duì)www.benet.com/abc.jpg請(qǐng)求,說(shuō)明盜鏈成功
如果沒(méi)有安裝mod_rewrite模塊,需要停止apache服務(wù),重新編譯安裝,在參數(shù)中加入mod_rewrite模塊。
cd httpd-2.4.2/
./configure \
--prefix=/usr/local/httpd \
--enable-deflate \
--enable-so \
--enable-rewrite \ #加入mod_rewrite模塊
--enable-charset-lite \
--enable-cgi
Make && make install
vim /etc/httpd.conf
在站點(diǎn)目錄結(jié)尾加入rewrite設(shè)定
<Directory "/usr/local/httpd/htdocs">
………………………………………………..
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://benet.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://benet.com/$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.benet.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.benet.com/$ [NC]
RewriteRule .*\.(gif|jpg|swf)$ http://www.benet.com/error.png
</Directory >
重新啟動(dòng)apache服務(wù)
清除瀏覽器的緩存,避免從本地讀取緩存內(nèi)容,將error.png這個(gè)圖片移動(dòng)到站點(diǎn)目錄/usr/local/httpd/htdocs ,再次訪問(wèn)網(wǎng)站,如下圖所示
修改httpd.conf配置文件,使httpd-default.conf文件生效,它里面包含了是否返回版本信息的內(nèi)容。
然后修改httpd-default.conf文件
重新啟動(dòng)apache服務(wù),再次訪問(wèn)網(wǎng)頁(yè),使用Fiddler抓包工具抓取數(shù)據(jù)包,可以看到版本信息已經(jīng)隱藏。
文章題目:Apache網(wǎng)頁(yè)優(yōu)化與安全優(yōu)化(網(wǎng)頁(yè)壓縮;網(wǎng)頁(yè)緩存;網(wǎng)頁(yè)防盜
本文來(lái)源:http://www.rwnh.cn/article18/jijjdp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、服務(wù)器托管、、網(wǎng)站制作、定制網(wǎng)站、企業(yè)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)