网页优化
网页压缩
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