IIS 10 および GoDaddy DNS サーバーでこの動作を実現したいと考えています。
3 つのアプリケーションを処理する 3 つのサーバーがあり、最初の 2 つは正常に動作していますが、3 つ目のサーバーで問題が発生しています。
- すべてのトラフィック
www.example.com
はnon-www.example.com
1 つのサーバーに送信されます。 - すべては
api.example.com
別のものへ移ります。 - すべては
s*.example.com
第3のサーバーに送られます(文字で始まるサブドメインのみS
)
明日は…かもしれないことを考慮するとapi2.mydomain.com
…
ありがとう!
答え1
DNSワイルドカードはバイナリです。すべてか、何もないかのどちらかであり、 のようにラベルの一部のみを一致させることはできませんs*.example.com
。これはプロトコルの一部であるため、どのようなソフトウェアを使用しても機能しません[1]
見るRFC4592およびそのセクション2.1.1:
「ワイルドカード ドメイン名」は、最初の (つまり、左端または最も重要でない) ラベルをバイナリ形式で次のように定義します。
0000 0001 0010 1010 (binary) = 0x01 0x2a (hexadecimal)
最初のオクテットは、1オクテット長のラベルの通常のラベルタイプと長さであり、2番目のオクテットは「*」文字のASCII表現[RFC 20]です。
したがって、そのようなことを行う場合は、ワイルドカードを設定し、Web サーバーのアプリケーション レベルですべてのリクエストを処理する必要があります。
ワイルドカードは魅力的に思えるかもしれませんが、複雑な問題を引き起こす可能性があることを覚えておいてください。CNAME レコードの場合はさらに複雑になります。ゾーンファイルは通常テキスト ファイルなので、ワイルドカードを使用する代わりに、ゾーンファイルの作成を自動化し、任意の数のレコードをゾーンファイルに入れるのは簡単です。
[1]: もちろん、ラベルに応じて必要な動作をする特定のバックエンドを接続できる、非常に特殊なサーバーの場合は除きます。