静态元素过期时间

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

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

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

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

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

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

步骤:(针对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>



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


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

/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 )

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

修改后LAMP(6)静态元素过期时间、配置防盗链、访问控制Directory、访问控制FilesMatch...



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


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

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

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

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




                    配置防盗链

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

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>

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


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

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

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



测试:

1.浏览器:

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

 (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


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

使用有白名单的referer

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





                              访问控制Directory

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

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

步骤:

修改虚拟主机配置:

核心配置文件内容

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

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

        Deny from all

        Allow from 192.168.136.133  

    </Directory>

  

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

(这里限制的是源ip)

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

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

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

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

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


测试:

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


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

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

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


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


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

最左边的就是来源ip



                    访问控制FilesMatch

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

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

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

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


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

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

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




测试:


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