LAMP静态元素过期时间配置防盗链访问控制Directory访问控制FilesMatch

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LAMP静态元素过期时间配置防盗链访问控制Directory访问控制FilesMatch相关的知识,希望对你有一定的参考价值。

                              静态元素过期时间

静态元素:(图片、js、css)

平时我们在浏览器访问网站的时候,如果里面有这些静态元素,浏览器会帮我们把它们缓存下来,再次访问的时候访问的速度就会快。

缓存下来的静态元素到底缓存多久?这个是可以在服务器配置文件中定义的。(定义静态元素过期时间)

304 状态码表示该文件已经缓存到用户电脑。

技术分享图片

定义静态元素的失效日期:

步骤:(针对111.com这台虚拟主机操作)

1.编辑配置文件,添加配置内容;


 增加配置

<IfModule mod_expires.c>   //expires模块m

    ExpiresActive on  //打开该功能的开关

    ExpiresByType image/gif  "access plus 1 days"

    ExpiresByType image/jpeg "access plus 24 hours"

    ExpiresByType image/png "access plus 24 hours"

    ExpiresByType text/css "now plus 2 hour"

    ExpiresByType application/x-javascript "now plus 2 hours"

    ExpiresByType application/javascript "now plus 2 hours"

    ExpiresByType application/x-shockwave-flash "now plus 2 hours"

    ExpiresDefault "now plus 0 min"

</IfModule>



技术分享图片


改完了配置文件需要重新加载一下:

/usr/local/apache2.4/bin/apachectl -t  (检测)

/usr/local/apache2.4/bin/apachectl graceful (加载)


2.检查一下expaire模块是否有打开:

/usr/local/apache2.4/bin/apachectl -M |grep expires

(若无则在httpd配置文件中打开)

vim /usr/local/apache2.4/conf/httpd.conf  (搜索expires )

技术分享图片

修改后技术分享图片



测试:curl -x192.168.136.133:80   111.com/qq.jpg -I


技术分享图片

如果我们把expaire模块关了-->测试

技术分享图片

技术分享图片




                    配置防盗链

技术分享图片

referer的概念:如我们在A网站的一个页面http://a.com.a.html的链接去访问到B网站的一个页面http://b.com/b.html,那么B网站的页面的referer就是http://a.com.a.html。referer其实就是一个网址。


定义防盗链步骤:(对111.com虚拟主机操作)

1.编辑虚拟主机配置文件,增添内容:


 配置文件增加如下内容

  <Directory /data/wwwroot/111.com>  //定义目录

        SetEnvIfNoCase Referer "http://111.com" local_ref   //定义白名单

        SetEnvIfNoCase Referer "http://www.example.com" local_ref  //定义白名单

        SetEnvIfNoCase Referer "^$" local_ref //定义白名单,^$为空的referer,当我们直接在浏览器中输入访问内容(图片)的地址时,referer为空。

        <FilesMatch "\.(txt|doc|mp3|zip|rar|jpg|gif|png)"> //针对这些访问设置防盗链。

            Order Allow,Deny

            Allow from env=local_ref    //这两行的意思是把我们上面定义的referer做允许,其他deny

        </FilesMatch>

    </Directory>

技术分享图片


改完了配置文件需要重新加载一下:

/usr/local/apache2.4/bin/apachectl -t  (检测)

/usr/local/apache2.4/bin/apachectl graceful (加载)



测试:

1.浏览器:

技术分享图片

 (SetEnvIfNoCase Referer "^$" local_ref //定义白名单,^$为空的referer,当我们直接在浏览器中输入访问内容(图片)的地址时,referer为空。)在浏览器测试时是这条内容注释了测试的。


使用curl -e 指定refererc测试


curl -e "http://www.baidu.com/123.txt" -x192.168.136.133:80 111.com/qq.jpg -I


技术分享图片

使用有白名单的referer

技术分享图片





                              访问控制Directory

限制ip访问,只有白名单(允许名单ip)才能就行访问

技术分享图片

步骤:

修改虚拟主机配置:

核心配置文件内容

   <Directory /data/wwwroot/111.com/login/>

        Order deny,allow   //order定义下面先执行deny还是allow

        Deny from all

        Allow from 192.168.136.133  

    </Directory>

  

技术分享图片

(这里限制的是源ip)

改完了配置文件需要重新加载一下:

/usr/local/apache2.4/bin/apachectl -t  (检测)

/usr/local/apache2.4/bin/apachectl graceful (加载)

技术分享图片

(此时我们已经创建了login目录和目录里的index.php文件)


测试:

(curl -x+ip,这里的ip就是我们的目标ip)


技术分享图片

技术分享图片

(只要我们的源ip不是我们定义有允许的ip就不能访问)


技术分享图片


技术分享图片

最左边的就是来源ip



                    访问控制FilesMatch

针对一个链接文件做访问限制,而上面是对一个目录做了访问限制。

技术分享图片

修改配置文件,添加内容:

技术分享图片


改完了配置文件需要重新加载一下:

/usr/local/apache2.4/bin/apachectl -t  (检测)

/usr/local/apache2.4/bin/apachectl graceful (加载)




测试:


技术分享图片







































以上是关于LAMP静态元素过期时间配置防盗链访问控制Directory访问控制FilesMatch的主要内容,如果未能解决你的问题,请参考以下文章

LNMP 静态文件不记录日志和过期时间Nginx防盗链Nginx访问控制解析php

LAMP架构(配置防盗链,目录访问控制,文件/链接访问控制)

lamp-配置防盗链访问控制Directory(针对目录)访问控制(针对单文件)

Nginx 配置静态文件过期时间&防盗链

0814防盗链访问控制代理

四十九Nginx防盗链Nginx访问控制Nginx解析PHP相关配置Nginx代理