web-dev-qa-db-ja.com

<Host:port>にCNAME(エイリアス)を使用することは可能ですか

ポートをurlから隠して、:の代わりにcname(エイリアス)を使用する方法はありますか?.

たとえば私のURLが http://myserver.com:40089/webapps/index.jsp である場合、 http://mycname/webapps/index.jsp を使用することは可能ですか? =

私が言っている理由は、myserver.comというボックスを移動してmyserver1.comと言うことができるということです。私は移動しているときはいつでもクライアントが常にこのURLを変更することを望んでいません。代わりに、クライアントは、サービスが実行されている場所とポートを認識していません。

出来ますか? jettyをウェブサーバーとして使用しています。

前もって感謝します。

17
Ajay

DNS CNAMEでは、あるホスト名から別のホスト名のみを指すことができます。ポート番号は完全に異なるケーキです。

説明されている状況にはいくつかの問題があります。

  • dNSにCNAMEを設定した場合、HTTPプロトコルは次のように機能するため、新しいホスト名を処理するためにおそらくWebサーバーも変更する必要があります。
  • @stevevisが言ったように、Cookieとキャッシュ、さらには検索エンジンのランキングも失われます
  • アドレスにポート番号を含める必要があります:http://mycname:40080/webapps/index.jsp

言及していませんが、この場合はポート番号も変更できるため、Webサーバーの設定は変更できないと思います。

しかし、小さな犠牲でこの問題の解決策があります。

HTTPリバースプロキシサーバーをインストールして、リクエストをウェブサーバーに転送できます(例: HAProxynginx など)。これにより、元のクライアントが失われます。 IPアドレス(もちろん、HTTPヘッダーで転送できますが、これを処理するには、以前のドメインのコードを変更する必要があります)。

11
KARASZI István

そのためにSRVレコードを使用してみてください。これは、Minecraftサーバーのカスタムドメインを取得するために使用したものです。

5
NdT

いいえ。CNAMEは名前ではなくポートのみをマップします。 x:bをc:dにマップする場合は、リバースプロキシが必要です。

2
bmargulies

はい、いいえ...はい、cnameは互換的に使用できます(ただし、ドメインによっては、Cookieが機能しない場合があることに注意してください)。ただし、サーバーが80以外のポートで実行されている場合は、 URLにポート番号を含める。

0
stevevls