50% off 全プラン、期間限定。料金は $2.48/mo
残り13分
ウェブ・ビジネスアプリ

1 つのサーバーで複数のウェブサイトをホストする (Apache & IIS) 🌐

リリー・カーネル By リリー・カーネル 13分の読了時間 更新日:2023年9月18日
1 つのサーバーで複数のウェブサイトをホストする (Apache & IIS) 🌐

オンラインホスティングにアクセスすると、1つのサーバーで複数のウェブサイトをホストする方法を知りたくなる可能性があります。これは複雑に見えるかもしれませんが、このトピックについてより詳しく知るにつれて、技術ガイドの助けを借りてこれを行える可能性があることを理解できます。

さまざまなウェブサーバーは、世界中で無料で、オープンソースで、広く使用されているサービスを提供できます。ただし、1つのサーバーで複数のウェブサイトをホストする方法を説明する前に、ウェブサーバーとは何か、およびどのように機能するかを知る必要があります。

ウェブサーバーとは?

Web サーバーは、テキスト、画像、動画、アプリケーションデータなど、Web サイトのコンテンツを保存して配信します。言い換えると、これらのコンテンツをリクエストするクライアントは、Web サーバーの助けによってそれらを使用できます。最も一般的なクライアントの 1 つは、ユーザーがリンクをクリックしたり、ファイルをダウンロードしたりするときに、Web サイトからデータをリクエストする Web ブラウザプログラムです。

Web サーバーは ハイパーテキスト転送プロトコル (HTTP) を通じて Web ブラウザと通信します。ほとんどの Web ページのコンテンツはハイパーテキストマークアップ言語 (HTML) でエンコードされています。コンテンツはテキストや画像などの静的なもの、または顧客が購入対象にマークしたアイテムのリストなどの動的なものです。ほとんどの Web サーバーは サーバーサイドスクリプト 言語をサポートしており、ビジネスロジックを通信にエンコードして動的コンテンツを提供します。通常、Active Server Pages (ASP)、JavaScript、PHP、Python、Ruby などの言語がサポートされています。

ウェブサーバーの仕組みは?

Web サーバーは クライアント-サーバー モデルに基づいて動作します。この標準的な構造では、 クライアント がサーバーからリソースまたはサービスをリクエストします。 サーバー.

Web サーバーは、Web クライアントのリクエストを処理するために複数のステップを経ます:

  1. ユーザーがウェブサイトにコンテンツを読み込もうとするとき、ウェブブラウザはアクセスをリクエストします(HTTPリクエストネット経由で実現。
  2. Webブラウザが要求されたウェブサイトのIPアドレスを検索します。ウェブページのURLを使用して翻訳します。 ドメインネームシステム (DNS) またはそのキャッシュを検索します。このプロセスにより、ウェブサーバーの場所を特定できます。つまり、サイトのファイルがホストされている場所です。
  3. この時点で、ウェブサーバーが HTTP リクエストを受け取り、次を通じて処理します HTTPサーバー.
  4. HTTP サーバーがリクエストを受け取ると、サーバーファイルを検索して必要なデータを取得します。
  5. ウェブサーバーはリクエストを送ってきたブラウザにサイトファイルを返します。その後、ユーザーはウェブサイトのコンテンツを閲覧できます。

ただし、HTTPサーバーが要求されたファイルを見つけられない、または処理できない場合は、Webブラウザーにエラーメッセージが表示されることに注意してください。Webサーバーの基本的な概念に今なら精通しているので、1つのサーバー上で複数のWebサーバーをホストする方法も簡単に学べます。 

1つのサーバーで複数のウェブサイトをホストする: Apache

複数のサイトを1つのサーバーでホストする場合、Apacheの仮想ホストファイルを使用して、どのドメインを使用するかを指定する必要があります。サイトリクエストを解決するために使用される方法の1つは 名前ベースの仮想ホスト誰かがあなたのサイトにアクセスすると、リクエストがサーバーに送られます。サーバーはドメイン名に基づいて、どのサイトのファイルを配信するかを判断します。このテクニックを使えば、同じIPアドレスで複数のサイトを1つのサーバーでホストできます。このガイドでは、各ドメインの仮想ホストファイルをセットアップする方法を説明します。詳細に進む前に、rootアカウントでログインしておく必要があることを覚えておいてください。

参考記事:Linux vs Windows ホスティング:どちらがあなたに合っている?

ステップ1: 各サイト用にディレクトリを作成する

このコマンドで apache2 をインストールします

Debian ベースのシステム向け

apt install apache2 -y

CentOS ベースシステム用

yum install apache2 -y

ホストするサイトごとに、ディレクトリを作成する必要があります (/var/www フォルダ内)。domain.com と domain2.com のようなドメイン名の使用を検討してください。

mkdir -p /var/www/domain.com/public_html
mkdir -p /var/www/domain2.com/public_html

ステップ 2: フォルダのアクセス権を設定する

chmod -R 755 /var/www

ステップ 3: インデックスページを設定する

ホームページを表示するには、以下を確認する必要があります index.html ファイルがドメインごとに作成されます。シンプルな設定も可能です。例えば domain.com のテスト このファイルで。

vim /var/www/domain.com/public_html/index.html

domain.com のテスト

次に、以下を使用して保存して終了する必要があります 逃げる ボタンをクリックしてテキストを入力: wq

以下のコマンドを使用して、2番目のドメインでこれらのステップをすべて繰り返すことができます。

vim /var/www/domain2.com/public_html/index.html

ステップ 4: サイトごとに設定ファイルをコピーする

各サイト用にデフォルト設定ファイルをコピーしておく必要があります。将来のサイト作成時に備えて、デフォルトコピーを常に保持するようにしてください。

cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/domain.com.conf
cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/domain2.com.conf

ステップ 5: サイトごとに設定ファイルを編集する

少なくとも、以下のハイライト行を変更および追加する必要があります <VirtualHost *:80> </VirtualHost>タグ.

ご注意ください ServerAlias はドメイン名の代替表記で、この場合も含めてほとんどの場合、ドメイン名の前に www を付けます。これにより、他のユーザーは www 付きでも www なしでもサイトにアクセスできます(ServerName).

vim /etc/apache2/sites-available/domain.com.conf

サイト情報
サイト情報

を使用して再度終了して保存 wq。このプロセスを繰り返す必要があります。 domain2.com.conf ファイルを必ず更新してください ServerName, ServerAlias、そして DocumentRoot 2番目のドメイン用。

参考記事:Apache vs NGINX

 ステップ 6: 設定ファイルを有効にする

デフォルトでは、サーバーは 000-default.conf ファイルを読み込むよう設定されています。しかし前のステップでドメインごとに新しい設定ファイルを作成しました。そのため、デフォルトファイルを無効化して、新しい設定ファイルに合わせたものを使う必要があります。

a2dissite 000-default.conf

新しく作成した各 .conf ファイルを有効にすることで、サーバーをドメインにマッピングできます。

a2ensite domain.com.conf
a2ensite domain2.com.conf

それでは、Apache を再起動して、加えた変更を反映させましょう。

systemctl restart apache2

ステップ 7: Apache の設定を確認する

Apacheを起動すると、以下を編集することで設定が機能していることが確認できます /etc/host ファイル お使いのコンピュータまたは お客様のドメイン DNS.

各項目の設定が完了したら、ブラウザでウェブサイトにアクセスして、ステップ 3 で作成した index.html ページを確認できます。

合わせてお読みください: オンプレミス対クラウド

1 つのサーバーで複数の Web サイトをホストする: IIS

IIS(インターネット インフォメーション サービス)ウェブサーバーは、数十個から数百個のウェブサイトをホストできます。複数のウェブサイトを同じサーバー上でホストし、同じ TCPポート。ただし、IIS Manager のインターフェースでは、8080 などの別ポートにバインドせずに別の Web サイトをホストできることが表示されます。このセクションでは、同じ IIS サーバー上で複数の Web サイトをホストし、同じポートと IP アドレスにバインドする方法、または異なる IP アドレスにバインドする方法について説明します。

Windows サーバーに IIS をインストールするには?

Windows に IIS をインストールすると、空の Default Website が作成され、以下のポートでリッスンします 標準ウェブポート HTTP – TCP 80。技術的には、当サイトはポート TCP/80 にバインドされています。ブラウザでこのサイトを開くには、IIS サーバーの名前(「http://web-srv1」)またはその IP アドレス(「http://192.168.1.100」)を入力する必要があります。

ステップ1: IISウェブサイトのバインド 

Windows Server 上で動作する IIS ウェブサーバーは、複数のウェブサイトをホストするのに役立ちます。ただし、IIS が HTTP リクエストを正しく配信するには、各ウェブサイトを一意の値で識別する必要があります。IIS ウェブサイトには、各ウェブサイトの一意の組み合わせを構成する 3 つの属性があります。これらの属性は以下の通りです。

  • TCP ポート番号
  • IPアドレス
  • ホストヘッダー(ホスト名)

ホストされているウェブサイトの情報は、 ServerBindings IIS Metabase の属性であり、形式は次のようになっています: IP:ポート:ホスト名。複数のウェブサイトを1つのサーバー(同じポートとIPアドレス)でホストする場合は、 ユニークなHostヘッダー.

Hostヘッダーとは何かと疑問に思うかもしれません。Hostヘッダーはサーバーへのリクエストの一部で、そのリクエストがどのウェブサイト宛であるかを指定します。したがって、ウェブサーバー側でこのHostヘッダーを指定する必要があります。DNSレコードがホスト名とIISウェブサーバーのIPアドレスと一致していることに注意してください。

では、IISサーバーで実行されておりポート80でリッスンしているウェブサイトがあると仮定しましょう。同じポートに2番目のウェブサイトをバインドする場合、どうすればいいでしょうか。

ステップ2:2番目のIISウェブサイトをバインドする

Internet Information Service(IIS)Managerで、「ウェブサイトの追加」ウィンドウを使用して別のウェブサイトを作成し、TestSiteと名付けます。このウェブサイトはC:\inetpub\TestSiteに配置されます。まだホスト名を指定しないように注意してください。

サイトのコンテンツを C:\inetpub\TestSiteにコピーした後、Internet Information Service(IIS)Managerを開き、サーバーのホスト名セクションでサイトを追加してウィザードを開きます。

hostwebsites.png

新しいサイトを追加-IIS
ウェブサイトの追加ウィンドウ

 

「OK」をクリックすると、この両方のウェブサイトに対して同じバインディングは使用できないという警告メッセージが表示されます。 binding *:80 は両方のウェブサイトに割り当てられています。

ウェブサイトを追加

バインディング 80 は別のサイトに割り当てられています
バインディングを確認

この警告に同意すると、ポート80にバインドされた別のサイトが作成されます。最初のウェブサイトを停止しない限り、このサイトを起動することはできません。次の画像に注意を払うことで、これについてさらに詳しく理解できます。

4 ウェブサイトに異なるバインディングポートを割り当てる
ウェブサイトに異なるバインディングポートを割り当てる

windows-original-vps Windows VPSホスティング

手頃な価格のWindows VPS プランをチェックしてください。強力なハードウェア、低遅延、そして選択できる無料のWindowsが付いています。

無料のWindowsを今すぐ手に入れる

ホストヘッダーを使用して IIS サーバーで複数の Web サイトをホストする

2番目のIISウェブサイトのユニークなバインディングを作成するには、別の名前(ホスト名)を選択する必要があります。そのために、右クリックします TestSite そして選択する 編集 Bindings。必要なバインディングを選択して、クリックします 編集.

次の画像でわかるように、ユーザーがアクセスするユニークなホスト名を指定する必要があります。このチュートリアルではTestSiteを使用するため、ホスト名フィールドに入力します。

test-iis-site-binding
サイトバインディングの編集ウィンドウ

コマンドプロンプトを使用してIISサイトバインディングを設定できます。IIS 7以降を使用している場合、IISサイトバインディングを設定するコマンドを実行した後、次のような結果が表示されます。

C:\Windows\System32\inetsrv\appcmd.exe set site /site.name:testsite /+bindings.[protocol='http',bindingInformation='*:80:testsite']

最初のウェブサイトと同様に、2番目のウェブサイトも起動できます。

start-iis-site
ウェブサイトを管理

この時点で、サーバーのDNSレコード(AまたはCNAME)を追加して、IISウェブサーバーのIPアドレスまたはホスト名を参照する必要があります。Active Directoryドメインを使用している場合は、ドメインコントローラーでDNSレコードを作成する必要があります。IISを使用すると、 CNAME DNS コンソールで TestSite という名前のレコードを作成します(dnsmgmt.msc)。IIS サーバーのドメイン名を FQDN ターゲットホストとして設定します。

DNS コンソールで TestSite という名前の CNAME レコードを作成
DNS コンソールで TestSite という名前の CNAME レコードを作成

PowerShell と以下のコマンドでも DNS レコードを作成できます:

Add-DnsServerResourceRecordCName -HostNameAlias web-srv1.woshub.com -Name testsite -ZoneName woshub.com

では開いてみましょう http://TestSite ブラウザで。正しく設定されていれば、正常に開くはずです。

同じ80 HTTPポート上の複数のIISサイト
testsite の最終結果

 

linux-vps Linuxホスティング シンプルに

ウェブサイトやウェブアプリをもっと良い方法でホストしたいですか?新しいものを開発中ですか?それとも Windows が気に入らないですか?それが Linux VPS を用意した理由です。

Linux VPSを取得する

IIS サーバーで異なる IP アドレスを使用して複数のサイトを実行する

ここでは IIS ウェブサーバーで異なる IP アドレスを使って 2 つのサイトを実行する方法について説明します。まず、Windows サーバーに別の VLAN インターフェースを追加するか、NIC に追加の IP アドレス(エイリアス)を割り当てる必要があります。

このチュートリアルでは、サーバーのプライマリ IP アドレスが 192.168.13.100 で、同じネットワークアダプターに IP エイリアス 192.168.13.101 を追加します:

Get-NetIPAddress | ft IPAddress, InterfaceAlias, SkipAsSource
New-NetIPAddress –IPAddress 192.168.13.101 –PrefixLength 24 –InterfaceAlias “Ethernet” –SkipAsSource $True

DNS サーバーで新しいサイト用の A レコードを作成する必要があります:

Add-DnsServerResourceRecordA -Name NewSite3 -IPv4Address 192.168.13.101 -ZoneName woshub.com -TimeToLive 01:00:00 –CreatePtr

次に、サイトバインディング設定を開き、サイトをホストの追加 IP アドレスにバインドします。PowerShell を使用して IIS サーバー上のサイトバインディングを管理できます。このために WebAdministration モジュールが使用されます:

Import-Module WebAdministration

利用可能なすべての IIS サイトとそのバインディングに関する情報を確認できます:

Get-IISSite

または特定の 1 つのサイトについてのみ:

(Get-Website -Name NewSite).bindings.Collection

bindings.Collection

このコマンドを使用してサイトのバインディングを変更します。IP アドレス、ポート、または名前を変更できることに注意してください:

Set-WebBinding -Name NewSite1 -BindingInformation "192.168.13.101:80:NewSite1" -PropertyName 'Port' -Value '8080'
Set-WebBinding -Name NewSite1 -BindingInformation "192.168.13.101:8080:NewSite1" -PropertyName 'IPAddress' -Value '192.168.13.100'

このコマンドで特定の IIS サイトに新しいバインディングを追加できます:

New-IISSiteBinding -Name NewSite1 -BindingInformation "*:9090:" -Protocol http

バインディングの削除は次のコマンドで行います:

Remove-IISSiteBinding -Name NewSite1 -BindingInformation "*:9090:"

ここまで見てきたように、IIS ウェブサーバーで複数のウェブサイトを実行できます。異なる IP アドレス上でも、同じ IP アドレスと TCP ポート番号上でも実行可能です。

最後に: 1 つのサーバーで複数の Web サイトをホストする

 この記事は主にサーバーの基本概念に焦点を当て、1 台のサーバーで複数のウェブサイトをホストする方法を学ぶのに役立てます。また複数の Linux VPS ホスティングソリューションも提供しており、これを使って 1 台のサーバーで異なるウェブサイトを実行できます。Cloudzy のプランは複数のサーバーを所有するコストを削減できます。また、サーバーリソースは簡単にアップグレード可能で、RAM、ストレージ、プロセッサー、帯域幅を増やせます。

よくあるご質問

 

単一の Web サーバーホストで複数の Web サイトを持つことはできますか?

十分な HDD 容量、RAM、CPU パワーのある大規模なサーバーがあれば、仮想ホスティングを使用して複数のウェブサイトをホストできます。ウェブサーバー上で無制限の数のウェブサイトをホストできます。

1 つのサーバーで 2 つの Web サイトを実行するには?

1 台のウェブサーバーで複数のウェブサイトをホストすることを仮想サーバーと呼びます。さらに、選択したサーバーがトラフィックとディスク容量の要件に対応するのに十分なリソースを持っていることを確認する必要があります。

VPS サーバーは何に使われていますか?

VPS はホスティングサービスで、サーバー上に専有(プライベート)リソースを提供できます。VPS の使用は共有ホスティングより安全で安定した解決策であることに注意してください。共有ホスティングは専有サーバースペースを提供しません。

なぜ VPS を使うのですか?

VPS ホスティングは広く利用されています。一般的に専有ホスティングより低コストですが、共有ホスティングより信頼性、セキュリティ、パフォーマンスに優れています。

共有

ブログから最新記事

読み続ける。

Odooレビュー機能の画像。左側に大きなヘッドラインテキスト、右側にOdooロゴが配置され、柔らかな紫色のクラウドテーマの背景に浮かぶアプリインターフェースパネルで囲まれています。
ウェブ・ビジネスアプリ

包括的なOdooレビュー:Odooはあなたのビジネスに適していますか?

Odooは成長中の企業に最も検討されているERPプラットフォームの1つです。理由はシンプルです。1つの場所で多くを実現できるからです。売上、会計、在庫

ジム・シュワルツジム・シュワルツ 11分の読み取り
カラフルなグラデーション背景、デスクトップモニター、コードエディタ、ぼやけたダッシュボードプレビュー、左側の大きなヘッドラインテキストを備えたオープンソースWordPressの代替機能画像。
ウェブ・ビジネスアプリ

開発者向けに厳選されたベストなオープンソースWordPress代替製品

WordPressはまだ重要であり、多くのサイトに十分に機能しています。プラグインディレクトリには60,000以上のプラグインがあり、テーマディレクトリには14,000以上の無料テーマがあります。

ジム・シュワルツジム・シュワルツ 14分読む
両方のプラットフォームロゴと、開発者が選ぶべきCMSを尋ねるヘッドラインを含むAutomad対WordPressの機能画像。
ウェブ・ビジネスアプリ

Automad対WordPress:2つの最高のCMSプラットフォーム間の詳細な比較

AutomadとWordPressは同じ仕事を2つの異なる方法で実現します。AutomadはフラットファイルCMSおよびテンプレートエンジンであるため、コンテンツはデータベースの代わりにファイルに存在しますが、WordPressは

ジム・シュワルツジム・シュワルツ 9分で読む

デプロイの準備はできていますか? $2.48/月からの価格

2008年創業の独立系クラウド。AMD EPYC、NVMe、40 Gbps。14日間返金保証。