Назад | Перейти на главную страницу

Может ли haproxy использовать умлаут-домены?

Я размещаю несколько веб-страниц на одном сервере.

Для маршрутизации я использую haproxy.

Теперь один забавный пользователь хочет умлаут-домен «supportbär.de».

#haproxy.cfg

frontend http-in
  ..
  acl is_supportbaer hdr_dom(host) -i supportbär
  use_backend supportbaer_wp if is_supportbaer

Обычно это работает. Но в этом случае серверная часть supportbaer_wp не используется.

Может ли хапрой обрабатывать умлаут-домены? Как?

Ничто не может обрабатывать домены умлаута - так же как домены не могут иметь умлаут.

Браузер должен перевести их в другую форму, потому что URL-адрес не может передаваться в умляутах.

http://en.wikipedia.org/wiki/Internationalized_domain_name

имеет свои алгоритмы.

Это было сделано для совместимости.

Итак, HaProxy не увидит ae - он увидит кодировку согласно IDN. Используйте это, и это должно сработать.

Пример кодирования IDNA [править] Кодирование IDNA можно проиллюстрировать на примере домена Bücher.ch. «Bücher» в переводе с немецкого означает «книги», а .ch - это ccTLD Швейцарии. Это доменное имя имеет два ярлыка: Bücher и ch. Вторая метка - чистый ASCII, и ее не изменили. Первая метка обрабатывается Nameprep для получения bücher, а затем конвертируется в Punycode, в результате чего получается bcher-kva. Затем перед ним ставится префикс xn--, чтобы получить xn - bcher-kva. Итоговая метка, подходящая для использования в DNS, - это xn--bcher-kva.ch.

Для преобразований вы можете использовать онлайн-сервис IDN, например http://mct.verisign-grs.com/