Apache网页优化
一、网页压缩
1. 检查是否安装mod_ deflate模块
apachectl -t -D DUMP_MODULES | grep "deflate"
2. 编译安装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 && make install
3. 配置mod_deflate模块并启用
vim /usr/local/httpd/conf/httpd.conf
#-----52行-----修改
Listen 192.168.117.40:80
#-----105行-----取消注释
LoadModule deflate_module modules/mod_deflate.so #开启mod_deflate 模块
#-----197行-----取消注释,修改
ServerName www.ng.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 | grep "deflate" #检查 mod_deflate 模块是否已安装
deflate_module (shared) #已安装的正确结果
systemctl start httpd.service
5. 测试mod_deflate压缩生效与否
cd /usr/local/httpd/htdocs
#将图片拖到此目录下
在Linux系统中,打开火狐浏览器,右击点查看元素
选择 网络→重新载入→选择 HTML、WS、其他
访问 http://192.168.117.40 ,查看响应头中包含 Content-Encoding: gzip
进入虚拟机进行验证
二、网页缓存
1. 检查是否安装mod_expires模块
apachectl -t -D DUMP_MODULES | grep "expires"
2. 编译安装Apache添加mod_expires模块
systemctl stop httpd.service
cd /usr/local/httpd/conf
mv httpd.conf httpd.conf.bak2
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_expires 模块
make && make install
3. 配置并启用mod_expires模块
vim /usr/local/httpd/conf/httpd.conf
4. 检查安装情况,启动服务
apachectl -t #验证配置文件的配置是否正确
apachectl -t -D DUMP_MODULES | grep "expires" #检查 mod_deflate 模块是否已安装
deflate_module (shared) #已安装的正确结果
systemctl start httpd.service
5. 测试缓存是否生效
cat /usr/local/httpd/htdocs/index.html
三、隐藏版本信息
vim /usr/local/httpd/conf/httpd.conf
vim /usr/local/httpd/conf/extra/httpd-default.conf
systemctl restart httpd
四、Apache防盗链
1. 盗链过程
再准备一台主机,作为盗链接网站
yum install -y httpd
<html><body><h1>
</h1>
<img src="kasumi.jpg"/> #需要修改图片路径
</body></html>
http://192.168.117.40/kasumi.jpg
echo "192.168.117.40 www.ng.com" >> /etc/hosts
echo "192.168.117.50 www.kk.com" >> /etc/hosts
systemctl restart httpd
2. 防盗链过程
2.1 检查是否安装mod_rewrite模块
apachectl -t -D DUMP_MODULES | grep "rewrite"
2.2 编译安装Apache添加mod_rewrite模块
PS:由于是在上面实验基础上做的,故此步已完成
systemctl stop httpd.service
cd /usr/local/httpd/conf
mv httpd.conf httpd.conf.bak2
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
make && make install
2.3 配置mod_rewrite模块启用
vim /usr/local/httpd/conf/httpd.conf
#224行
<Directory "/usr/local/httpd/htdocs">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
RewriteEngine On #打开 rewrite 功能,加入 mode_rewrite 模块内容
RewriteCond %{HTTP_REFERER} !^http://ng.com/.*$ [NC] #设置匹配规则
RewriteCond %{HTTP_REFERER} !^http://ng.com$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.ng.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.ng.com/$ [NC]
RewriteRule .*\.(gif|jpg|swf)$ http://www.ng.com/error.png #设置跳转动作
systemctl restart httpd