IPおよびポート転送を介してアクセスするときにWebサーバーから正しいWebサイトを表示する


0

選択したユーザーがオフサイトのときに外部IPアドレスを介してサイトにアクセスできるように、私の作品のWebサーバーを指すようにポート転送を設定しました。サーバーへの転送は機能しますが、このサーバーにはいくつかの設定があり、現時点では最初の設定で停止しているため、間違ったWebサイトが表示されます。

たとえば、これら2つの設定を取ると、外部IPアドレスは次のようになります。 11.22.33.44 - 私がしたいことは、に行くことです http://11.22.33.44:789 (ランダムなポート、任意にすることができます)と設定1ショーでウェブサイトを持っています。ただし、構成2のWebサイトは、構成のリストの先頭にアルファベット順で表示されているため、表示されています。どのポートにアクセスしたかを確認し、対応する設定を使用する方法(ServerAliasと同様)はありますか?

構成1

Listen *:789
NameVirtualHost *:80
NameVirtualHost *:789

<VirtualHost *:80 *.789>
        ServerName test.dynedrewett.com
        DocumentRoot /var/www/html/website/test
        ErrorLog /var/log/httpd/test.dynedrewett.com-error
        CustomLog /var/log/httpd/test.dynedrewett.com-access combined
        ErrorDocument 401 /wp-content/themes/dyne_drewett/401.php
</VirtualHost>

構成2

<VirtualHost *:80>
        ServerName dummy.dynedrewett.com
        ServerAlias dummy
        DocumentRoot /var/www/html/intranet/intranet_test
        ErrorLog /var/log/httpd/dummy.dynedrewett.com-error
        CustomLog /var/log/httpd/dummy.dynedrewett.com-access combined
        ErrorDocument 403 /wp-content/themes/dyne_drewnett/403.php
</VirtualHost>

これを行うときに正しいWebサイトが表示されるように設定を修正することはできますか?ありがとう。


どのWebサーバーについて話していますか? IIS、Apache?
Paulo Scardine

@PauloScardine - 私は彼がApache 2について話しているのではないかと思います。
Oliver G

おお、親愛なる、私はこれが私が望んだように働かなかった理由を見つけました。上のものは実際には正しいのですが、誤って間違ったポートに転送されてしまったので、実際にどのポートを使うべきかわからないので、最初の設定を使っていたのです。ありがとう。
David Gard

回答:


2

同じIPアドレスで複数のドメイン名がホストされている場合、Webサーバーはリクエストヘッダーにあるドメインを使用して、提供されるコンテンツを特定します。ほとんどのApacheのインストールはデフォルトでは "VirtuaHost"設定で行われていますが、たとえそれが1つのサイトだけにサービスを提供しているとしてもです。

正しいVirtualHostを選択するのに十分な情報がリクエストに含まれていない場合は、1つのサイトをデフォルトにすることができます。 デフォルトの仮想ホストに関するApacheのドキュメント 構成

もう1つの方法は、ServerAliasディレクティブを使用して、何らかのドメイン名を外部IPにポイントさせ、このドメイン名をVirtualHost構成に含めることです。

[更新]

名前ベースの仮想ホストを使用して同じIP /ポート上で複数のWebサイトを提供することはできませんが、代替TCPポート(または複数のIPアドレスがある場合はIPアドレス)でそれらを提供することはできます。

外部DNSを設定できない場合は、名前ベースの仮想ホストを使用するために、このトリックに頼ることができます。クライアントマシン/ etc / hostsを編集します(または %WINDIR%\system32\drivers\etc\host 外部IPを同じ内部DNS名を指すようにします。


返信いただきありがとうございます。私は仮想ホスト(そのうち7つ)を使用しています。また、私たちのDNSにこれらのWebサイトのエントリが含まれている場合は、ServerAliasディレクティブを内部的に使用します。私がしていることは、私たちの外部IPを通してポートフォワーディングを介してWebサーバーに接続することなので、ルックアップするためのServerAliasはありません。
David Gard

@DavidGard:外部IPを 'external.example.com'のようなドメイン名にマッピングして、目的の仮想ホストに別のServerAliasを含めることを妨げるものは何ですか?
Paulo Scardine

内部DNSにエントリを追加した場合、それを使用するにはサイトにいる必要があります。と私はそうである力によってしないように頼まれたように私は外部のDNSエントリを追加することはできません。
David Gard

@DavidGard:だからあなたが設定する必要があります _default_ 最初の仮想ホスト設定に移動して、希望の仮想ホストをデフォルトにするか、回答のリンクを参照してください。
Paulo Scardine

私は短期間でおそらくそれが答えであることを見ることができます、しかし私が他の内部のウェブサイトのためにこれをする必要があるならば将来私は同じ問題にぶつかります。
David Gard
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.