gpt4 book ai didi

java - Jetty:设置通用主机

转载 作者:行者123 更新时间:2023-11-29 05:16:35 26 4
gpt4 key购买 nike

我如何强制 Jetty 从特定虚拟主机(如 test.localhost:8080/myapp 而不是 localhost:8181/myapp)开始打开所有已部署的网络应用程序?

这是来自 jetty.xml 的片段:

<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>
...

...我尝试使用 jetty.host 值但仍然没有成功。 :(

怎么做?

最佳答案

要在特定网络接口(interface)上监听,您可以通过其 IP 地址(IPv4 或 IPv6)或其主机名指定该接口(interface)。

由于这是 localhost/loopback 的变体,因此最好使用 IP 地址。

例如:

$ grep localhost /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
127.0.1.0 test.localhost

是的,这些主机有意在不同的 IP 上(并且对环回接口(interface)有效)。

然后您可以使用命令行为 test.localhost:8080 使用 jetty-distribution 设置连接器(这是 jetty 9 语法)

$ java -jar /path/to/start.jar jetty.host=127.0.1.0 jetty.port=8080

您还可以将这些命令行选项作为单独的行放入您的 ${jetty.base}/start.ini 中。

$ grep -E "jetty\.(host|port)" /path/to/my.base/start.ini
jetty.host=127.0.1.0
jetty.port=8080

jetty启动后,可以看到它在监听什么接口(interface)

$ netstat -tlnp | grep 8080
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
tcp4 0 0 127.0.1.0:8080 :::* LISTEN 14480/java

关于java - Jetty:设置通用主机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26326436/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com