You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

搭载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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 11:59:32