Ingress 502 плохой шлюз только когда я нажимаю на кнопку входа, другие страницы, такие как забыл пароль / регистрация работают нормально - PullRequest
1 голос
/ 03 октября 2019

У меня есть приложение ASPNET Core. когда я запускаю это с помощью Docker-контейнера, он отлично работает от начала до конца. Затем я перемещаю изображение в Azure AKS и создаю балансировщик нагрузки, просматриваю веб-приложение по IP и не вижу проблем. Но когда я создаю вход, веб-сайт загружается, регистрация / забыть пароль работает на домашней странице, но при входе в систему я получаю 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: /

Ответы [ 2 ]

2 голосов
/ 03 октября 2019

Я бы предложил использовать подстановочный знак в path, и если вы планируете использовать код в рабочей среде, вам потребуется Nginx Ingress без использования http-расширения маршрутизации балансировщика нагрузки.

https://docs.microsoft.com/en-us/azure/aks/http-application-routing

         http:
          paths:
          - backend:
              serviceName: devthecrmwebsite
              servicePort: 80
            path: /(.*)
0 голосов
/ 04 октября 2019

оказалось проблемой настроек nginx. для azure aks - - получить имя развертывания входного контроллера http nginx по умолчанию. kubectl получить развертывание -n kube-system

, а затем проверить журналы входного контроллера kubectl журналы -f deploy / addon-http-application-routing-nginx-ingress-controller -n kube-system --tail 100

наконец-то нашел соответствующий журнал ошибок - обратный поток отправил слишком большой заголовок при чтении заголовка ответа из восходящего потока

много статейонлайн для этой конкретной проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...