原作者xuyan0のJianshuから転載、リンクhttps://www.jianshu.com/p/b34c78bf9bf0、侵害がある場合は、削除するために連絡してください
前書き
Apache Webサーバーは、インターネット上のアクティブなWebサイトの半分以上を実行しており、その柔軟で強力な機能で人気があります。
Apacheは、その機能とコンポーネントを、個別にカスタマイズおよび構成できるユニットに分解します。単一のWebサイトを表す基本ユニットを仮想ホストと呼びます。マッチングシステムの助けを借りて、仮想ホスティングはサーバーに複数のWebサイトを同時に実行する可能性を提供します。これは、同じサーバーで複数のWebサイトを実行しようとする人と密接に関連しています。
同じサーバーで実行されている可能性のある他のWebサイトを気にする必要はありません。構成されたWebサイトのアドレスを指定すると、訪問者は特定のコンテンツが保存されているディレクトリに移動します。サーバーがWebサイトによってもたらされる訪問者フローを処理できる限り、このソリューションはソフトウェアに制限されることなく継続的に拡張できます。
このガイドでは、CentOS7サーバーに複数のApache仮想ホストをデプロイする方法を示します。このプロセスでは、さまざまなWebサイトへの訪問者から要求されたコンテンツを提供する方法を学習します。
前提条件
このガイドを読み続ける前に、「CentOS 7のApacheのインストール、[MySQL](https://cloud.tencent.com/product/cdb?from=10680)、PHPガイド」の最初のステップを完了していることを確認してください-Apacheのインストール。
注:このガイドでは、サーバーアドレスの例として8.8.8.8を使用しています。それぞれアドレス8.8.8.8:8080と8.8.8.8:8086にWebサイトを展開します。実際の操作では、8.8.8.8をサーバーのIPアドレスに置き換え、8080および8086を実際にWebサイトを展開するときに使用したポート番号に置き換えてください。
最初のステップ-ディレクトリ構造を作成する
まず、データサービスを提供するWebサイトをサポートするディレクトリ構造を作成する必要があります。
デプロイしようとしている仮想ホストのドキュメントルート(Apacheはこのトップレベルディレクトリを使用して、サービスの提供に使用されるコンテンツを検索および検索します)は、各Webサイト自体が/ var / wwwディレクトリの下にあるディレクトリに設定されます。したがって、/ var / wwwディレクトリの下に仮想ホストごとにディレクトリを作成します。
各仮想ホストディレクトリに、Webサイトの実際のコンテンツを格納するためのhtmlディレクトリを作成します。これにより、サーバーに柔軟性が追加されます。
これで、外部サービスを提供する必要のある2つのWebサイト、webapp1とwebapp2があるとします。 mkdirコマンドを使用してこれらのディレクトリを作成できます(新しいディレクトリ内に新しいディレクトリをネストできるように-pフラグを付けます)。
$ sudo mkdir –p /var/www/webapp1/html
$ sudo mkdir –p /var/www/webapp2/html
注:上記のパスのwebapp1とwebapp2を、デプロイする必要のある実際のWebアプリの名前に置き換える必要があります。
ステップ2-権限を付与する
これでファイルのディレクトリ構造が作成されましたが、これらのディレクトリ構造はrootユーザーが所有しています。サーバー上の通常のユーザーがWebディレクトリ内のファイルを変更できるようにする場合は、chownコマンドを使用してディレクトリの所有者を転送できます。
$ sudo chown –R
$ sudo chown –R
上記のchownコマンドを送信すると、$ USER変数は現在サーバーにログインしているユーザーの値を取得します。このようにして、通常のユーザーはhtmlサブディレクトリの所有権を取得しました。
さらに、ここでディレクトリのアクセス許可を変更して、一般的なWebディレクトリとその内部サブディレクトリおよびファイルの読み取りを許可し、Webページが通常訪問者にサービスを提供できるようにする必要があります。
$ sudo chmod –R 755 /var/www
これで、サーバーにWebサイトへの訪問者にコンテンツを提供するために必要な権限が付与され、サーバー上のユーザーが適切なフォルダーにコンテンツを作成できるようになります。
手順3-仮想ホストごとにサンプルページを作成する
ディレクトリ構造の準備ができたので、外部サービス用のコンテンツの作成を開始できます。
デモンストレーションの目的で、私たちのページは非常に単純になります。サイトごとにindex.htmlページを作成するだけです。
webapp1から始めます。このコマンドを使用して、index.htmlファイルを作成できます。
$ sudo vi /var/www/webapp1/html/index.html
これにより、空白のファイルが開き、小文字のIを押して編集します。このページが接続されているWebサイトを示すために、ファイルにHTMLコードを入力できます。このガイドでは、サイトファイルは次のようになります。
次に、ESCを押して、「wq!」と入力し、ファイルを保存して閉じます。
次のコマンドを使用して、上記で作成したテンプレートファイルを2番目のサイトのindex.htmlファイルとしてコピーできます。
$ sudo cp /var/www/webapp1/html/index.html /var/www/webapp2/html/index.html
次に、ファイルを開き、サイトに関連する情報を変更します。
$ sudo vi /var/www/webapp2/html/index.html
このファイルを保存して終了します。これで、仮想ホスト構成のテストに必要なページが準備できました。
ステップ4-新しい仮想ホストファイルを作成する
仮想ホストファイルは、各Webサイトの構成を指定し、ApacheWebサーバーがさまざまなサイトに対する訪問者の要求にどのように応答するかを決定するファイルの一種です。
まず、仮想ホストを格納するためのディレクトリと、仮想ホストが訪問者にサービスを提供する準備ができていることをApacheに示すためのディレクトリを作成する必要があります。 sites-availableディレクトリには、すべての仮想ホストファイルが格納され、sites-enabledディレクトリには、サービスを提供するホストのシンボリックリンクが格納されます。次のコマンドを使用して、これら2つのディレクトリを作成できます。
$ sudo mkdir /etc/httpd/sites-available
$ sudo mkdir /etc/httpd/sites-enabled
注:ここでのディレクトリレイアウトは、Debianコミュニティの寄稿者によって導入されました。仮想ホストに柔軟性を追加するために、ここではこのスキームを採用しています(仮想ホストを一時的に有効または無効にする方が簡単です)。
次に、サイトが有効なディレクトリで仮想ホストを探すようにApacheに指示する必要があります。この目標を達成するために、メインのApache構成ファイルを編集し、追加の構成ファイルが配置されているオプションのディレクトリを宣言する行を追加します。
$ sudo vi /etc/httpd/conf/httpd.conf
ファイルの最後に次の行を追加します。
IncludeOptional sites-enabled/*.conf
上記の行を追加したら、ファイルを保存して閉じます。これで、最初の仮想ホストファイルを作成する準備が整いました。
最初の仮想ホストファイルを作成します
まず、root権限を持つwebapp1仮想ホストファイルを作成します。
$ sudo vi /etc/httpd/sites-available/webapp1.conf
注:上記の構成ファイルの概要によると、すべてのホストファイル名は.confで終わる必要があります。
ファイルwebapp1.confで、最初に仮想ホストwebapp1がリッスンするポート番号が8080であることを指定し、ファイル内のコンテンツが仮想ホスト構成であることを示すシーケンスペアを指定します。
次に、仮想ホストにアクセスするためのドメイン名の将来の使用を容易にするために、サーバーの名前をwww.webapp1.comとして宣言します。同時に、エイリアスwebapp1.comもサーバーに割り当てたため、www.webapp1.comとwebapp1.comに送信されるリクエストの内容は同じになります。
最後に、外部からアクセスできるWebファイルが保存されているルートディレクトリを指定して、最初のホストファイルの作成を終了します。また、このWebサイトのエラーメッセージとリクエストレコードを保存する場所をApacheに通知します。
これらのエントリを書き込んだ後、ファイルを保存して閉じることができます。
残りの仮想ホストファイルをコピーしてカスタマイズします
最初の仮想ホストファイルを作成したので、そのファイルをコピーして、必要に応じて作成および変更し、2番目の仮想ホストファイルを取得できます。
まず、cpコマンドを使用してファイルをコピーします。
$ sudo cp /etc/httpd/sites-available/webapp1.conf /etc/httpd/sites-available/webapp2.conf
次に、root権限でこの新しいファイルを開いて編集します。
$ sudo vi /etc/httpd/sites-available/webapp2.conf
次に、2番目のWebサイトを指すように、新しいファイルのすべての構成情報を変更する必要があります。編集が終了すると、2番目の仮想ホストファイルは次のようになります。
これらの変更を行った後、このファイルを保存して終了できます。
手順5-新しい仮想ホストファイルを有効にする
仮想ホストファイルを作成したので、それらを有効にして、Apacheが仮想ホストファイルを使用して訪問者にサービスを提供できるようにする必要があります。この目的のために、sites-enabledディレクトリの下に各仮想ホストのシンボリックリンクを作成できます。
$ sudo ln -s /etc/httpd/sites-available/webapp1.conf /etc/httpd/sites-enabled/webapp1.conf
$ sudo ln -s /etc/httpd/sites-available/webapp2.conf /etc/httpd/sites-enabled/webapp2.conf
これらの手順を完了したら、Apacheを再起動して、これらの変更を有効にします。
ステップ6-Apacheがファイアウォールを通過できるようにする
次に、FirewallDを使用して、Apacheがポート8080および8086のネットワークファイアウォールを通過できるようにする必要があります。
$ sudo firewall-cmd --permanent --add-port=8080/tcp
$ sudo firewall-cmd --permanent --add-port=8086/tcp
変更を有効にするには、ネットワークファイアウォールサービスを再起動します。
$ sudo firewall-cmd --reload
ステップ7-結果をテストする
仮想ホストを設定したので、ブラウザに次のアドレスを入力して結果をテストできます。
http://8.8.8.8:8080
次のようなページが表示されます。
同様に、別の仮想ホストアドレス(http://8.8.8.8:8086)にアクセスすると、そのために作成されたコンテンツが以前に表示されます。
上記で正常に構成したサイトにアクセスできる場合は、CentOS7サーバー用の新しいApache仮想ホストが正常に構成されています。
結論として
これで、ポート番号が異なるため、1つのCentOS7サーバーを使用して複数のWebサイトを実行できます。上記の手順に従って、サーバーの負荷範囲内で、ソフトウェアの制約なしに任意の数の仮想ホストを拡張できます。
参照リンク:
https://www.digitalocean.com/community/tutorials/how-to-set-up-apache-virtual-hosts-on-centos-7
https://devops.profitbricks.com/tutorials/how-to-set-up-ip-and-port-based-virtual-hosting-vhosts-with-apache-web-server-on-centos-7/
https://httpd.apache.org/docs/2.4/vhosts/examples.html#port
著者:xuyan0
リンク:https://www.jianshu.com/p/b34c78bf9bf0
出典:ブリーフブック
ショートブックの著作権は作者に帰属します。いかなる形式の再版についても、許可を得るために作者に連絡し、出典を示してください。