ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Apache静态元素过期时间和防盗链

2021-08-07 13:01:22  阅读:167  来源: 互联网

标签:过期 local www.111 plus usr Apache com 防盗链 apache2.4


Apache静态元素过期时间

浏览器访问网站的图片时会把静态的文件缓存在本地电脑里,这样下次再访问时就不用去远程下载了。

配置了静态元素过期时间之后会定期清掉文件缓存

要求:第一次访问静态文件状态码为200,之后访问代码为304,将文件缓存到了本地上,通过配置静态元素过期时间实现定期删除静态的文件缓存。

配置静态元素过期时间

1.放开并增加新的模块

vim /usr/local/apache2.4/conf/httpd.conf   //主配置文件
LoadModule expires_module modules/mod_expires.so   //放开expires模块
vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf  //增加expires模块
<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot "/usr/local/apache2.4/docs/www.111.com"
    ServerName www.111.com
    ServerAlias 111.com
    <IfModule mod_expires.c>
        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>
    ErrorLog "logs/www.111.com-error_log"
    CustomLog "logs/www.111.com-access_log" combined
</VirtualHost>
/usr/local/apache2.4/bin/apachectl -t
/usr/local/apache2.4/bin/apachectl graceful

2.对比配置前后的参数信息

[root@antong extra]# curl -xlocalhost:80 www.111.com/images/img.jpg -I  //配置前
HTTP/1.1 200 OK
Date: Sat, 07 Aug 2021 04:17:46 GMT
Server: Apache/2.4.33 (Unix) PHP/5.6.30
Last-Modified: Wed, 04 Aug 2021 18:02:13 GMT
ETag: "ede7-5c8bf9a161340"
Accept-Ranges: bytes
Content-Length: 60903
Content-Type: image/jpeg

[root@antong extra]# curl -xlocalhost:80 www.111.com/images/img.jpg -I  //配置后
HTTP/1.1 200 OK
Date: Sat, 07 Aug 2021 04:20:12 GMT
Server: Apache/2.4.33 (Unix) PHP/5.6.30
Last-Modified: Wed, 04 Aug 2021 18:02:13 GMT
ETag: "ede7-5c8bf9a161340"
Accept-Ranges: bytes
Content-Length: 60903
Cache-Control: max-age=86400    //过期时间
Expires: Sun, 08 Aug 2021 04:20:12 GMT
Content-Type: image/jpeg

Apache防盗链

底层原理:通过限制referer来实现防盗链的功能

会有黑客占用别人服务器的资源显示它们的东西,会被占用压力。

配置防盗链

1.在配置文件添加Referer

vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf  //增加expires模块
<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot "/usr/local/apache2.4/docs/www.111.com"
    ServerName www.111.com
    ServerAlias 111.com
    <Directory /usr/local/apache2.4/docs/www.111.com>
        SetEnvIfNoCase Referer "http://www.111.com" local_ref  //设置白名单
        SetEnvIfNoCase Referer "http://111.com" local_ref
        SetEnvIfNoCase Referer "^$" local_ref       //空的Referer能够直接访问
        <filesmatch "\.(txt|doc|mp3|zip|rar|jpg|gif)">  //定义这些文件不设置白名单
            Order Allow,Deny   //定义一个顺序,先允许或先拒绝。看谁写在前面
            Allow from env=local_ref  //允许写下了前面,允许local_ref访问
        </filesmatch>
    </Directory>
     ErrorLog "logs/www.111.com-error_log"
    CustomLog "logs/www.111.com-access_log" combined
</VirtualHost>
/usr/local/apache2.4/bin/apachectl -t
/usr/local/apache2.4/bin/apachectl graceful

2.curl来查看配置结果

[root@antong extra]# curl -e "http://www.111.com/123.php" -xlocalhost:80 www.111.com/images/img.jpg -I     //因为从白名单跳转过来的可以访问
HTTP/1.1 200 OK
Date: Sat, 07 Aug 2021 04:45:50 GMT
Server: Apache/2.4.33 (Unix) PHP/5.6.30
Last-Modified: Wed, 04 Aug 2021 18:02:13 GMT
ETag: "ede7-5c8bf9a161340"
Accept-Ranges: bytes
Content-Length: 60903
Content-Type: image/jpeg

[root@antong extra]# curl -e "http://www.douxue.com/123.php" -xlocalhost:80 www.111.com/images/img.jpg -I    //因为不是从白名单跳转过来的不可以访问
HTTP/1.1 403 Forbidden
Date: Sat, 07 Aug 2021 04:44:14 GMT
Server: Apache/2.4.33 (Unix) PHP/5.6.30
Content-Type: text/html; charset=iso-8859-1

标签:过期,local,www.111,plus,usr,Apache,com,防盗链,apache2.4
来源: https://www.cnblogs.com/antong/p/15111643.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有