Рейтинг:0

Nginx ingress — escape-символы

флаг br

У меня есть следующая входящая конфигурация, которая открывается через nodePort 32100. Когда я вызываю (скручиваю) URL-адрес [1], который содержит круглые скобки, я получаю ошибку HTTP 500. Но когда я вызываю URL-адрес [2], который не содержит круглых скобок, запрос успешно проходит через входной контроллер NGINX (v0.35.0).

apiVersion: расширения/v1beta1
вид: Вход
метаданные:
  аннотации:
    nginx.ingress.kubernetes.io/proxy-body-size: 0m
    имя: test1-приложение-вход
  пространство имен: test1
спецификация:
  правила:
  - хост: ing1.example.com
    http:
      пути:
      - бэкэнд:
          serviceName: test1-приложение-1-вход
          сервисПорт: 80
        путь: /тест1
  - хост: ing2.example.com
    http:
      пути:
      - бэкэнд:
          serviceName: test1-приложение-2-вход
          сервисПорт: 80
        путь: /тест1

[1]

curl "http://ing1.example.com:32100/test1/test1.json/Streams(Type_4000000)" -X POST --data-binary @25kfile 
* О подключении() к порту ing1.example.com 32100 (#0)
* Попытка 10.10.10.30...
* Подключено к ing1.example.com (10.10.10.30), порт 32100 (#0)
> POST /test1/test1.json/Streams(Type_4000000) HTTP/1.1
> Пользовательский агент: curl/7.29.0
> Хост: ing1.example.com:32100
> Принять: */*
> Длина контента: 25000
> Тип контента: application/x-www-form-urlencoded
> Ожидать: 100-продолжить
>
< HTTP/1.1 100 Продолжить
< HTTP/1.1 500 Внутренняя ошибка сервера
< Сервер: nginx
< Дата: вторник, 01 марта 2022 г., 20:08:07 по Гринвичу

лог приложения:

10.113.4.0 - - [01/март/2022:20:08:07 +0000] "POST /test1/test1.json/Streams(Type_4000000) HTTP/1.0" 500 528 "-" "curl/7.29.0" 25283 0,004 [тест1-тест1-приложение-1-вход-80] [] 10.113.4.157:80 528 0,003 500 4b3fd4d41fb8a2d26691bd2da78f24b

[2]

curl "http://ing1.example.com:32100/test1/test1.json/StreamsType_4000000" -X POST --data-binary @25kfile 
* О подключении() к порту ing1.example.com 32100 (#0)
* Попытка 10.10.10.30...
* Подключено к ing1.example.com (10.10.10.30), порт 32100 (#0)
> POST /test1/test1.json/StreamsType_4000000HTTP/1.1
> Пользовательский агент: curl/7.29.0
> Хост: ing1.example.com:32100
> Принять: */*
> Длина контента: 25000
> Тип контента: application/x-www-form-urlencoded
> Ожидать: 100-продолжить
>
< HTTP/1.1 100 Продолжить
< HTTP/1.1 200 ОК
< Сервер: nginx
< Дата: вторник, 01 марта 2022 г., 20:09:59 по Гринвичу

лог приложения:

172.28.120.65 - - [01/март/2022:20:09:59 +0000] "POST /test1/test1.json/StreamsType_4000000 HTTP/1.0" 200 0 "-" "curl/7.29.0" 25281 0,003 [test1 -test1-app-1-ingress-80] [] 10.113.4.157:80 0 0,003 200 133bbb4f7149d31e75cf78158566efee

Это проблема на NGINX IC? следует ли экранировать любые символы в конфигурации входа, например скобки?

Рейтинг:0
флаг us

Файл журнала приложения указывает, что запрос достигает приложения. Это означает, что приложение отправляет код ошибки «500». Поэтому вы ничего не можете сделать на стороне nginx, чтобы исправить эту ситуацию.

Вы должны убедиться, что приложение правильно обрабатывает запрос.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.