Azure 仅当我单击“登录”时,Ingress 502坏网关,其他页面(如忘记密码/注册)正常工作
我有一个ASPNET核心应用程序。当我使用docker容器运行它时,它可以很好地端到端工作。然后,我将映像移动到Azure AKS并创建一个负载平衡器,使用IP浏览web应用程序,不会出现任何问题。但当我在主页上创建入口、加载网站、注册/忘记密码时,但在登录时单击我得到502坏网关错误。我尝试使用kubectl logs pod-follow查看日志,但没有出现错误 已经尝试更改映像、重新创建入口并在本地运行代码。只有当我点击azure AKS中的登录按钮,通过入口访问它时,错误才会出现。使用负载平衡器访问同一pod不会复制问题Azure 仅当我单击“登录”时,Ingress 502坏网关,其他页面(如忘记密码/注册)正常工作,azure,kubernetes,azure-aks,Azure,Kubernetes,Azure Aks,我有一个ASPNET核心应用程序。当我使用docker容器运行它时,它可以很好地端到端工作。然后,我将映像移动到Azure AKS并创建一个负载平衡器,使用IP浏览web应用程序,不会出现任何问题。但当我在主页上创建入口、加载网站、注册/忘记密码时,但在登录时单击我得到502坏网关错误。我尝试使用kubectl logs pod-follow查看日志,但没有出现错误 已经尝试更改映像、重新创建入口并在本地运行代码。只有当我点击azure AKS中的登录按钮,通过入口访问它时,错误才会出现。使用负
apiVersion: apps/v1beta1
kind: Deployment
metadata:
name: devthecrmwebsite
spec:
replicas: 1
template:
metadata:
labels:
app: devthecrmwebsite
spec:
containers:
- name: devthecrmwebsite
image: somewhere.azurecr.io/thecrmwebsite:latest
ports:
- containerPort: 80
imagePullPolicy: Always
imagePullSecrets:
- name: acr-auth
---
apiVersion: v1
kind: Service
metadata:
name: devthecrmwebsite
spec:
ports:
- name: http-port
port: 8081
targetPort: 80
selector:
app: devthecrmwebsite
type: ClusterIP
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: devthecrmwebsite
labels:
app: devthecrmwebsite
annotations:
kubernetes.io/ingress.class: addon-http-application-routing
spec:
rules:
- host: devthecrmwebsite.ac2d980d4f3a4397a96b.southeastasia.aksapp.io
http:
paths:
- backend:
serviceName: devthecrmwebsite
servicePort: 8081
path: /
我建议在path中使用通配符,如果您计划在生产中使用该代码,则需要Nginx入口,而不需要使用http负载平衡器路由插件
我建议在path中使用通配符,如果您计划在生产中使用该代码,则需要Nginx入口,而不需要使用http负载平衡器路由插件
原来是nginx设置问题。对于azure aks- -获取默认http nginx入口控制器的部署名称。 kubectl获得部署-n kube系统 然后检查入口控制器的日志 kubectl日志-f部署/加载http应用程序路由nginx入口控制器-n kube系统-tail 100 最后发现一个相关的错误日志-上游在从上游读取响应头时发送的头太大
这一特定问题的大量在线文章。最终证明是nginx设置问题。对于azure aks- -获取默认http nginx入口控制器的部署名称。 kubectl获得部署-n kube系统 然后检查入口控制器的日志 kubectl日志-f部署/加载http应用程序路由nginx入口控制器-n kube系统-tail 100 最后发现一个相关的错误日志-上游在从上游读取响应头时发送的头太大
关于这一特定问题,网上有很多文章。那么,当您在应用程序中单击“登录”时,我们怎么知道会发生什么呢?该怎么办?浏览器控制台报告什么?入口日志报告了什么?您是否尝试了后端:serviceName:devthecrmwebsite servicePort:8081路径:/(.*)@4c74356b41当我们单击登录时,它会进入登录后页面或给出凭据错误。它已经开始工作了。我已经在docker容器和负载平衡器上进行了本地测试。浏览器控制台显示502响应,没有其他详细信息。请确认检查入口日志的命令。@Anaskartit是的,我做了。这并没有解决问题。那么,我们怎么知道当您在应用程序中单击“登录”时会发生什么呢?该怎么办?浏览器控制台报告什么?入口日志报告了什么?您是否尝试了后端:serviceName:devthecrmwebsite servicePort:8081路径:/(.*)@4c74356b41当我们单击登录时,它会进入登录后页面或给出凭据错误。它已经开始工作了。我已经在docker容器和负载平衡器上进行了本地测试。浏览器控制台显示502响应,没有其他详细信息。请确认检查入口日志的命令。@Anaskartit是的,我做了。这并没有解决问题。你知道这是同一个nginx入口,只是由微软打包的吗?它不是用于生产的。所以呢?这有什么关系?问题是——有些东西不起作用。你的答案是-
这不是生产用的(
?:))我同意,我的答案包含在通配符和配置建议中:))我不明白为什么他必须先编写一个代码进行测试,然后再编写另一个代码进行生产改造,请随时纠正我或提出改进建议。好的,我修改了我的建议答案,让我们看看它是否解决了问题。谢谢你意识到它和微软的nginx入口是一样的吗?它不是为生产而设计的。所以呢?这有什么关系?问题是——有些东西不起作用。你的答案是-这不是生产用的(
?:))我同意,我的答案包含在通配符和配置建议中:))我不明白为什么他必须先编写一个代码进行测试,然后再编写另一个代码进行生产改造,请随时纠正我或提出改进建议。好的,我修改了我的建议答案,让我们看看它是否解决了问题。感谢它的默认http入口,我找不到升级它的方法。详情见-。我决定删除默认的http路由,并创建了一个新的入口部署,缓冲区大小为32k,站点现在可以工作了。关于配置更改,请点击此链接-。我使用这个repo在没有helm的情况下推出了nginx——因为它的默认http入口,我找不到升级它的方法。详情见-。我决定删除默认的http路由,并创建了一个新的入口部署,缓冲区大小为32k,站点现在可以工作了。关于配置更改,请点击此链接-。我用这个回购在没有头盔的情况下推出了nginx-
http:
paths:
- backend:
serviceName: devthecrmwebsite
servicePort: 80
path: /(.*)