如何让 Quarkus 监听所有网络接口而不是 localhost?
Posted
技术标签:
【中文标题】如何让 Quarkus 监听所有网络接口而不是 localhost?【英文标题】:How to make Quarkus to listen on all network interfaces instead of localhost? 【发布时间】:2019-07-29 08:06:44 【问题描述】:当我运行我的 Quarkus 应用程序时,它默认只侦听/绑定到 localhost。
如何改变这种行为?
【问题讨论】:
【参考方案1】:更新
在 Quarkus 中包含 this PR 后,从版本 0.12.0
开始,将不再需要下一节中说明的配置,因为 Quarkus 将使用 0.0.0.0
作为默认主机。
默认情况下,Quarkus 仅侦听 localhost (127.0.0.1)。要让 Quarkus 监听所有网络接口(这非常方便,例如在 Docker 容器或 Kubernetes Pod 中运行时),需要设置 quarkus.http.host
属性。
如果您总是希望 Quarkus 应用程序监听所有接口,您可以设置
quarkus.http.host=0.0.0.0
在您的application.properties
中(在src/main/resources
下)。
如果您希望保留默认设置并仅在运行时覆盖,您可以按如下方式进行:
在 JVM 模式下运行 Quarkus 应用程序时,您可以使用 quarkus.http.host 系统属性将端口设置为 0.0.0.0。 例如:
java -Dquarkus.http.host=0.0.0.0 -jar example-runner.java
相同的属性适用于 GraalVM 原生模式图像。 例如:
./example-runner -Dquarkus.http.host=0.0.0.0
【讨论】:
我在 quarkus.io/guides/all-config 中看到,在开发模式下它默认为 localhost。这看起来在 Quarkus 1.9 中已更改以上是关于如何让 Quarkus 监听所有网络接口而不是 localhost?的主要内容,如果未能解决你的问题,请参考以下文章
如何让 ngrok 客户端监听特定的主机名而不是 localhost?