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

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

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

上一篇:1047图的深度优先遍历c语言


下一篇:mindspore\lite\examples\train_lenet\model\train_utils.py注解