HAProxy URL Rewrite дает 400 Bad Request и NOSRV

Я пытаюсь переписать часть uri с помощью reqrep.

haproxy.cfg (original)

global
  log 127.0.0.1 local2
  daemon
  maxconn 256
defaults
  mode http
  log global
  option httplog
  timeout connect 5000ms
  timeout client 50000ms
  timeout server 50000ms

frontend haproxy_in
  bind *:8080

  default_backend myapp


backend myapp

  server app1 localhost:8123 check

Когда я делаю это, я вижу журнал haproxy, что я ожидать. Примечание. Я использую фиктивный сервер python, который не может обрабатывать POST, поэтому 501 не вызывает беспокойства, я ищу только тот факт, что запрос был перенаправлен.

haproxy_in myapp/app1 0/0/0/1/5 501 379 - - ---- 0/0/0/0/0 0/0 "POST /please/rewrite/this/ HTTP/1.1

Я также вижу в журнале моего сервера следующее.

 "POST /please/rewrite/this/ HTTP/1.1" 501 -

haproxy.cdf (с reqrep)

global
  log 127.0.0.1 local2
  daemon
  maxconn 256
defaults
  mode http
  log global
  option httplog
  timeout connect 5000ms
  timeout client 50000ms
  timeout server 50000ms

frontend haproxy_in
  bind *:8080

  default_backend myapp


backend myapp

  reqrep ^([^\ :]*\ /) "POST\ /test\ HTTP/1.1"

  server app1 localhost:8123 check

После добавления reqrep я получаю сообщения об ошибках от haproxy

haproxy_in myapp/<NOSRV> -1/-1/-1/-1/1 400 187 - - PR-- 0/0/0/0/3 0/0 "POST /please/rewrite/this/ HTTP/1.1"

По-видимому, мой запрос недействителен? Похоже, что запрос не выходит из haproxy. Как посмотреть, во что переписан запрос? Я пробовал несколько разных команд reqrep с разными регулярными выражениями, и все, похоже, выдают одну и ту же ошибку.

Моя версия haproxy - 1.5.16.

0
задан 23 July 2019 в 15:04
1 ответ

રિક્રેપ ત્રણ પરિમાણો લે છે .

<શોધ> : URL છે, ઉદાહરણ તરીકે www. .somedomain.com / કૃપા કરીને / ફરીથી લખો / આ /

: એ રિપ્લેસિંગ શબ્દમાળા છે, ઉદાહરણ તરીકે / કસોટી

: કોઈપણ ખાસ પરિસ્થિતિઓ માટે છે, અત્યારે અવગણો . [१२8585] ઉદાહરણમાં, બદલો નીચે આપેલ બાબતો કરશે: [१२86]] FROM: http://www.somedomain.com/p कृपया/rewrite/this/used1287 OTO: / test

નીચે આપેલ કામ કરશે રિપ્લેસમેન્ટ: [१२89 re] પુન: સંપર્ક કરો: http://www.somedomain.com/p कृपया/rewrite/this/ http://www.somedomain.com/test 12 1290 "જો તમે ડોમેનને અવગણવા માંગતા હો, તો તમારે તેને સેટ કરવાની જરૂર છે. રેજેક્સ સાથે:

રેક્રેપ ^ ([^ \:] *) \ / મહેરબાની કરીને / ફરીથી લખો / આ / \ 1 \ / કસોટી

1
ответ дан 4 December 2019 в 15:39

Теги

Похожие вопросы