Jetty:设置普通主机

我如何强制Jetty打开所有部署的webapps,从特定的虚拟主机开始,如test.localhost:8080/myapp而不是localhost:8181/myapp

这是jetty.xml的片段:

          ... 

…我试图玩jetty.host值,但仍然没有成功。 🙁

如何?

要在特定网络接口上进行侦听,请通过其IP地址(IPv4或IPv6)或其主机名指定该接口。

由于这是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上(并且对于环回接口有效)。

然后,您可以使用jetty-distribution为test.localhost:8080设置连接器,使用命令行(这是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后,您可以看到它正在侦听的界面

 $ 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