Aapache网页优化

一、网页压缩

编译 Apache添加mod_deflate模块

[root@apache ~]# tar zxf httpd-2.4.25.tar.gz -C /usr/src 
[root@apache ~]# cd /usr/src/httpd-2.4.25/ 
[root@apachehttpd-2.4.25]#./configure--prefix=/usr/local/httpd--enable-so--enable-rewrite--enable-charset-l 
ite--enable-cgi--enable-deflate
[root@apache httpd-2.4.25]#make
[root@apache httpd-2.4.25]#make install
[root@apache httpd-2.4.25]#ln -s /usr/local/httpd/bin/* /usr/local/bin

在 httpd.conf 文件,开启 LoadModule deflate_module modules/mod_deflate.so 配置项,在文本末尾添加一下参数。

[root@apache~]# vim /usr/local/httpd/conf/httpd.conf
LoadModule deflate_module modules/mod_deflate.so
<IfModule mod_deflate.c>
        DeflateCompressionLevel 9
        SetOutputFilter DEFLATE
        AddOutputFilterByType DEFLATE text/html text/plain text/xml text/csstext/javascript 
  application/x-javascript application/javascriptapplication/json
        SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary
        #设置不对后缀 gif,jpg,jpeg,png 的图片文件进行压缩
        SetEnvIfNoCase Request_URI .(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary
        #设置不对 exe,tgz,gz 等文件进行压缩
        SetEnvIfNoCase Request_URI .(?:pdf|mov|avi|mp3|mp4|rm)$ no-gzip	dont-vary 
        AddOutputFilterByType DEFLATE text/*
        #设置对文件是文本的内容进行压缩
        AddOutputFilterByType DEFLATE application/x-httpd-php application/x-httpd-fastphp
        #设置 apache 对 php 类型的文件进行压缩
</IfModule>        

检测 httpd.conf 语法,然后重新启动 Apache 服务器,并检查 mod_deflate 模块安装情况。

[root@apache~]# apachectl -t
Syntax OK
[root@apache~]# apachectl restart
[root@apache ~]# apachectl -t -D DUMP_MODULES | grep "deflate"
deflate_module (shared)

二、网页缓存

在 httpd.conf 去 掉 LoadModule expires_module modules/mod_expires.so 前面的#注释,末尾加入以下内容。

[root@apache ~]# vim /usr/local/httpd/conf/httpd.conf
LoadModule expires_module modules/mod_expires.so
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 60 seconds"
</IfMoule>
[root@apache ~]# apachectl -t //检测 httod.conf 语法
Syntax OK

三、隐藏版本信息

修改 httpd.conf 配置文件,使 httpd-default.conf 文件生效,它里面包含了是否返回版本信息的内容。

[root@apache ~]# vim /usr/local/httpd/conf/httpd.conf
Include conf/extra/httpd-default.conf	//去掉前面的#

然后,修改 httpd-default.conf 文件。

[root@apache ~]# vim /usr/local/httpd/conf/extra/httpd-default.conf
ServerTokens Prod	//将原本的Full 改为 Prod

重新启动 Apache 服务,使用火狐浏览器访问 Apache 服务器的 URL 地址,在浏览器中选择“查看元素”可以查看到 Apache 的版本号已隐藏

三、防盗链

Apache 防盗链需要安装 mod_rewrite 模块,安装步骤如下。
配置 mod_rewrite 模块启用,mod_rewrite 模块需要在 httpd.conf 文件启用才能生效

[root@apache conf]# vim httpd.conf
LoadModule rewrite_module modules/mod_rewrite.so	//去掉#注释
<Directory "/usr/local/httpd/htdocs">
AllowOverride ALL	//改为 ALL
RewriteEngine On	//加入 mode_rewrite 模块内容
RewriteCond %{HTTP_REFERER} !^http://aaa.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://aaa.com$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.aaa.com/.*$ [NC] 
RewriteCond %{HTTP_REFERER} !^http://www.aaa.com/$ [NC]
RewriteRule .*\.(gif|jpg|swf)$ http://www.aaa.com/error.png
</Directory>
  • mod_rewrite 模块主要的功能就是实现 URL 的跳转,它的正则表达式是基于 Perl语言,可基于服务器级的(httpd.conf)和目录级的 (.htaccess)两种方式。
  • 基于服务器级的(httpd.conf)有两种方法,一种是在httpd.conf 的全局下直接利用RewriteEngine on 来打开 rewrite 功能;另一种是在局部里利用 RewriteEngine on 来打开rewrite 功能。
  • 基于目录级的(.htaccess),要注意一点就是必须打开此目录的 FollowSymLinks 属性且在.htaccess 里要声明 RewriteEngine on。
  • 开启 rewrite 功能后,需要设置 RewriteCond 指令,它定义了匹配规则。如果符合某个或某几个条件,则执行 RewriteCond 下面紧邻的 RewriteRule 指令。如果不匹配,则后面的规则不再匹配,RewriteRule 则定义需要重定向到的路径。
规则描述
%{HTTP_REFERER}浏览 header 中的链接字段,存放一个链接的 URL,代表是从哪个链接访问所需的网页
!^不以后面的字符串开头
.*$以任意字符结尾
NC不区分大小写
R强制跳转
?匹配 0 到 1 个字符
*匹配 0 到多个字符
+匹配 1 到多个字符
^字符串开始标志
$字符串结束标志
.匹配任何单字符
  • RewriteEngine On 打开了重写引擎
  • “ %{HTTP_REFERER}” : 表示从哪个 URL 来产生请求。
  • “!^ ” : 表示不是以后面的字符串开头。
  • “http://www.kxr.com ” ,是本网站的路径,按整个字符串匹配。
  • “.*$ ” 表示以任意字符结尾。
  • “NC ”表示不区分大小写字母。
    最后的规则是不以“http://www.aaa.com ”为路径,即不是本网站进行访问,后面是任意字符都可以匹配成功,其它几项可对照规则表分析。

如果请求路径被匹配,执行重定
“RewriteRule .*.(gif|jpg|swf)$ http://www.aaa.com/error.png” 。

  • “. ”表示匹配一个字符。
  • “ * ”表示匹配 0 到多个字符,与“ . ”合起来的意思是匹配 1 到多个字符,实际上可以只用“+“表示,这里是为了演示使用方式。
  • “.”在这里表示的是转义字符“.”,因为“. ”在指令中是属于规则字符,有相应的含义, 如果需要匹配,需要在前面加个“\”,其它规则字符如果需要匹配,也做同样处理。
  • “(gif|jpg|swf)”表示匹配“gif”、“jpg”、“swf”任意一个,“$”表示结束。最后的规则是以“.gif”、“.jpg”、“.swf”结尾,前面是 1 到多个字符的字符串,也就是匹配图片类型的文件。
  • “http://www.aaa.com/error.png”:表示转发到这个路径。
    重启服务器,并且清除浏览器的缓存,避免从本地读取缓存内容,复制 error.png 这个图片到工作目录 /usr/local/httpd/htdocs,然后访问网站
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值