WSO2AM 3.2.0 Nginx反向代理自定义URL上下文访问配置不生效解决
配置调整方案
现有配置无法生效的核心原因:
- 未对Devportal、Publisher做独立路径的路由适配,统一转发规则无法满足多路径访问需求
- 仅修改Nginx配置、未同步调整WSO2 APIM后端的门户上下文配置,会导致后端生成的静态资源、跳转链接仍指向默认根路径下的
/devportal、/publisher,丢失/wso2am前缀引发404
第一步:调整WSO2 AM 3.2.0后端配置
仅修改Nginx配置无法实现自定义路径访问,必须先修改WSO2服务的部署配置:
修改<APIM_HOME>/repository/conf/deployment.toml文件,新增/调整以下配置:
- 配置对外访问域名(替换为你实际使用的域名)
[server] hostname = "你的实际域名"
- 配置两个门户的自定义上下文路径,匹配目标访问规则
[publisher] context = "/wso2am/publisher" [devportal] context = "/wso2am/devportal"
- 适配反向代理的协议与端口,避免后端生成错误的HTTP链接
[transport.https.properties] proxyPort = 443 proxySet = "true" scheme = "https"
配置完成后重启WSO2 AM服务,先直接访问https://<WSO2服务器IP>:9443/wso2am/publisher验证后端配置是否生效,确认门户能正常加载后再继续调整Nginx。
如果WSO2后端9443端口使用的是自签名证书,无需额外在WSO2侧调整,后续Nginx配置中关闭证书校验即可。
第二步:调整Nginx配置
替换原有/wso2am/的location块,使用如下配置:
location /wso2am/ { # 原有转发头配置保留 proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; # 新增协议转发头,避免生成错误链接 proxy_set_header X-Forwarded-Proto https; # 超时配置与原有保持一致 proxy_read_timeout 5m; proxy_send_timeout 5m; # 若后端使用自签名证书,需取消下方注释关闭证书校验 # proxy_ssl_verify off; # 注意:proxy_pass末尾不要加斜杠,保证请求路径原样透传到后端 proxy_pass https://<WSO2服务器IP>:9443; }
配置修改完成后重启Nginx,用无痕窗口访问验证:
- Publisher门户:
https://你的实际域名/wso2am/publisher - Devportal门户:
https://你的实际域名/wso2am/devportal
常见问题排查
如果仍出现静态资源404、页面跳转异常的问题:
- 按F12打开浏览器控制台,检查静态资源的请求路径是否丢失
/wso2am前缀,如果是,说明后端的上下文配置未生效,回去检查deployment.toml的修改是否正确、服务是否完成重启 - 如果出现502错误,检查Nginx到WSO2服务器9443端口的网络连通性,以及是否需要开启
proxy_ssl_verify off
内容的提问来源于stack exchange,提问作者Justus Nithushan
相关产品推荐
相关产品推荐

