如何在NGINX代理下修改WSO2 MI服务目录的服务URL端口
解决WSO2 APIM通过服务目录调用MI时绕过NGINX代理的问题
当然可以修改服务目录中的服务URL使其指向443端口,以下是几种可行的解决方案:
方法1:修改MI的服务目录核心配置(推荐)
直接在Micro Integrator的配置文件中指定对外暴露的端口和协议,让服务目录自动注册正确的URL到APIM:
- 打开MI安装目录下的
conf/deployment.toml文件 - 添加或更新以下配置项:
[service_catalog] exposed_port = 443 exposed_protocol = "https" # 可选:如果MI的对外域名和内部不同,还可以指定exposed_host # exposed_host = "mi.your-preprod-domain.com"
- 重启MI服务,重新注册服务到APIM后,服务URL就会自动使用443端口。
方法2:在APIM管理控制台手动修改服务端点
如果不想改动MI的配置,可以直接在APIM侧调整已注册的服务信息:
- 登录WSO2 APIM管理控制台
- 进入服务目录页面,找到目标MI服务
- 点击服务卡片的「编辑」按钮,在端点配置区域将服务URL修改为
https://<你的MI预生产域名>:443/(HTTPS默认端口443可以省略,直接写https://<域名>/) - 保存修改后,APIM后续就会通过NGINX代理端口调用服务。
方法3:配合NGINX代理配置优化端点设置
确保NGINX代理配置正确转发请求的同时,在APIM中使用代理域名作为服务端点:
- 确认NGINX的反向代理配置正确,示例片段如下:
server { listen 443 ssl; server_name mi-preprod.yourcompany.com; ssl_certificate /etc/nginx/ssl/mi-cert.pem; ssl_certificate_key /etc/nginx/ssl/mi-key.pem; location / { proxy_pass https://localhost:8253; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header X-Forwarded-Proto $scheme; } }
- 在APIM的服务目录中,直接将服务URL设置为
https://mi-preprod.yourcompany.com(无需指定端口),APIM会通过NGINX代理访问MI服务。
内容的提问来源于stack exchange,提问作者Bakarim Diomandé
相关产品推荐
相关产品推荐

