Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Azure 仅当我单击“登录”时,Ingress 502坏网关,其他页面(如忘记密码/注册)正常工作_Azure_Kubernetes_Azure Aks - Fatal编程技术网

Azure 仅当我单击“登录”时,Ingress 502坏网关,其他页面(如忘记密码/注册)正常工作

Azure 仅当我单击“登录”时,Ingress 502坏网关,其他页面(如忘记密码/注册)正常工作,azure,kubernetes,azure-aks,Azure,Kubernetes,Azure Aks,我有一个ASPNET核心应用程序。当我使用docker容器运行它时,它可以很好地端到端工作。然后,我将映像移动到Azure AKS并创建一个负载平衡器,使用IP浏览web应用程序,不会出现任何问题。但当我在主页上创建入口、加载网站、注册/忘记密码时,但在登录时单击我得到502坏网关错误。我尝试使用kubectl logs pod-follow查看日志,但没有出现错误 已经尝试更改映像、重新创建入口并在本地运行代码。只有当我点击azure AKS中的登录按钮,通过入口访问它时,错误才会出现。使用负

我有一个ASPNET核心应用程序。当我使用docker容器运行它时,它可以很好地端到端工作。然后,我将映像移动到Azure AKS并创建一个负载平衡器,使用IP浏览web应用程序,不会出现任何问题。但当我在主页上创建入口、加载网站、注册/忘记密码时,但在登录时单击我得到502坏网关错误。我尝试使用kubectl logs pod-follow查看日志,但没有出现错误

已经尝试更改映像、重新创建入口并在本地运行代码。只有当我点击azure AKS中的登录按钮,通过入口访问它时,错误才会出现。使用负载平衡器访问同一pod不会复制问题

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: /(.*)