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

Oracle APEX社交登录认证后重定向带:80端口异常求助

解决Oracle APEX Azure AD登录回调URL带多余:80的问题

按照教程配置Azure AD社交登录后,APEX生成的回调URL为https://our-domain/:80/ords/apex_authentication.callback?...,浏览器报错;手动移除:80后可正常访问。环境为Azure托管Ubuntu服务器,Docker部署Oracle DB 21.3、ORDS 22.2.0,APEX 22.1,Nginx作为SSL反向代理。

核心原因

ORDS/APEX未正确识别反向代理传递的外部协议(HTTPS)和端口(443),默认使用内部端口或HTTP默认端口80生成回调URL。

修复步骤

1. 配置Nginx传递正确的转发头

在Nginx的反向代理配置块中,添加以下头信息,确保ORDS能获取外部请求的真实协议、端口和主机:

location /ords/ {
    proxy_pass http://<ords-container-name>:8080/ords/;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Forwarded-Port $server_port;
    proxy_set_header X-Forwarded-Host $host;
    proxy_set_header X-Real-IP $remote_addr;
}
  • 将<ords-container-name>替换为你的ORDS容器名称或内部IP
  • $scheme会自动识别外部请求的协议(HTTPS),$server_port为外部端口(443)

2. 配置ORDS信任反向代理转发头

方式一:修改ORDS配置文件

在ORDS的conf/ords.properties中添加以下配置:

# 信任反向代理的来源(可指定具体域名,*表示信任所有)
ords.proxy.trusted.origins=*
# 指定从转发头获取主机、端口、协议信息
ords.http.host.header=X-Forwarded-Host
ords.http.port.header=X-Forwarded-Port
ords.http.protocol.header=X-Forwarded-Proto

方式二:Docker环境通过环境变量配置

如果使用Docker Compose,在ORDS服务中添加环境变量:

services:
  ords:
    image: container-registry.oracle.com/database/ords:22.2.0
    environment:
      - ORDS_PROXY_TRUSTED_ORIGINS=*
      - ORDS_HTTP_HOST_HEADER=X-Forwarded-Host
      - ORDS_HTTP_PORT_HEADER=X-Forwarded-Port
      - ORDS_HTTP_PROTOCOL_HEADER=X-Forwarded-Proto
    # 其他容器配置(端口映射、依赖等)...

3. 验证APEX实例URL设置

登录APEX工作区,进入实例管理 → 实例设置 → 安全,确认实例URL设置为https://your-domain.com/ords(无多余端口)。

4. 验证配置生效

访问https://your-domain.com/ords/ords/status,查看Proxy Settings部分,确认转发头配置已正确加载。

内容的提问来源于stack exchange,提问作者Thomas Tschernich

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 12:43:29