如何使一个静态的URL指向不同的服务器?

即时通讯build立一个file upload网站运行多服务器支持。 当图像被上传时,它们被缩略图并存储在主要的前端服务器上,直到cron执行(每10分钟一次)并将它们移动到存储服务器上,因此在前10分钟,它们将驻留并被服务closures主要的前端服务器。

当一个file upload,用户被赋予了embedded代码…这是一个缩略图链接到完整的大小,这是一个HTML页面。 所以它可能是像http://www.domain.com/temp_content/filename.jpg链接到http://www.domain.com/file-ID

除了10分钟, http://www.domain.com/temp_content/filename.jpg不存在,它将是http://server1.domain.com/thumbs/filename.jpg

如果用户抓住原来的代码…拇指文件将被打破。

我可以移动文件到目的地,没有cron,但是这将需要时间,并将滞后的脚本,直到移动完成。 我也不想让用户运行这样的命令,我宁愿让服务器定期执行它们。

还有什么我可以做的?

我会始终抽象文件名。 它会为你节省很多麻烦。

然后,您可以发出第二个链接(server1.domain.com),因为这是大多数请求将去的地方,然后处理文件尚未使用mod_rewrite移动的边缘情况。 例如:

RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^/?(.*)$ http://www.domain.com/$1 [R=302] 

这将302(暂时)将请求redirect到其他域不存在的文件。

或者,您可以从第二台服务器上的第一台服务器上进行存储。

您可以更改发送给用户的邮件以包含两个URL吗?

您也可以创build一个自定义错误页面,允许用户input所给的URL并自动翻译。