在Azure Kubernetes Service部署Backstage:强制应用用HTTP加载后端模块
解决Backstage在AKS中强制使用HTTP调用后端的问题
调整Backstage核心配置
修改
app-config.yaml(或通过环境变量覆盖),明确指定后端服务的HTTP地址:backend: baseUrl: http://<你的后端服务名>.<命名空间>.svc.cluster.local:<后端端口>用Kubernetes内部服务域名,确保前端容器能直接通过HTTP访问后端。如果前后端在同一个Pod内,直接用
localhost加端口即可:backend: baseUrl: http://localhost:<后端端口>若使用环境变量管理配置,直接设置
BACKEND_BASE_URL覆盖配置文件:BACKEND_BASE_URL=http://<你的后端服务名>.<命名空间>.svc.cluster.local:<后端端口>
配置NGINX Ingress控制器
- 关闭Ingress的HTTPS强制重定向,避免前端被强制用HTTPS发起内部请求:
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: annotations: nginx.ingress.kubernetes.io/ssl-redirect: "false" nginx.ingress.kubernetes.io/force-ssl-redirect: "false" - 若Ingress配置了
X-Forwarded-Proto注解,将其设为http,避免Backstage错误识别请求协议:nginx.ingress.kubernetes.io/x-forwarded-proto: "http"
验证容器内部通信
- 进入前端容器,手动测试HTTP调用是否正常,排除网络策略或服务暴露问题:
确认返回正常的健康检查响应,说明内部HTTP通信通路正常。kubectl exec -it <前端Pod名称> -n <命名空间> -- curl http://<后端服务名>:<端口>/health
内容的提问来源于stack exchange,提问作者O-1998
相关产品推荐
相关产品推荐

