Ham*_*raz 7 apache dns cname nginx http2
我不确切知道怎么问,所以我会尝试用一个例子来解释.
我有这些资源example.com,一个HTTP/2启用的服务器:
//example.com/css/file.css
//example.com/js/file.js
//example.com/images/file.png
Run Code Online (Sandbox Code Playgroud)
我想要的是通过cdn.example2.com指向域的别名域加载其中一个文件example.com.因此,HTML中的实际资源应如下所示:
//example.com/css/file.css
//cdn.example2.com/js/file.js -> points to //example.com/js/file.js
//example.com/images/file.png
Run Code Online (Sandbox Code Playgroud)
我的问题是:第二个例子中的所有资源都应该由浏览器通过单个连接加载,因为当没有别名域时它们会被加载吗?
感谢帮助.
如果别名解析为不同的 IP,则无法通过同一连接加载资源(如果我没记错的话,HTTP/2 称为“连接重用”)。从现在开始,这就是 CDN 的问题。
但是,为了让您安心并享受 CDN,连接重用是一件棘手的事情,即使您的所有域都解析到同一 IP,您也可能无法实现它,就像您问题中的情况一样。
为了面向未来,您可能需要确保您的站点已正确配置证书扩展以启用连接重用。
在当前版本的 Firefox 和 Chrome 中,我没有观察到连接重用,即使在精心制作证书之后,当然还要确保两个域指向相同的 IP。
还有一些值得思考的地方:基于 TLS 的 HTTP/2需要 SNI,这仅在打开连接时发生。因此,当您第一次连接到一个域(例如 example.com)时,服务器会获取 SNI 数据。但如果重复使用同一连接向 cdn.example.com 发送请求,服务器将无法获取此类数据。某些服务器或使用场景可能对这种不对称性敏感,这可能与浏览器实现(或不实现)连接重用的方式有关。但这些只是你的猜测,真正的......
| 归档时间: |
|
| 查看次数: |
135 次 |
| 最近记录: |