如何去除Keycloak重定向URL中的端口号?
解决Keycloak重定向URL附带端口号的问题
针对你使用的Keycloak 14.0.0版本,可通过以下配置去除重定向URL中的8080端口号:
一、调整Keycloak Docker环境变量
在现有Docker Compose的keycloak服务环境变量中,添加以下配置项:
PROXY_ADDRESS_FORWARDING=true:允许Keycloak信任反向代理传递的请求头部,以此获取外部访问的真实地址KEYCLOAK_HOSTNAME_PORT=80:指定外部HTTP访问端口(http协议默认端口为80,设置后Keycloak生成URL时不会显式携带该端口)KEYCLOAK_HOSTNAME_HTTP_PORT=80:对应HTTP协议的外部端口配置
修改后的环境变量部分如下:
environment: - DB_VENDOR=POSTGRES - DB_ADDR=keycloak-db - KEYCLOAK_HOSTNAME=keycloak.formsflow.ai - PROXY_ADDRESS_FORWARDING=true - KEYCLOAK_HOSTNAME_PORT=80 - KEYCLOAK_HOSTNAME_HTTP_PORT=80 - DB_DATABASE=${KEYCLOAK_JDBC_DB:-keycloak} - DB_USER=${KEYCLOAK_JDBC_USER:-admin} - DB_PASSWORD=${KEYCLOAK_JDBC_PASSWORD:-changeme} - KEYCLOAK_USER=${KEYCLOAK_ADMIN_USERNAME:-admin} - KEYCLOAK_PASSWORD=${KEYCLOAK_ADMIN_PASSWORD:-changeme}
二、配置Nginx转发头部
确保Nginx反向代理配置中包含以下头部,将外部请求的真实主机、协议和端口传递给Keycloak:
location / { proxy_pass http://localhost:8080; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Port $server_port; }
三、验证生效
重启Keycloak和Nginx服务后,发起认证请求检查重定向URL,确认8080端口已不再显示。
内容的提问来源于stack exchange,提问作者Bhagyesh Patel
相关产品推荐
相关产品推荐

