web-dev-qa-db-ja.com

80以外のポートでのApache HTTPサーバーの構成

Windows 7での開発用にApacheサーバーを実行しています(XAMPP経由)。

デフォルトでは、http://リクエストをポート:80でリッスンするように設定されています。

たとえば、ポート:1234用に設定し、http://localhost:1234/でWebドキュメントにアクセスできます。

私の質問はこれです-ポート:1234でApacheサービスを提供することは可能ですが、リクエストのURIに:1234を含める必要はありませんか?

編集/明確化:私が本当にやろうとしているのは、IIS(ポート80で)とApache(xampp)を同時に実行することです。 。

3
GWR

悲しいことに、これはブラウザによって制御されているため不可能です。デフォルトでは、ブラウザーはポート80に接続し、URLに他のものを追加する必要があります。

私が考えることができる3つの解決策がありますが、最終的にはクライアントマシンのいくつかのコーディングを変更する必要があるため、パブリックユーザーには機能しません。

ホストファイル方式

ホストファイルを変更し、ポートでローカルホストまたはドメイン名を解決できます。しかし、これは一般の訪問者には向かないでしょう。

ブラウザ編集

プラグインを作成してデフォルトのポート80をチェックし、ポート1234のチェックを追加することができます。Firefoxとchromeのプラグインは既に存在するか、コーディングが簡単だと思います。

リダイレクト

サーバーをポート80と1234の両方で実行し、80から1234にリダイレクトできます。これは、ブラウザーがポート80をチェックするためです。特に1234までのポートはチェックしません。ファイルはあなたのためにこれを行います。

XAMPからLAMP

XAMPを使用するのではなく、virtual-boxまたはvwplayerを使用して仮想環境内で実際のランプを使用します。そうすることにより、別のIPを受信するため、ポート80でApacheとiisの両方を実行できます。

しかし、XAMPが必要です

ランプはxampよりもはるかに優れていますが、それを引き続き使用する場合は、Windowsに仮想ネットワークカードを追加して(ループバックと呼ばれる)ポート80で両方を実行できます。xampとiisにバインドするIPを伝える必要があります。に。詳細については、次を参照してください: http://support.Microsoft.com/kb/83901

3
Simon Hayter

ブラウザーにURLを入力すると、ポートを明示的に指定しない限り、ブラウザーはポート80を想定します(パスがHTTPSである場合はポート443が想定されます)。技術的には、URLを書き換えて:80ポートディレクティブを含めることができます。ただ冗長です。

サーバー側では、ポート80でリッスンするサービスは1つだけです。したがって、IISとApacheの両方が80以外のポートを使用せずに接続を受け入れることはできません。

ソリューション...

この状況で一般的に行われるのは、一方のWebサーバー(もう一方のApacheは構成が簡単なためです)がポート80にセットアップされ、もう一方のサーバーのフロントエンドとして機能することです。つまり特定の要求(ホスト名、パス、またはその他の構成に基づいて)を他のサーバーに渡します。

これは、Apacheがフロントエンドとして機能し、リクエストを複数のTomcatサーバーに送信する場合に広範囲に行います。

これに使用するApache構成は「ProxyPass」と呼ばれ、名前が示すように、Apacheは単に仲介者として機能し、指定されたVirtualHostまたはLocationsのトラフィックを別のサーバーに渡します。他のホストまたはパスの場合、Apacheは独自のコンテンツを直接提供できます。

詳細はこちら: https://httpd.Apache.org/docs/2.2/mod/mod_proxy.html

4
Kris