Haproxy 1.7 перезапись URL-адреса reqrep не работает

В настоящее время я пытаюсь переписать URL-адрес на основе расширений и поддоменов, но мое обновление не работает, поэтому я попытаюсь объяснить свою процедуру:

Я хотел бы переписать этот тип URL

https://mydomain.tld/image.jpg

на

https://jpg.mydomain.tld/image

, поэтому я обновляю свой haproxy.cfg и добавляю в свой интерфейс следующие правила:

frontend web
    bind *:80
    acl p_ext_jpg path_end -i .jpg
    acl p_ext_png path_end -i .png
    acl mydomain hdr(host) -i mydomain.tld
    reqrep ^([^\ :]*)\ /(*).(jpg|png)     \1\ /\2
    use_backend backend_static if  p_ext_jpg p_ext_png mydomain
    default_backend backend_web

Мое текущее правило nginx, которое работает:

rewrite "^/([0-9]+).(jpg|png)$" $scheme://$2.mydomain.tld/$1;

Мои текущие проблемы:

  1. Я не знаю, как заменить mydomain на (jpg | png) .mydomain
  2. , кажется, что любой reqrep не используется моим haproxy

Я хочу только переписать url и перенаправить на мой сервер, а не на перенаправление.

Спасибо за вашу помощь и извините за мой английский.

0
задан 6 February 2017 в 17:45
1 ответ

Ваш бэкэнд никогда не используется, потому что ваше «если» является неявным И. Используйте «или»:

use_backend backend_static if mydomain { p_ext_jpg or p_ext_png }

Итак, вы можете переписать хост:

reqirep ^Host:\ mydomain.tld Host:\ jpg.mydomain.tld if mydomain p_ext_jpg
reqirep ^Host:\ mydomain.tld Host:\ png.mydomain.tld if mydomain p_ext_png

«http-запрос» - это «новый» способ решить эту проблему ...

0
ответ дан 5 December 2019 в 08:41

Теги

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