Docker部署Keycloak搭配Nginx反向代理后浏览器显示端口问题
Keycloak v23.0.1反向代理后URL显示异常端口问题解决
主服务器(非容器)部署Nginx作为反向代理,Docker容器运行Keycloak v23.0.1。访问管理页面时,输入keycloak.tld.com后会跳转至https://keycloak.tld.com:58443/logon_url_path...,功能正常但URL中多余显示了端口58443,旧版Keycloak无此问题,且Nginx与Docker的端口配置均正确。
原Nginx配置
server { server_name keycloak.tld.com; access_log /var/log/nginx/keycloak.access.log; error_log /var/log/nginx/keycloak.error.log; location / { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Proto https; proxy_pass https://localhost:58443; } listen 443 ssl; # managed by Certbot ssl_certificate /etc/letsencrypt/live/keycloak.tld.com/fullchain.pem; # managed by Certbot ssl_certificate_key /etc/letsencrypt/live/keycloak.tld.com/privkey.pem; # managed by Certbot include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot } server { if ($host = keycloak.tld.com) { return 301 https://$host$request_uri; } # managed by Certbot server_name keycloak.tld.com; listen 80; return 404; # managed by Certbot }
问题根源与修正方案
问题源于Nginx的proxy_set_header配置错误,修正后的location段配置如下:
location / { proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Host $http_host; proxy_set_header X-Forwarded-Proto $scheme; proxy_pass https://localhost:58443; # 其余原有配置保持不变 }
内容的提问来源于stack exchange,提问作者rcwombat
相关产品推荐
相关产品推荐

