缓存 WebSocket

标签 caching ssl websocket varnish haproxy

我想到的一个问题是可以从一开始就缓存网络套接字吗? 在我的拓扑中,我在通过双 ISP 连接连接到互联网的 HAProxy 服务器后面有 2 个 Apache 服务器(带有 Google PageSpeed 模块)。我的用户正在使用带有动态和静态 Web 内容的 xxx.com 端,这些内容目前未被缓存(因为 Varnish 不支持 SSL/TLS)

我的计划是将 varnish 放在运行 HAProxy 的同一台机器上,并将它(varnish 服务器)用作 HAProxy 的后盾。

所以最后我会有这样的东西:

HAProxy(使用 SSL)+ Varnish -> Apache 1 或 Apache 2 作为网络服务器后端 HAProxy(使用 SSL)-> Jetty 1 或 Jetty 2 作为 websockets 后端

Jetty以Mongo+MqSL+Neo4j为DB后端连接到Jboss应用服务器。

这将为我提供使用 Varnish 缓存动态和静态连接、使用 HAProxy 保持 SSL 并保持拓扑清洁的好方法。

但是,我的解决方案中还有另一个关键服务器: 我正在使用 Jetty(与 cometd)实现网络套接字(我想转移到 Socket.io,或带有 Web-Stomp 的 SockJS),这是通过 HAProxy 路由的。

我通过 OORT 使用 Clustered Cometd,我想了解缓存这些内容是否有任何意义,因为它被认为是实时数据。 我问的原因是我正在考虑转向某些 CDN 解决方案以加快我的性能,但据我所知 – Websockets 无法缓存所以这里的重点只是插入更多的静态和动态内容。

这是有道理的还是我在这里失去了什么?

谢谢 时髦

最佳答案

您可以通过缓存代理(并非所有都支持)隧道 websockets,但缓存 websockets 本身将不起作用,因为它们不适合缓存的必要方案,例如一个请求每次都会导致相同的响应。

关于缓存 WebSocket,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23919062/

相关文章:

ssl - 在没有警告的情况下从安全域导航到非安全子域?

google-chrome - 对于运行 Windows 7 的计算机,Chrome 上的 SSL 问题 NET::ERR_CERT_DATE_INVALID

angular2 http请求和websocket

hibernate - 软锁定缓存条目已被底层 Ehcache 过期

c# - 如何阻止浏览器(尤其是Internet Explorer)进行JavaScript的 super 缓存?

javascript - 'cache: false' 是否阻止缓存或对请求进行 UNIQUE-IFY 以绕过缓存?

javascript - HTML5 + JS 足以进行局域网通信吗?

asp.net - 我的 ASP.NET 缓存存储在服务器还是浏览器上

apache - 阻止 Apache Commons VFS 尝试使用 SSL

authentication - 如何验证客户端和服务器位于不同域的 websocket 连接?