網頁優化
網頁壓縮
gzip壓縮算法對網頁內容進行壓縮後再傳輸到客戶端瀏覽器
作用
-
降低了網絡傳輸的字節數,加快網頁加載的速度
-
節省流量,改善用戶的瀏覽體驗
-
gzip與搜索引擎的抓取工具有着更好的關係
apache實現網頁壓縮的功能模塊
mod_gzip 壓縮比略高、對CPU佔用高些
mod_deflate 速度略快
在apache的不同版本中
apache 1.x
沒用內建網頁壓縮技術,用第三方mod_gzip
apache 2.x
集成了mod_deflate
查看是否安裝壓縮模塊
apachectl -t -D DUMP_MODULES
輸出中沒有相應模塊說明沒用安裝,需重新編譯安裝
添加壓縮模塊
需要在編譯中加入參數–enable-deflate
./configure \
--prefix=/usr/local/httpd \
--enable-so \
--enable-rewrite \
--enable-charset-lite \
--enable-deflate \
--enable-cgi
make && make install
安裝完成後,修改配置文件
# 去註釋
LoadModule headers_module modules/mod_headers.so
LoadModule deflate_module modules/mod_deflate.so
LoadModule filter_module modules/mod_filter.so
# 在末尾添加
<IfModule mod_deflate.c>
# 添加壓縮的文件類型
AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml
# 壓縮等級 1壓縮比最小,處理速度最快,9壓縮比最大,傳輸速度最快
DeflateCompressionLevel 9
SetOutputFilter DEFLATE
</IfModule>
驗證腳本
# 到httpd目錄下
bin/apachectl -t
Syntax OK
# 驗證配置文件成功
網頁緩存
mod_expire模塊配置緩存
查看是否安裝模塊
apachectl -t -D DUMP_MODULES
輸出中沒有相應模塊說明沒用安裝
修改配置文件啓用緩存功能
與網頁壓縮一樣,需要重新編譯,在編譯命令中添加–enable-expires
./configure \
--prefix=/usr/local/httpd \
--enable-so \
--enable-rewrite \
--enable-charset-lite \
--enable-deflate \
--enable-expires \
--enable-cgi
make && make install
修改配置文件
LoadModule expires_module modules/mod_expires.so
# 末尾添加
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 50 seconds"
</IfModule>
驗證腳本
# 到httpd目錄下
bin/apachectl -t
Syntax OK
# 驗證配置文件成功
安全優化
配置防盜鏈
檢測是否安裝mod_rewrite
apachectl -t -D DUMP_MODULES
安裝改模塊也與前面的其他模塊一樣
./configure \
--prefix=/usr/local/httpd \
--enable-so \
--enable-rewrite \
--enable-charset-lite \
--enable-deflate \
--enable-expires \
--enable-rewrite \
--enable-cgi
make && make install
主配置文件修改
# 開啓模塊
LoadModule rewrite_module modules/mod_rewrite.so
<Directory>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
# 開啓網頁重寫功能
RewriteEngine On
# 配置匹配規則
RewriteCond %{HTTP_REFERER} !^httpL//www.test.com/.*$ [NC]
# 設置跳轉動作
RewriteRule .*\. (gif|jpg|swf)$ http//www.test.com/error.png
</Directory>
匹配規則:
!^:不以後面的字符串開頭
.*$:以任意字符結尾
NC:不區分大寫
R:強制跳轉
如果相應變量的值匹配所設置的規則,則逐條往下處理;
如果不匹配,則往後的規則不在匹配
隱藏版本信息
直接修改配置文件
#去註釋配置文件
include conf/extra/httpd-default.conf
修改httpd-default.conf
ServerTokens Prod //只顯示名稱,沒有版本
ServerSignnature Off