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

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

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

Теперь один забавный пользователь хочет получить домен umlaut "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" не используется.

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

1 ответ

Решение

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

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

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

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

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

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

Пример кодирования IDNA [править] Кодирование IDNA можно проиллюстрировать на примере домена Bücher.ch. "Бюхер" в переводе с немецкого означает "книги", а.ch - нДВУ Швейцарии. Это доменное имя имеет две метки, 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/

Другие вопросы по тегам