1つのサーバーで複数のウェブページをホストしています。
ルーティングには、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」は使用されません。
Haproyはウムラウトドメインを処理できますか?どうやって?
ドメインはウムラウトを持つことができないため、ウムラウトドメインを処理できるものはありません。
URLはウムラウトで送信できないため、ブラウザはそれらを別の形式に変換する必要があります。
http://en.wikipedia.org/wiki/Internationalized_domain_name
アルゴリズムがあります。
これは互換性のために行われました。
したがって、HaProxyはaeを認識しません-IDNに従ってコーディングを認識します。それを使用すれば、うまくいくはずです。
IDNAエンコーディングの例[編集] IDNAエンコーディングは、ドメインBücher.chの例を使用して説明できます。 「Bücher」はドイツ語で「本」を意味し、.chはスイスのccTLDです。このドメイン名には、Bücherとchの2つのラベルがあります。 2番目のラベルは純粋なASCIIであり、変更されません。最初のラベルはNameprepによって処理されてbücherになり、次にPunycodeに変換されてbcher-kvaになります。次に、接頭辞xn--を付けて、xn--bcher-kvaを生成します。したがって、DNSでの使用に適した結果のラベルはxn--bcher-kva.chです。
変換には、 http://mct.verisign-grs.com/ などのオンラインIDNサービスを使用できます。