Jetty 的 confidentialPort 和 securePort 有什么区别
What is the difference between confidentialPort and securePort for Jetty
我正在尝试启用 Jetty 的 https 端口。 Jetty 运行 位于 Karaf 服务器内。
虽然在网上找到了不同的建议配置:
来自 https://karaf.apache.org/manual/latest/
的版本
<!-- Use this connector for many frequently idle connections and for
threadless continuations. -->
<Call name="addConnector">
<Arg>
<New class="org.eclipse.jetty.server.nio.SelectChannelConnector">
<Set name="host">
<Property name="jetty.host" />
</Set>
<Set name="port">
<Property name="jetty.port" default="8181" />
</Set>
<Set name="maxIdleTime">300000</Set>
<Set name="Acceptors">2</Set>
<Set name="statsOn">false</Set>
<Set name="confidentialPort">8443</Set>
<Set name="lowResourcesConnections">20000</Set>
<Set name="lowResourcesMaxIdleTime">5000</Set>
</New>
</Arg>
</Call>
https://www.eclipse.org/jetty/documentation/9.1.5.v20140505/configuring-connectors.html
的另一个版本
<New id="tlsHttpConfig" class="org.eclipse.jetty.server.HttpConfiguration">
<Arg>
<New id="httpConfig" class="org.eclipse.jetty.server.HttpConfiguration">
<Set name="secureScheme">https</Set>
<Set name="securePort">
<Property name="jetty.tls.port" default="8443"/>
</Set>
<Set name="outputBufferSize">32768</Set>
<Set name="requestHeaderSize">8192</Set>
<Set name="responseHeaderSize">8192</Set>
<!-- Uncomment to enable handling of X-Forwarded- style headers
<Call name="addCustomizer">
<Arg><New class="org.eclipse.jetty.server.ForwardedRequestCustomizer"/></Arg>
</Call>
-->
</New>
</Arg>
<Call name="addCustomizer">
<Arg>
<New class="org.eclipse.jetty.server.SecureRequestCustomizer"/>
</Arg>
</Call>
我无法使用这两种方法中的任何一种。关于如何调试此问题以及哪种方法实际上是正确的,您有任何提示吗?
对于 Jetty 的稳定 (not-EOL) 版本,例如 Jetty 9。4.x ...
HttpConfiguration.securePort
(ServerConnector
上的配置)是逻辑端口,用于标识您的客户端 public 只能看到的安全端口。
以这个用例为例。
- Public 互联网上的浏览器,请求
https://acme.com/foo
- 浏览器查找
acme.com
的 DNS 并获取 210.1.1.1
- 浏览器连接到
210.1.1.1
端口 443
- 负载均衡器/代理正在侦听
210.1.1.1:443
并接受请求。
- 负载均衡器添加
Forwarding
header 并连接到内部 IP 10.2.2.2:8443
- 侦听
10.2.2.2:8443
的 Jetty 服务器接受连接并处理请求。
此时,Jetty 服务器上的配置在端口 8443
上有一个 ServerConnector
,它有一个 HttpConfiguration.securePort
,其值为 443
,因为这是public 浏览器看到的端口。
我正在尝试启用 Jetty 的 https 端口。 Jetty 运行 位于 Karaf 服务器内。
虽然在网上找到了不同的建议配置:
来自 https://karaf.apache.org/manual/latest/
的版本<!-- Use this connector for many frequently idle connections and for threadless continuations. --> <Call name="addConnector"> <Arg> <New class="org.eclipse.jetty.server.nio.SelectChannelConnector"> <Set name="host"> <Property name="jetty.host" /> </Set> <Set name="port"> <Property name="jetty.port" default="8181" /> </Set> <Set name="maxIdleTime">300000</Set> <Set name="Acceptors">2</Set> <Set name="statsOn">false</Set> <Set name="confidentialPort">8443</Set> <Set name="lowResourcesConnections">20000</Set> <Set name="lowResourcesMaxIdleTime">5000</Set> </New> </Arg> </Call>
https://www.eclipse.org/jetty/documentation/9.1.5.v20140505/configuring-connectors.html
的另一个版本<New id="tlsHttpConfig" class="org.eclipse.jetty.server.HttpConfiguration"> <Arg> <New id="httpConfig" class="org.eclipse.jetty.server.HttpConfiguration"> <Set name="secureScheme">https</Set> <Set name="securePort"> <Property name="jetty.tls.port" default="8443"/> </Set> <Set name="outputBufferSize">32768</Set> <Set name="requestHeaderSize">8192</Set> <Set name="responseHeaderSize">8192</Set> <!-- Uncomment to enable handling of X-Forwarded- style headers <Call name="addCustomizer"> <Arg><New class="org.eclipse.jetty.server.ForwardedRequestCustomizer"/></Arg> </Call> --> </New> </Arg> <Call name="addCustomizer"> <Arg> <New class="org.eclipse.jetty.server.SecureRequestCustomizer"/> </Arg> </Call>
我无法使用这两种方法中的任何一种。关于如何调试此问题以及哪种方法实际上是正确的,您有任何提示吗?
对于 Jetty 的稳定 (not-EOL) 版本,例如 Jetty 9。4.x ...
HttpConfiguration.securePort
(ServerConnector
上的配置)是逻辑端口,用于标识您的客户端 public 只能看到的安全端口。
以这个用例为例。
- Public 互联网上的浏览器,请求
https://acme.com/foo
- 浏览器查找
acme.com
的 DNS 并获取210.1.1.1
- 浏览器连接到
210.1.1.1
端口443
- 负载均衡器/代理正在侦听
210.1.1.1:443
并接受请求。 - 负载均衡器添加
Forwarding
header 并连接到内部 IP10.2.2.2:8443
- 侦听
10.2.2.2:8443
的 Jetty 服务器接受连接并处理请求。
此时,Jetty 服务器上的配置在端口 8443
上有一个 ServerConnector
,它有一个 HttpConfiguration.securePort
,其值为 443
,因为这是public 浏览器看到的端口。