您好,登錄后才能下訂單哦!
網站的訪問速度是由多個因素所共同決定的包括:
1)應用程序的響應速度
2)網絡帶寬
3)服務器性能
4)與客戶端之間的網絡傳輸速度等等
其中最重要的就是Apache本身的響應速度,因此提升網站性能第一個需要著手進行處理的便是盡可能地提升Apache的執行速度,使用網頁壓縮可以提升應用程序的速度,而且不需要任何成本.
Apache2.x內建了mod_deflate這個模塊,使用gzip壓縮算法。mod_deflate可使用DeflateCompressionLevel指令來設置壓縮級別。該指令的值可為1至(壓縮速度最快,壓縮質量最低)9(壓縮速度最慢,壓縮質量最高)之間的整數,其默認值為6(壓縮速度和壓縮質量較為平衡的值)
yum –y remove httpd #編譯安裝前將系統自帶的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上層應用跨平臺,提供底層接口庫,有效緩解并發連接進程數
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 #安裝組件包 構建編譯環境
cd httpd-2.4.2/ #進入到httpd目錄下進行配置,編譯安裝
./configure \
--prefix=/usr/local/httpd \ #指定httpd安裝目錄
--enable-deflate \ #加入mod_deflate模塊
--enable-so \
--enable-rewrite \
--enable-charset-lite \
--enable-cgi
make && make install #進行編譯安裝
cd /uar/local/httpd
grep -v "#" bin/apachectl >/etc/init.d/httpd #優化啟動方式,可以使用service命令管理apache服務
vim /etc/init.d/httpd
#!/bin/bash
#chkconfig:2345 85 35 #在apache啟動腳本里加入必要注釋
#description:Apache is a web server
chmod 755 /etc/init.d/httpd
chkconfig --add httpd #設置apache服務開機自啟
chkconfig httpd on
ln -s /usr/local/httpd/conf/httpd.conf /etc/httpd.conf #在/etc目錄下生成一個apache主配置文件的鏈接,方便管理。
vim /etc/httpd.conf
vim /etc/named.conf
vim /etc/named.rfc1912.zones
service named start
可以修改apache站點首頁內容,加入圖片信息,
vim /usr/local/httpd/htdocs/index.html
使用瀏覽器輸 入www.benet.com訪問網頁,然后使用抓包工具Fiddler進行抓包,
在沒啟用mod_deflate模塊之前顯示內容未進行壓縮
編譯安裝完成后,mod_deflate模塊需要在httpd.conf文件里啟用才能生效
vim /etc/httpd.conf
LoadModule filter_module modules/mod_filter.so
LoadModule headers_module modules/mod_headers.so #開啟模塊服務
LoadModule deflate_module modules/mod_deflate.so
在httpd.conf配置文件末尾,加入mod_deflate的配置項。
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml text/javascript #第一行代表對什么樣的內容啟用gzip壓縮
DeflateCompressionLevel 9 #第二行代表壓縮級別
SetOutputFilter DEFLATE #第三行代表啟用deflate模塊壓對本站點的輸出進行gzip壓縮
</IfModule>
配置文件修改完成之后可以檢測是否啟用mod_deflate模塊,然后啟動apache服務
cd /usr/local/httpd/bin
./apachectl –t –D DUMP_MODULES | grep “deflate”
service httpd start
打開Fiddler抓包工具,用瀏覽器訪問Apache服務器的頁面,可以看到響應頭中包含有Content-Encoding:gzip,表示壓縮已經生效
網頁緩存是將一部分經常不會改變或變動很少的頁面緩存,下次瀏覽器再次訪問這些頁面時,不需要再次去下載這些頁面,從而提高了用戶的訪問速度。
Apache的mod_exprices模塊會自動生成頁面頭部信息中的Express標簽和Cache-Control標簽,客戶端瀏覽器根據標簽決定下次訪問是在本地機器的緩存中獲取頁面,不需要向服務器發出請求,從而降低客戶端的訪問頻率和次數,達到減少不必要的流量和增加訪問速度的目的。
配置mod_exprices模塊的步驟與mod_deflate模塊相似。
在啟用mod_exprices模塊功能之前,可以打開瀏覽器輸入www.benet.com訪問網頁,使用Fiddler抓包工具先抓取數據包,查看是否緩存設置expires項,可以和啟用mod_exprices模塊之后進行對比
以剛才安裝的apache源碼包為基礎,首先關閉apache服務,加入mod_exprices模塊重新進行編譯安裝
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模塊設置項
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 60 seconds" #添加緩存時間60秒
</IfModule>
然后重新啟動apache服務
service httpd restart
打開Fiddler抓包工具,用瀏覽器訪問Apache服務器的頁面,可以看到響應頭中包含有expires項,說明緩存已經在工作
準備環境:
1)客戶端使用Windows系統,IP地址192.168.30.100 搭建盜鏈網站www.test.com
2)源主機redhat6.5系統,IP地址192.168.30.15 搭建源網站www.benet.com
開啟internet信息服務管理器
打開IIS,進行站點設定
新建一個文件,編寫html格式,將圖片信息指向源主機,并將文件格式修改為html格式,放入站點wwwroot
在hosts文件中加入映射關系
在瀏覽器中分別輸入www.benet.com,www.test.com進行訪問,可以看到圖片內容沒有差異,
使用Fiddler抓包工具抓取數據,可以看到先對www.test.com請求,然后對www.benet.com/abc.jpg請求,說明盜鏈成功
如果沒有安裝mod_rewrite模塊,需要停止apache服務,重新編譯安裝,在參數中加入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
在站點目錄結尾加入rewrite設定
<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 >
重新啟動apache服務
清除瀏覽器的緩存,避免從本地讀取緩存內容,將error.png這個圖片移動到站點目錄/usr/local/httpd/htdocs ,再次訪問網站,如下圖所示
修改httpd.conf配置文件,使httpd-default.conf文件生效,它里面包含了是否返回版本信息的內容。
然后修改httpd-default.conf文件
重新啟動apache服務,再次訪問網頁,使用Fiddler抓包工具抓取數據包,可以看到版本信息已經隱藏。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。