Apache Web サーバーを使用して 2 つ以上のサイトを構成する方法

Apache Web サーバーを使用して 2 つ以上のサイトを構成する方法

人気があり強力な Apache Web サーバーで 2 つ以上のサイトをホストする方法。

前回の記事では、単一のサイト用に Apache Web サーバーを構成する方法について説明しましたが、これは非常に簡単です。この記事では、単一の Apache インスタンスを使用して複数のサイトにサービスを提供する方法を説明します。

注: この記事は、Apache 2.4.29 を搭載した Fedora 27 仮想マシンで作成しました。別のディストリビューションや Fedora の別のバージョンを使用する場合は、使用するコマンドや設定ファイルの場所と内容が異なる場合があります。

前回の記事で述べたように、すべての Apache 設定ファイルは /etc/httpd/conf と /etc/httpd/conf.d にあります。デフォルトでは、サイトのデータは /var/www にあります。複数のサイトの場合は、ホストされているサイトごとに 1 つずつ、複数の場所を指定する必要があります。

名前ベースの仮想ホスト

名前ベースの仮想ホスティングを使用すると、複数のサイトに単一の IP アドレスを使用できます。 Apache を含む最新の Web サーバーは、指定された URL のホスト名部分を使用して、どの仮想 Web ホストがページの要求に応答するかを決定します。これには、単一のサイトよりも多くの構成が必要になります。

たとえ 1 つのサイトから始める場合でも、後でサイトを追加しやすくなるように、仮想ホストとして設定することをお勧めします。この記事では、前回の記事の続きから始めるので、名前ベースの仮想サイトである元のサイトを設定する必要があります。

元のサイトを準備する

2 番目のサイトをセットアップする前に、既存の Web サイト用の名前ベースの仮想ホスティングが必要になります。現在サイトをお持ちでない場合は、戻って今すぐ作成してください。

サイトが立ち上がったら、 /etc/httpd/conf/httpd.conf /httpd.conf 構成ファイルの下部に次の内容を追加します (httpd.conf ファイルに加える必要がある変更はこれだけです)。

<仮想ホスト 127.0.0.1:80>
 ドキュメントルート /var/www/html
 サーバー名 www.site1.org
</仮想ホスト>

これは最初の仮想ホスト構成セクションとなり、デフォルトの定義にするために最初に残しておく必要があります。つまり、IP アドレスまたはこの IP アドレスに解決されるが特定の名前付きホスト構成セクションを持たない他の名前を介したサーバーへの HTTP アクセスは、この仮想ホストに送信されます。他のすべての仮想ホスト構成セクションは、このセクションに従う必要があります。

名前解決を提供するには、/etc/hosts のエントリを使用して Web サイトを設定する必要もあります。前回は、localhost の IP アドレスのみを使用しました。通常、これは Google や Godaddy など、使用している名前サービスを使用して実行できます。テスト サイトの場合は、/etc/hosts の localhost 行に新しい名前を追加してこれを実行します。後でこのファイルを再度編集する必要がないように、両方のサイトのエントリを追加します。結果は次のとおりです。

127.0.0.1 ローカルホスト ローカルホスト.localdomain ローカルホスト4 ローカルホスト4.localdomain4 www.site1.org www.site2.org

/var/www/html/index.html ファイルをもう少しわかりやすく変更してみましょう。次のような表示になります (サイト 1 であることを示す追加テキストが含まれます)。

<h1>こんにちは世界</h1>

ウェブサイト 1.

httpd 構成の変更を有効にするには、HTTPD サーバーを再起動します。その後、Lynx テキスト モードを使用して、コマンド ラインからサイトを表示できます。

[root@testvm1 ~]# systemctl httpdを再起動します
[root@testvm1 ~]# lynx www.site1.org

      こんにちは世界 
 ウェブサイト 1.
<中略>
コマンド: 矢印キーで移動し、'?' でヘルプを表示し、'q' で終了し、'<-' で戻ります。
矢印キー: 上下に移動。右でリンクをたどり、左で戻ります。
ヘルプ オプション 印刷 移動 メイン画面 質問 /=検索 [削除]=履歴リスト

明らかなエラーなく、元の Web サイトが変更されているのが確認できます。Q キーを押してから Y キーを押して、Lynx Web ブラウザを終了します。

2番目のサイトの構成

これで、2 番目の Web サイトを構築する準備が整いました。新しい Web サイトのディレクトリ構造を作成するには、次のコマンドを使用します。

[root@testvm1 html]# mkdir -p /var/www/html2

2 番目のサイトは、最初のサイトと同じ /var/www ディレクトリにある 2 番目の html ディレクトリであることに注意してください。

次に、次の内容を含む新しいインデックス ファイル/var/www/html2/index.htmlを作成します (このインデックス ファイルは、元の Web サイトと区別するために若干異なります)。

<h1>Hello World -- 再び</h1>

ウェブサイト2。

2 番目のサイトの httpd.conf に新しい構成セクションを作成し、それを以前の仮想ホスト構成セクションの下に配置します (2 つは非常によく似ているはずです)。このセクションでは、Web サーバーに 2 番目のサイトの HTML ファイルの場所を指示します。

<仮想ホスト 127.0.0.1:80>
 ドキュメントルート /var/www/html2
 サーバー名 www.site2.org
</仮想ホスト>

HTTPD を再起動し、Lynx を使用して結果を表示します。

[root@testvm1 httpd]# systemctl httpdを再起動します
[root@testvm1 httpd]# lynx www.site2.org
     こんにちは世界 -- 再び
 ウェブサイト2。
<中略>
コマンド: 矢印キーで移動し、'?' でヘルプを表示し、'q' で終了し、'<-' で戻ります。
矢印キー: 上下に移動。右でリンクをたどり、左で戻ります。
ヘルプ オプション 印刷 移動 メイン画面 質問 /=検索 [削除]=履歴リスト

ここでは、このスペースに収まるように出力を圧縮しました。ページの違いから、これが 2 番目のサイトであることがわかります。 2 つのサイトを同時に表示するには、別のターミナル セッションを開き、Lynx Web ブラウザーを使用して他のサイトを表示します。

その他の考慮事項

この簡単な例では、Apache HTTPD サーバーの単一インスタンスを使用して 2 つのサイトを処理する方法を示します。他の要素を考慮すると、仮想ホストの構成は少し複雑になる可能性があります。

たとえば、これらのサイトの 1 つまたはすべてに CGI スクリプトを使用する必要がある場合があります。これを行うには、/var/www ディレクトリの下に、HTML ディレクトリと一致する名前の CGI プログラム用のディレクトリ ( /var/www/cgi-bin 和/var/www/cgi-bin2をいくつか作成します。次に、CGI スクリプトのディレクトリの場所を指定するために、仮想ホスト スタンザに構成ディレクティブを追加する必要があります。各サイトにはダウンロードしたファイル用のディレクトリを作成できます。これには、対応する仮想ホスト スタンザのエントリも必要です。

Apache の Web サイトでは、複数のサイトを管理するための他の方法や、パフォーマンス チューニングからセキュリティに至るまでの構成オプションについて説明しています。

Apache は、シンプルな Web サイトから非常に複雑な Web サイトまでをホストできる強力な Web サーバーです。全体的な市場シェアは縮小しているものの、依然としてインターネット上で最も一般的に使用されている HTTPD サーバーです。

以下もご興味があるかもしれません:
  • Apache、wsgi、django プログラムのデプロイメント設定方法の詳細な説明
  • LinuxベースのApacheウェブサイトサービス構成の詳細な説明
  • Windows での Apache+Tomcat7 負荷分散構成方法の詳細な説明
  • Ubuntu 上の Apache で SSL (https 証明書) を設定する正しい方法の詳細な説明
  • Apache での ModSecurity のインストール、有効化、および構成
  • CentOS 7 での Apache Web サーバーのインストールと設定のチュートリアル
  • Alibaba Cloud Server Apache は SSL 証明書を構成して Https を正常に有効にします (さまざまな落とし穴を記録します)
  • Win10 Apache が仮想ホストを設定した後にローカルホストが利用できなくなる問題の解決方法
  • Apache 経由で複数の仮想ホストをローカルに設定する方法

<<:  JavaScript が Jingdong のカルーセル効果を模倣

>>:  JavaScript ベースのランダム点呼システムの実装

推薦する

Linux sftp コマンドの使用法の概要

sftp は、安全なファイル転送プロトコルである Secure File Transfer Prot...

ウェブページの背景色を制御する CSS コード

誰もが自分の Web ページの背景にふさわしい画像を見つけることに悩むことが多いと思います。これは事...

VMware Workstation Pro でサーバー仮想マシンを構築する (グラフィック チュートリアル)

私が使用している VMware Workstation Pro のバージョンは次のとおりです。 1....

Navicat を使用してリモート Linux MySQL データベースに接続するときに発生する 10061 不明エラーの詳細な説明

Navicat を使用してリモート Linux MySQL データベースに接続すると、不明なエラー ...

Tencent Cloud で HTTPS を無料で導入する方法

最近、WeChatアプレットを書いていたとき、WeChatアプレットではすべてのリクエストインターフ...

Linux 環境に MySQL 8.0 をインストールするプロセスの紹介

目次序文1. Linux は yum ソースを変更します (MYSQL のインストールが遅い場合は試...

IE6 スペースバグ修正方法

コードを見てみましょう:コードをコピーコードは次のとおりです。 < !DOCTYPE html...

Nginx で HTTPS 証明書を構成する詳細なプロセス

1. HttpとHttpsの違いHTTP: インターネットで最も広く使用されているネットワーク プロ...

Linux で rsync を使用する方法

目次1. はじめに2. インストール3. 基本的な使い方3.1、-rパラメータ3.2、-aパラメータ...

フレックスレイアウトにおける画像変形の解決策の詳細な説明

フレックス レイアウトは現在よく使用されるレイアウト方法ですが、場合によっては小さな問題が発生するこ...

VueでJSXを使用する方法

JSXとは何かJSX は Javascript の構文拡張であり、JSX = Javascript ...

tbodyタグの魔法はテーブルコンテンツの表示を高速化します

他の人のウェブページを保存して見たことがあると思いますが、特にdwで開くと、多くのウェブページに&l...

CSS 位置固定左と右の二重配置実装コード

CSS 位置position 属性は、要素の配置タイプを指定します。位置プロパティには 5 つの値が...

nginx がどのようにして高いパフォーマンスとスケーラビリティを実現するのかを深く理解する

NGINX の全体的なアーキテクチャは、連携して動作する一連のプロセスによって特徴付けられます。メイ...

HTMLページが3秒後に自動的にジャンプする3つの一般的な方法

実際には、N 秒後にページを自動的にジャンプさせるにはどうすればよいかという問題によく遭遇します。私...