apache2 – 自定义etag生成

如何配置apache或nginx服务器以使用我选择的算法发送Etag标头(即不涉及inode,mtime或size)?有没有其他方法来编译新的C模块?

在Apache,ETags are handled as a core feature中.ETag被计算为多个值的散列.您可以在httpd.conf或.htaccess文件中使用FileETag指令来定义要包含在哈希中的值的条件行为,但正如您所指出的,您的选项仅限于:

> INode – 您提供的特定服务器上的文件的索引节点号
> MTime – 提供文件的服务器的时间戳(以毫秒为单位)
>大小 – 文件大小(以字节为单位)
>全部 – 以上全部
>无 – 以上都不是

如果你想要真正自定义ETag生成,那么你最好不要编写Apache模块.但是,如果您需要快速而肮脏的修复,则可以通过将请求路由到PHP脚本并在脚本中附加Etag标头来生成自己的标记.在httpd.conf或.htaccess文件中,路径可能如下所示:

RewriteCond %{REQUEST_FILENAME} \.png$    # This example looks for .png requests
RewriteRule ^(.*)$/gentag.php?path=$1 [B] # ...and routes them to a PHP script

PHP脚本可能如下所示:

相关文章

文章浏览阅读3.7k次,点赞2次,收藏5次。Nginx学习笔记一、N...
文章浏览阅读1.7w次,点赞14次,收藏61次。我们在使用容器的...
文章浏览阅读1.4k次。当用户在访问网站的过程中遇到404错误时...
文章浏览阅读2.7k次。docker 和 docker-compose 部署 nginx+...
文章浏览阅读1.3k次。5:再次启动nginx,可以正常启动,可以...
文章浏览阅读3.1w次,点赞105次,收藏182次。高性能:Nginx ...