搭载Plesk的专属服务器部署Kong+Keycloak,URL重定向自动带端口的问题求助
搭载Plesk的专属服务器部署Kong+Keycloak,URL重定向自动带端口的问题求助
大家好,我目前在一台用Plesk管理的专属Linux服务器上,通过Docker Compose部署了Kong作为API网关,同时用Keycloak提供认证服务。我已经配置了子域名,并完成了Kong容器到该子域名的端口转发,但遇到了一个困扰我的问题:
当我尝试通过 https://<我的子域名>/auth 访问Keycloak时,它会自动重定向到 https://<我的子域名>:8000/auth。可Kong已经通过端口转发绑定到子域名了,这个8000端口完全是多余的,我实在搞不懂怎么解决这个问题,有没有遇到过类似情况的朋友能帮我看看?
我把相关配置文件贴在下面(已删除密码等敏感信息):
kong.yaml
_format_version: "1.1" services: - name: keycloak_auth host: keycloak protocol: http port: 8080 routes: - name: keycloak-route paths: - /auth strip_path: false preserve_host: true - name: frontend host: frontend protocol: http port: 3001 routes: - name: frontend_route paths: - / strip_path: false preserve_host: true - name: backend host: backend protocol: http port: 9999 routes: - name: backend_route paths: - /backend
docker-compose.yml
version: '3' services: backend: image: backend restart: always entrypoint: ./development-entrypoint.sh container_name: backend ports: - 9001:9999 environment: depends_on: - postgres - kong postgres: image: postgres:alpine environment: - POSTGRES_USER= - POSTGRES_PASSWORD= - POSTGRES_DB= volumes: - ./docker_postgres_init.sql:/docker-entrypoint-initdb.d/docker_postgres_init.sql - ./postgres:/var/lib/postgresql/data kong: build: context: .. dockerfile: docker/kong/Dockerfile.kong container_name: api_gateway restart: always ports: - "8002:8000" - "8445:8443" - "8001:8001" - "8444:8444" volumes: - ./kong/kong.yml:/kong.yml - ./kong/kong.conf:/etc/kong/kong.conf environment: KONG_DATABASE: "off" KONG_DECLARATIVE_CONFIG: kong.yml KONG_PROXY_ACCESS_LOG: /dev/stdout KONG_ADMIN_ACCESS_LOG: /dev/stdout KONG_PROXY_ERROR_LOG: /dev/stderr KONG_ADMIN_ERROR_LOG: /dev/stderr KONG_LOG_LEVEL: warn KONG_ADMIN_LISTEN: 0.0.0.0:8001, 0.0.0.0:8444 ssl KONG_PROXY_LISTEN: 0.0.0.0:8000, 0.0.0.0:8443 ssl, 0.0.0.0:9080 http2, 0.0.0.0:9081 http2 ssl KONG_PLUGINS: oidc KC_HTTPS_PORT: 8445 keycloak: image: jboss/keycloak container_name: keycloak environment: - DB_VENDOR= - DB_ADDR= - DB_DATABASE= - DB_USER= - DB_PASSWORD= - KEYCLOAK_USER= - KEYCLOAK_PASSWORD= - KC_PROXY= - PROXY_ADDRESS_FORWARDING= ports: - "8888:8080" depends_on: - postgres frontend: image: frontend container_name: frontend ports: - 3334:3001 - 9228:9229 command: ["node", "--inspect=0.0.0.0:9229", "index.js"] restart: unless-stopped
我已经尝试过的操作:
- 调整
strip_path和preserve_host的各种组合,没有明显效果 - 在kong.conf中添加了
proxy_listen = 0.0.0.0:8000,<domain_name>:80配置,也没能解决问题
备注:内容来源于stack exchange,提问作者Emre
相关产品推荐
相关产品推荐

