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

WSO2 AM 4.1.0配Nginx后无法登录Publisher/Devportal

WSO2 APIM 4.1.0 反向代理后authenticationendpoint 404修复方案

核心问题点

故障由两处配置错误共同导致:

  • deployment.toml缺少反向代理必填配置,后端服务生成的认证跳转路径携带内部管理端口、错误上下文前缀,触发重定向异常
  • Nginx规则存在逻辑错误:根路径强制跳转认证页、location路径匹配规则不严谨、缺少HTTPS协议标识头,导致请求转发到后端时路径丢失或协议识别错误

故障现象为访问Publisher/Devportal时浏览器控制台报404错误:
/authenticationendpoint 404 Not Found

修复步骤

1. 修改deployment.toml配置

替换原有配置为以下内容,将<mydomain>替换为实际对外域名:

[server]
hostname = "<mydomain>"
# 移除原配置中带内部管理端口的base_path,直接指向代理后的对外HTTPS地址
base_path = "https://${carbon.host}"
server_role = "default"
web_context_root = "/"

[transport.https.properties]
proxyPort = 443
proxiedHost = "<mydomain>"

# 开启反向代理模式
[reverse_proxy]
enabled = true

# 显式指定OAuth相关端点的对外地址,避免后端生成内部跳转路径
[oauth]
auth_endpoint = "https://<mydomain>/authenticationendpoint"
token_endpoint = "https://<mydomain>/oauth2/token"
revoke_endpoint = "https://<mydomain>/oauth2/revoke"
introspect_endpoint = "https://<mydomain>/oauth2/introspect"
userinfo_endpoint = "https://<mydomain>/oauth2/userinfo"

配置修改完成后重启WSO2 APIM服务,确认服务9443端口正常监听后再操作Nginx配置。

2. 修改Nginx配置

原Nginx配置存在三个明确错误:

  • 根路径/直接301跳转到/authenticationendpoint/,拦截了publisher、devportal等正常应用路径的访问
  • location匹配未处理斜杠拼接规则,转发到后端时容易出现路径重复、前缀丢失问题
  • 缺少X-Forwarded-Proto头,后端无法识别前端HTTPS协议,会生成HTTP开头的跳转链接触发异常

替换443对应的server块配置为以下内容,替换其中的后端IP、证书路径、域名为实际值:

server {
    listen 80;
    server_name <MY_DOMAIN>;
    return 301 https://<MY_DOMAIN>$request_uri;
}

server {
    listen 443 ssl;
    ssl_certificate /etc/nginx/ssl/<MY_CER>.cer;
    ssl_certificate_key /etc/nginx/ssl/<MY_KEY>.key;
    access_log /var/log/nginx/<CONF>.access.log;
    error_log /var/log/nginx/<CONF>.error.log;
    server_name <MY_DOMAIN>;

    add_header X-Frame-Options "SAMEORIGIN";
    add_header Strict-Transport-Security "max-age=31536000; includeSubdomains; preload";
    add_header Content-Security-Policy "default-src 'self' http: https: data: blob: 'unsafe-inline'" always;
    add_header X-XSS-Protection "1; mode=block";
    add_header 'Referrer-Policy' 'origin';
    ssl_protocols       TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;

    # 移除原根路径强制跳转认证页的错误规则,默认转发所有请求到后端
    location / {
        limit_except GET HEAD POST PUT DELETE OPTIONS { deny all; }
        proxy_pass https://xx.x.x.x:9443;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $host;
        # 传递HTTPS协议标识给后端
        proxy_set_header X-Forwarded-Proto https;
        proxy_redirect off;
    }

    # 核心业务路径规则,可按需限制请求方法
    location ~ ^/(authenticationendpoint|logincontext|oidc|oauth2|commonauth|publisher|devportal|admin|carbon|services) {
        limit_except GET HEAD POST PUT DELETE OPTIONS { deny all; }
        proxy_pass https://xx.x.x.x:9443;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-Proto https;
        proxy_redirect off;
    }
}

3. 生效验证

  • 执行nginx -t检查配置语法,确认无报错后执行nginx -s reload重载配置
  • 清空浏览器缓存(或用无痕模式)访问https://<你的域名>/publisher,会自动跳转至认证登录页,不再报404错误
  • 登录完成后自动跳转回Publisher控制台即为配置生效,Devportal、Admin控制台访问逻辑一致

注意:如果之前手动修改过carbon.xml、web.xml等WSO2内部配置文件中的主机名、端口参数,需要全部回滚,WSO2 4.x版本所有配置统一以deployment.toml为准,避免配置覆盖导致不生效。

内容的提问来源于stack exchange,提问作者Lilan Mihiranga

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 23:09:15