【发布时间】:2015-04-10 12:00:05
【问题描述】:
我从 Tomcat 切换到 Jetty 作为 ServletContainer 并尝试使用所有默认设置启用 SPDY。这是我启用 SPDY 的步骤:
- 我下载并解压jetty
- 我在 webapps 和一些仅特定于项目的部署描述符中复制了一个 .war 文件。
-
(现在是棘手的部分)我通过执行以下命令启用 SPDY:
java -jar start.jar --add-to-startd=spdy
我接受不受信任的 protonego-impl 并且现在存在 start.d/spdy.ini 文件。
-
现在启动码头:
java -jar start.jar
另外,我通过在 etc/protonego-alpn.xml 中取消注释命令来启用一些调试:
<Set class="org.eclipse.jetty.alpn.ALPN" name="debug" type="boolean">true</Set>
在服务器启动时我得到:
2015-02-10 13:22:10.292:INFO:oejs.ServerConnector:main: 已启动 ServerConnector@5841a6a3{HTTP/1.1}{0.0.0.0:8080} 2015-02-10 13:22:10.387:INFO:oejs.ServerConnector:main: 启动 ServerConnector@5c9f2ea4{SSL-alpn}{0.0.0.0:8443}
这告诉我在 8080 端口上运行普通 HTTP,在 8443 上运行支持以下协议的 ALPN:spdy/3、spdy/2、http/1.1。 但是,如果我从我的项目访问 HTTPS 页面,我会得到以下信息:
[S] ALPN 协议 [spdy/3.1, http/1.1] 从客户端接收到 783e3eb9[SSLEngine[hostname=127.0.0.1 port=50458] SSL_NULL_WITH_NULL_NULL] [S] 为 783e3eb9 选择了 ALPN 协议“http/1.1”[SSLEngine[hostname=127.0.0.1 port=50458] SSL_NULL_WITH_NULL_NULL]
我理解上面所说的服务器支持spdy/3.1和http/1.1被选中。但是删除除 spdy/3 之外的所有连接我得到了 EofExceptions 并且无法访问 HTTPS 页面。
我使用 Java JDK 1.7 和 Chrome 以及 SPDY-Indicator 和 Jetty 9.2.5 以及 XML 上的所有配置。 有人可以帮助我或告诉更多关于这个问题的信息吗? 哦,不需要使用 ALPN,我想要 spdy,而这背后的技术目前是不必要的。
【问题讨论】:
-
我在转换 xml 配置表示中的代码后尝试以下解决方案,但我看不到 spdy 连接。 stackoverflow.com/questions/25035063/…