nginx 能否测试硬链接或符号链接并将浏览器客户端重定向到真实 URL 吗?

nginx 能否测试硬链接或符号链接并将浏览器客户端重定向到真实 URL 吗?

假设 nginx 正在提供由 rsnapshot 创建的静态图像文件夹:/rsnapshots/hourly.0/imageA.png /rsnapshots/hourly.0/imageB.png

因此,如果我到这里: http://example.com/hourly.0/imageA.png,我会看到 ImageA.png

如果文件自上次备份以来没有更改,RSnapshot 将只创建硬链接。因此,图像 imageA.png 没有更改,但 B 没有更改。因此,我最近在 hourly.0 的备份现在将如下所示: /rsnapshots/hourly.0/imageA.png /rsnapshots/hourly.0/imageB.png -> /rsnapshots/hourly.1/imageB.png

imageB.png只是到 /rsnapshots/hourly.1/imageB.png 的一个硬链接(而不是符号链接)。

因此,如果客户要求http://example.com/hourly.0/imageB.png,他们会得到imageB.png,但我可以将他们重定向到:http://example.com/hourly.1/imageB.png,他们会得到相同的图像。

nginx 是否可以 A) 检测硬链接 B) 如果检测到则将客户端重定向到“真实”文件?

编辑:正如 Michael 敏锐地观察到的那样,当涉及硬链接时,没有“真实”文件。它们都只是指向同一文件的指针。在这种情况下,我可以想到对我的问题进行两处修改:1) Nginx 能否在收到请求时探测其他服务器目录,测试文件是否存在,如果它在另一条路径上找到该文件,则将客户端重定向到另一条路径。2) 如果我将问题中的“硬链接”替换为“符号链接”,我是否可以对符号链接进行测试,确定符号链接的位置,然后重定向到符号链接路径?

答案1

据我所知,nginx 无法做到这一点,但还有其他可能的方法,例如:

相关内容