一、Apache的网页优化
1)网页压缩
步骤:查看是否安装mod_deflate模块、修改配置文件,启用压缩功能、访问测试
1、 检查是否安装mod_deflate模块
apachecti -t -D DUMP_MODULES l grep “deflate”
2、 若没有安装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 \ #加入mod_deflate模块
make &s make install #编译
3、 配置mod_deflate模块启用
vim /usr/local/httpd/conf/httpd.conf
--52行--修改
Listen 192.198.80 .10:80
--105行--取消注释
LoadModule deflate _module modules/mod_deflate.so #开启mod_deflate模块
--197行--取消注释,修改
ServerName www . kgc.com:80
--末行添加--
<IfModule mod_deflate.c>
AddoutputFilterByType DEFLATE text/html text/plain text/css text/xml text/javascript text/jpg text/png #代表对什么样的内容启用gzip压缩
DeflateCompressionLevel 9 #代表压缩级别,范围为1~9
SetoutputFilter DEFLATE #代表启用deflate模块对本站点的输出进行gzip压缩
</IfModule>
4、 检查安装情况,启动服务
apachectl -t #验证配置文件的配置是否正确
apachectl -t -D DUMP_MODULES l grep "deflate" #检查mod_deflate 模块是否已安装
deflate_module (shared) #已安装的正确结果
systemctl start httpd.service
5、 检查方法
方法一:
在Linux系统中,打开火狐浏览器,右击点查看元素选择网络—>选择HTML、ws、其他
访问http://192.168.17.33 ,双击200响应消息查看响应头中包含Content-Encoding: gzip
方法二:
在windows系统中依次安装 Microsoft.NET4和fiddler软件,打开fiddler 软件选择inspectors —>选择Headers
浏览器访问http://192.168.17.33 ,双击200响应消息查看Content-Encoding: gzip
2)网页缓存
步骤:查看是否安装mod_deflate模块、修改配置文件,启用压缩功能、访问测试
1、 检查是否安装mod_deflate模块
apachecti -t -D DUMP_MODULES l grep “deflate”
2、 若没有安装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 \
--enable-expires #加入mod_expries模块
make &s make install #编译
3、 配置mod_expires模块启用
vim /usr/local/httpd/conf/httpd.conf
--52行--修改
Listen 192.198.80 .10:80
--111行--取消注释
LoadModule deflate _module modules/mod_expires.so #开启mod_expires模块
--199行--取消注释,修改
ServerName www.kgc.com:80
--末行添加--
<IfModule mod_deflate.c>
ExpiresActive On #打开网页缓存功能
ExpiresDefault "access plus 60 seconds" #设置缓存60秒
</IfModule>
4.检查安装情况,启动服务
apachectl -t #验证配置文件的配置是否正确
apachectl -t-D DUMP_MODULES l grep "expires" #检查mod_expires模块是否已安装
expires_module (shared) #已安装的正确结果
systemctl start httpd. service
5.测试缓存是否生效
cat /usr/local/httpd/htdocs/index.html
方法一:
在Linux系统中,打开火狐浏览器,右击点查看元素选择网络—>选择HTML、ws、其他
访问http: / /192.168.80.10 ,双击200消息查看响应头中包含Expires 项
方法二:
在windows系统中依次安装Microsoft.NET4和fiddler软件,打开fiddler 软件选择inspectors —>选择Headers
浏览器访问http: //192.168.80.10 ,双击200消息查看Expires项
二、Apache的安全优化
1)隐藏版本信息
- Apache的版本信息,透露了一定的漏洞信息,从而给网站带来安全隐患
- 生产环境中要配置Apache隐藏版本信息
配置方法
vim /usr/ local/httpd/ conf / httpd.conf
--491行--取消注释
Include conf/extra/httpd-default.conf
vim /usr/local/httpd/conf/extra/httpd-default.conf
--55行--修改
ServerTokens Prod #将原本的Full改为Prod,只显示名称,没有版本
#ServerTokens 表示 Server回送给客户端的响应头域是否包含关于服务器os类型和编译过的模块描述信息。
systemctl restart httpd.service
浏览器访问http:/ /192.168.80.10 ,双击200消息查看Server项
2)Apache防盗链(以模拟图片防盗为例)
1、 检查是否安装mod_rewrite模块
apachecti -t -D DUMP_MODULES l grep “rewrite”
2、 若没有安装mod_rewrite模块,重新编译安装 Apache 添加到 mod_rewrite模块
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-fusr/ local/httpd \
--enable-so \
--enable-rewrite \ #加入mod_rewrite模块
--enable-charset-lite \
--enable-cgi \
--enable-deflate
--enable-expires
make &s make install #编译
3.配置mod_rewrite模块启用
vim /usr/local/httpd/ conf/httpd.conf
--157行--取消注释
LoadModule rewrite_module modules/mod_rewrite.so
--224行--
<Directory " /usr/local/httpd/htdocs">
options Indexes FollowsymLinks
AllowOverride None
Require all granted
RewriteEngine on #打开rewrite功能,加入mode_rewrite模块内容
RewriteCond %{HTTP_REFERER} !^http://kgc.com/ .*$ [NC] #设置匹配规则
RewriteCond %{HTTP_REFERER} !^http://kgc.com$ [NC]
RewriteCond %{HTTP_REFERER} ! ^http://www.kgc.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.kgc.com/$ [NC]
RewriteRule .*\.(gif l jpg l swf) $ http://www.kgc.com/error.png #设置跳转动作
</ Directory>