假设我有一张图片的 URL:
www.domain.com/image.jpg
我想要让 image.jpg 实际上由另一台服务器(不同的机器和 IP)提供,
static.domain.com/image.jpg
是否可以这样配置 Apache,使得对 www.domain.com/image.jpg 的任何请求实际上完全由 static.domain.com/image.jpg 提供,但对于用户来说,它看起来像是来自 www.domain.com/image.jpg?
答案1
无论您做什么,如果您尝试使用单个向外的地址提供来自多个服务器的内容,那么您首先必须以某种方式将内容传输到与 www.domain.com 建立的 TCP 连接,因为从技术上讲,将已建立的 TCP 连接“移交”给另一台机器是不可行的。
您唯一的选择是使用重定向 - 这是可检测的。但为什么要这么做呢,除非可能是为了避免破坏传入的超链接?网络从一开始就旨在让单个网页包含来自多个服务器的信息。
所以保持简单!:-)如果您对静态文件使用单独的主机名,那么您将处于良好的状态。
答案2
这可能如果您可以控制服务器的开关,则有可能。您需要使用直接服务器返回。不过,这是一个相当先进的设置,除非您有大量机器,否则可能没有多大意义。
更好的解决方案是直接从 static.domain.com 提供内容。即使您必须支付额外的 SSL 证书费用,但就您花费的时间而言,这样做会便宜得多。如果这不是您的选择,请告诉我们为什么。