Может ли 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/