【问题标题】:run Jetty with SPDY out-of-the-box使用开箱即用的 SPDY 运行 Jetty
【发布时间】:2015-04-10 12:00:05
【问题描述】:

我从 Tomcat 切换到 Jetty 作为 ServletContainer 并尝试使用所有默认设置启用 SPDY。这是我启用 SPDY 的步骤:

  1. 我下载并解压jetty
  2. 我在 webapps 和一些仅特定于项目的部署描述符中复制了一个 .war 文件。
  3. (现在是棘手的部分)我通过执行以下命令启用 SPDY:

    java -jar start.jar --add-to-startd=spdy

我接受不受信任的 protonego-impl 并且现在存在 start.d/spdy.ini 文件。

  1. 现在启动码头:

    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,而这背后的技术目前是不必要的。

【问题讨论】:

标签: ssl jetty spdy


【解决方案1】:

Jetty 不支持SPDY/3.1,只支持SPDY/3

事实上,Jetty 永远不会支持SPDY/3.1

SPDY 和 NPN 刚刚在即将发布的 Jetty 9.3.0 版本中从代码树中删除。

http://git.eclipse.org/c/jetty/org.eclipse.jetty.project.git/commit/?id=2162455b72d5a474bba47d5daf5543d46c2688be

【讨论】:

  • 好的。它不需要使用 spdy/3.1。我想使用 spdy 并且直接版本并不重要。你知道为什么我没有 spdy 连接吗?
  • @Happo 浏览器正在协商 spdy/3.1 和 http/1.1,服务器可以说 spdy/3.0 和 http/1.1,所以协议协商选择 http/1.1 作为唯一共同的协议。如果你想利用 SPDY 的好处,我建议你改用 HTTP/2,因为所有支持 SPDY 的浏览器也支持 HTTP/2,Jetty 9.3.0 也支持 HTTP/2。
猜你喜欢
  • 2014-09-21
  • 2014-05-01
  • 2015-04-04
  • 1970-01-01
  • 2016-10-07
  • 1970-01-01
  • 1970-01-01
  • 2012-09-23
  • 2013-08-29
相关资源
最近更新 更多