Псевдонимы HaProxy доменов

У меня есть несколько доменов, которые являются вариациями моего основного домена. Я хочу перенаправить их всех на свой основной домен, игнорируя протокол (http / https) и поддомен (www./beta.). Есть ли способ сделать это в конфигурации HAProxy?

Я думал о чем-то вроде

redirect prefix https://*.domainA.com code 301 if { hdr(host) -i *.domainB.com }
redirect prefix https://*.domainA.com code 301 if { hdr(host) -i *.domainC.org }
0
задан 21 October 2017 в 17:02
1 ответ

Перенаправление *. Example.org на https: //*.example.com , с сохранением поддомена, пути и строки запроса, если таковые имеются (для удобства чтения добавлены разрывы строк ) ...

http-request redirect 
  location 
  https://%[hdr(host),lower,regsub(\.example\.org$,.example.com,)]%[capture.req.uri] 
  code 301
  if { hdr_end(host) -i .example.org  }

Возьмите заголовок входящего хоста, преобразуйте его в нижний регистр, затем выполните замену регулярного выражения .example.org , привязанного к концу, меняя на .example.com , затем добавьте URI захваченного запроса и код к 301, если заголовок Host заканчивается на .example.org , без учета регистра.

Test ...

$ curl -v http://longcat.example.org/test?cat=1
* Connected to longcat.example.org (127.0.0.1) port 80 (#0)
> GET /test?cat=1 HTTP/1.1
> User-Agent: curl/7.35.0
> Host: longcat.example.org
> Accept: */*
>
< HTTP/1.1 301 Moved Permanently
< Content-length: 0
< Location: https://longcat.example.com/test?cat=1
< Connection: close

] Тест со смешанным регистром заголовка хоста ...

$ curl -v http://TACGNOL.eXaMpLe.ORG/ohai?cat=2
* Connected to TACGNOL.eXaMpLe.ORG (127.0.0.1) port 80 (#0)
> GET /ohai?cat=2 HTTP/1.1
> User-Agent: curl/7.35.0
> Host: TACGNOL.eXaMpLe.ORG
> Accept: */*
>
< HTTP/1.1 301 Moved Permanently
< Content-length: 0
< Location: https://tacgnol.example.com/ohai?cat=2
< Connection: close

Это решение основывается на функциях, впервые представленных в HAProxy 1.6.

Повторите строку с соответствующими изменениями для каждой пары доменов.

1
ответ дан 4 December 2019 в 16:06

Теги

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