Я пытаюсь переписать часть 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.
રિક્રેપ ત્રણ પરિમાણો લે છે
.
<શોધ>
: 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 \ / કસોટી