Jetty 9.0嵌入配置,带SPDY,但不带SSL/NPN
SSL/NPN将通过我们的负载平衡器(Haproxy)进行处理,所以我并不需要Jetty为我们做这件事 但是,我在web上看到的所有示例都只展示了如何使用SSL/NPN实现这一点,而不是不使用SSL/NPN 以下是我迄今为止所做的尝试:Jetty 9.0嵌入配置,带SPDY,但不带SSL/NPN,jetty,embedded-jetty,spdy,jetty-9,Jetty,Embedded Jetty,Spdy,Jetty 9,SSL/NPN将通过我们的负载平衡器(Haproxy)进行处理,所以我并不需要Jetty为我们做这件事 但是,我在web上看到的所有示例都只展示了如何使用SSL/NPN实现这一点,而不是不使用SSL/NPN 以下是我迄今为止所做的尝试: Server server = new Server(); HTTPConfiguration httpConfig = .... // set up some additional http config here PushStrategey push = n
Server server = new Server();
HTTPConfiguration httpConfig = .... // set up some additional http config here
PushStrategey push = new ReferrerPushStrategy();
List<ConnectionFactory> factories = new ArrayList<>();
factories.add(new HTTPSPDYServerConnectionFactory(SPDY.V3, httpConfig, push));
factories.add(new HTTPSPDYServerConnectionFactory(SPDY.V2, httpConfig, push));
factories.add(new HTTPConnectionFactory(httpConfig));
ServerConnector connector = new ServerConnector(server, factories.toArray(new ConnectionFactory[factories.size()]));
connector.setPort(port);
server.addConnector(connector);
connector.start();
....
Server=newserver();
HTTPConfiguration httpConfig=..//在这里设置一些额外的http配置
PushStrategyy push=新的ReferrerPushStrategy();
列表工厂=新的ArrayList();
add(新的HTTPSPDYServerConnectionFactory(SPDY.V3,httpConfig,push));
add(新的HTTPSPDYServerConnectionFactory(SPDY.V2,httpConfig,push));
添加(新的HTTPConnectionFactory(httpConfig));
ServerConnector连接器=新的ServerConnector(服务器,factories.toArray(新的ConnectionFactory[factories.size());
连接器。设置端口(端口);
addConnector(连接器);
connector.start();
....
不幸的是,当我试图通过客户机(如curl或我的浏览器)访问服务器时,它们会无限期地挂起,这似乎是错误的。我做错了什么
谢谢当您将
服务器连接器
配置为说明文SPDY时,您的客户端也必须说明文SPDY
如果您使用像curl
这样的客户端或浏览器,它们不会说明文。客户端将发送一个无法理解的HTTP请求(服务器需要SPDY),这就是连接“挂起”的原因
只有Chrome/Chrome具有一种模式,您可以使用所述的--use SPDY=no ssl
参数使其说出明文SPDY
因此,如果您使用的是明文SPDY,那么配置多个ServerConnectionFactory
是没有意义的,因为没有协议协商,无法根据协商的协议选择一个
协议协商仅在使用SSL+NPN时发生
如果确实要设置明文SPDYServerConnector
,则代码基本正确(除了不必要的多个ServerConnectionFactory
);是如何在SPDY测试套件中设置相同的示例
最后,请参见。当然,谢谢,这是有道理的。这是否意味着我必须为我们想要支持的每个SPDY版本打开单独的连接器/端口?我想在这种情况下,在负载平衡器上而不是在Jetty上实现SPDY和SSL/NPN更有意义,尽管在这种情况下很难实现有用的推送策略。这取决于负载平衡器。那些能够在卸载SSL后将明文SPDY“隧道”到后端的系统将允许客户端受益于Jetty中的SPDY功能,例如多路复用和SPDY推送,而不会使负载平衡器与SPDY功能混淆。例如,以这种方式配置,将用作负载平衡器。在这种情况下,我只会宣传一个SPDY版本;大多数(如果不是所有的话)浏览器都支持SPDY/3,所以仍然支持SPDY/2没有什么意义。@sbordet我有一个关于jetty 9.0和SPDY的问题,但不知怎的,我无法理解。我们可以使用jetty 9.0和SPDY以及solr zookeeper吗?我一直在尝试这样做,但不知何故,如果我在jetty 9.0中添加模块spdy,zookeeper服务器甚至无法启动。如果你能帮助我,我将不胜感激。我也发布了一个关于它的问题,