我们的网络包含越来越多的 iOS 设备,所有设备的配置都非常相似。所有互联网访问均通过透明代理进行。
我们发现 iOS 更新和一些免费应用程序在代理上缓存得很好,但任何付费应用程序都无法正确缓存(因为它们似乎对 Apple ID 加密了(?))。
我只是想知道是否有任何方法可以解决这个问题,我们可以缓存付费应用程序,这样它们会被购买 n 次,但每次都是从代理缓存而不是从互联网下载。除了带宽上限之外,直接从互联网下载会减慢所有人的速度,无论公平排队和相关“修复”如何。
我知道这种情况不太可能发生,但我认为在研究其他解决方案(例如 QoS)之前,没有什么可失去的,反而会有所收获。
答案1
您要缓存的数据并非旨在被缓存。它特定于正在下载它们的用户。(在下载付费应用程序时对其进行缓存也是窃取它们的好方法。)
这就是为什么原始服务器发送类似Cache-Control: private
或no-cache
与之一起的标头,以明确指示下游缓存(如代理服务器)不要缓存数据。
某些缓存(例如 squid)提供了覆盖这些指令的方法;由于您没有说明您使用的是哪种缓存,如果您确实决心要这样做,请参阅您的文档以了解详细信息。(但请不要这样做。这实际上会破坏依赖于此行为的其他所有网站。)