如何在8080端口启动keycloak 2.0?
How to start keycloak 2.0 on 8080 port?
Keycloak 的默认端口曾经是 8080。现在,当我使用
启动 keycloak 时
./bin/standalone.sh
然后它开始在 9990 端口上。 // 所以我想现在 keycloak 默认端口现在是 9990。
但有趣的是,每当我给出如下所示的显式密钥斗篷端口时:
./bin/standalone.sh -Djboss.socket.binding.port-offset=8080
此密钥斗篷在端口 17101 上启动后。太奇怪了。
我正在努力在 8080 端口上启动 keycloak。我该怎么做?
还有一件事:
令人惊讶的是,在 8080 端口上 运行 有一个叫做 undertow 的东西。当我尝试启动 keycloak 时,我可以在堆栈跟踪中进行跟踪:
YUT0006: Undertow HTTP listener default listening on 127.0.0.1:8080
默认端口依然是8080,在Keycloak安装目录中查看standalone/configuration/standalone.xml
,寻找jboss.http.port
。如果要强制端口,请使用 -Djboss.http.port=8080
。您正在使用 offset 配置。在您的情况下,因为 standalone.xml
似乎已更改,您正在将 8080 添加到基本端口。
如果您 运行 基本 bin/standalone.sh
不更改任何配置,您的 keycloak 服务器将在端口 8080
.
上启动
我相信让您感到困惑的是服务器启动时获得的日志,更具体地说是这部分:
12:25:25,688 INFO [org.jboss.as] (Controller Boot Thread)
WFLYSRV0051: Admin console listening on http://127.0.0.1:9990
端口 9990
不是你的 keycloak 服务器,它是 WildFly 的一个。
你也用错了offset。基本上,偏移量是您增加原始端口 (8080
) 的数字。
如果您将偏移量设置为 15,您的 keycloak 服务器将 运行 在端口 8095
上。
另外,在启动keycloak之前,检查一下是否有其他进程在使用8080端口
lsof -i :8080
./bin/standalone.sh -Djboss.socket.binding.port-offset=8080
通过为 jboss.socket.binding.port-offset
提供值 8080
,您将 "8080" 添加到服务器上的所有端口绑定,这是错误的.
您可以执行以下操作来解决您的问题。
./standalone.sh -b 0.0.0.0 -Djboss.socket.binding.port-offset=1000
这会将“1000
”添加到服务器上的所有 portbindings
,从而避免端口冲突。
您也可以通过 docker 运行 它而不是安装它。更容易将此命令粘贴到项目中的 docker-compose 文件中,如果您想更改端口,您可以轻松完成:
version: ‘3’
volumes:
Postgres_data:
driver: local
services:
postgres:
image: postgres
volumes:
- postgres_data:/var/lib/postgresql/data
ports:
- 5432:5432
environment:
POSTGRES_DB: keycloak
POSTGRES_USER: keycloak
POSTGRES_PASSWORD: password
keycloak:
image: jboss/keycloak
environment:
DB_VENDOR: POSTGRES
DB_ADDR: postgres
DB_DATABASE: keycloak
DB_USER: keycloak
DB_SCHEMA: public
DB_PASSWORD: password
KEYCLOAK_USER: admin
KEYCLOAK_PASSWORD: admin
# Uncomment the line below if you want to specify JDBC parameters. The parameter below is just an example, and it shouldn’t be used in production without knowledge. It is highly recommended that you read the PostgreSQL JDBC driver documentation in order to use it.
#JDBC_PARAMS: “ssl=true”
ports:
- 8080:8080
depends_on:
- postgres
Keycloak 的默认端口曾经是 8080。现在,当我使用
启动 keycloak 时./bin/standalone.sh
然后它开始在 9990 端口上。 // 所以我想现在 keycloak 默认端口现在是 9990。
但有趣的是,每当我给出如下所示的显式密钥斗篷端口时:
./bin/standalone.sh -Djboss.socket.binding.port-offset=8080
此密钥斗篷在端口 17101 上启动后。太奇怪了。
我正在努力在 8080 端口上启动 keycloak。我该怎么做?
还有一件事:
令人惊讶的是,在 8080 端口上 运行 有一个叫做 undertow 的东西。当我尝试启动 keycloak 时,我可以在堆栈跟踪中进行跟踪:
YUT0006: Undertow HTTP listener default listening on 127.0.0.1:8080
默认端口依然是8080,在Keycloak安装目录中查看standalone/configuration/standalone.xml
,寻找jboss.http.port
。如果要强制端口,请使用 -Djboss.http.port=8080
。您正在使用 offset 配置。在您的情况下,因为 standalone.xml
似乎已更改,您正在将 8080 添加到基本端口。
如果您 运行 基本 bin/standalone.sh
不更改任何配置,您的 keycloak 服务器将在端口 8080
.
我相信让您感到困惑的是服务器启动时获得的日志,更具体地说是这部分:
12:25:25,688 INFO [org.jboss.as] (Controller Boot Thread) WFLYSRV0051: Admin console listening on http://127.0.0.1:9990
端口 9990
不是你的 keycloak 服务器,它是 WildFly 的一个。
你也用错了offset。基本上,偏移量是您增加原始端口 (8080
) 的数字。
如果您将偏移量设置为 15,您的 keycloak 服务器将 运行 在端口 8095
上。
另外,在启动keycloak之前,检查一下是否有其他进程在使用8080端口
lsof -i :8080
./bin/standalone.sh -Djboss.socket.binding.port-offset=8080
通过为 jboss.socket.binding.port-offset
提供值 8080
,您将 "8080" 添加到服务器上的所有端口绑定,这是错误的.
您可以执行以下操作来解决您的问题。
./standalone.sh -b 0.0.0.0 -Djboss.socket.binding.port-offset=1000
这会将“1000
”添加到服务器上的所有 portbindings
,从而避免端口冲突。
您也可以通过 docker 运行 它而不是安装它。更容易将此命令粘贴到项目中的 docker-compose 文件中,如果您想更改端口,您可以轻松完成:
version: ‘3’
volumes:
Postgres_data:
driver: local
services:
postgres:
image: postgres
volumes:
- postgres_data:/var/lib/postgresql/data
ports:
- 5432:5432
environment:
POSTGRES_DB: keycloak
POSTGRES_USER: keycloak
POSTGRES_PASSWORD: password
keycloak:
image: jboss/keycloak
environment:
DB_VENDOR: POSTGRES
DB_ADDR: postgres
DB_DATABASE: keycloak
DB_USER: keycloak
DB_SCHEMA: public
DB_PASSWORD: password
KEYCLOAK_USER: admin
KEYCLOAK_PASSWORD: admin
# Uncomment the line below if you want to specify JDBC parameters. The parameter below is just an example, and it shouldn’t be used in production without knowledge. It is highly recommended that you read the PostgreSQL JDBC driver documentation in order to use it.
#JDBC_PARAMS: “ssl=true”
ports:
- 8080:8080
depends_on:
- postgres