オンラインホスティングにアクセスすると、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 クライアントのリクエストを処理するために複数のステップを経ます:
- ユーザーがウェブサイトにコンテンツを読み込もうとするとき、ウェブブラウザはアクセスをリクエストします(HTTPリクエストネット経由で実現。
- Webブラウザが要求されたウェブサイトのIPアドレスを検索します。ウェブページのURLを使用して翻訳します。 ドメインネームシステム (DNS) またはそのキャッシュを検索します。このプロセスにより、ウェブサーバーの場所を特定できます。つまり、サイトのファイルがホストされている場所です。
- この時点で、ウェブサーバーが HTTP リクエストを受け取り、次を通じて処理します HTTPサーバー.
- HTTP サーバーがリクエストを受け取ると、サーバーファイルを検索して必要なデータを取得します。
- ウェブサーバーはリクエストを送ってきたブラウザにサイトファイルを返します。その後、ユーザーはウェブサイトのコンテンツを閲覧できます。
ただし、HTTPサーバーが要求されたファイルを見つけられない、または処理できない場合は、Webブラウザーにエラーメッセージが表示されることに注意してください。Webサーバーの基本的な概念に今なら精通しているので、1つのサーバー上で複数のWebサーバーをホストする方法も簡単に学べます。
1つのサーバーで複数のウェブサイトをホストする: Apache
複数のサイトを1つのサーバーでホストする場合、Apacheの仮想ホストファイルを使用して、どのドメインを使用するかを指定する必要があります。サイトリクエストを解決するために使用される方法の1つは 名前ベースの仮想ホスト誰かがあなたのサイトにアクセスすると、リクエストがサーバーに送られます。サーバーはドメイン名に基づいて、どのサイトのファイルを配信するかを判断します。このテクニックを使えば、同じIPアドレスで複数のサイトを1つのサーバーでホストできます。このガイドでは、各ドメインの仮想ホストファイルをセットアップする方法を説明します。詳細に進む前に、rootアカウントでログインしておく必要があることを覚えておいてください。
ステップ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を開き、サーバーのホスト名セクションでサイトを追加してウィザードを開きます。


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


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

Windows VPSホスティング
手頃な価格のWindows VPS プランをチェックしてください。強力なハードウェア、低遅延、そして選択できる無料のWindowsが付いています。
無料のWindowsを今すぐ手に入れるホストヘッダーを使用して IIS サーバーで複数の Web サイトをホストする
2番目のIISウェブサイトのユニークなバインディングを作成するには、別の名前(ホスト名)を選択する必要があります。そのために、右クリックします TestSite そして選択する 編集 Bindings。必要なバインディングを選択して、クリックします 編集.
次の画像でわかるように、ユーザーがアクセスするユニークなホスト名を指定する必要があります。このチュートリアルではTestSiteを使用するため、ホスト名フィールドに入力します。

コマンドプロンプトを使用してIISサイトバインディングを設定できます。IIS 7以降を使用している場合、IISサイトバインディングを設定するコマンドを実行した後、次のような結果が表示されます。
C:\Windows\System32\inetsrv\appcmd.exe set site /site.name:testsite /+bindings.[protocol='http',bindingInformation='*:80:testsite']
最初のウェブサイトと同様に、2番目のウェブサイトも起動できます。

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

PowerShell と以下のコマンドでも DNS レコードを作成できます:
Add-DnsServerResourceRecordCName -HostNameAlias web-srv1.woshub.com -Name testsite -ZoneName woshub.com
では開いてみましょう http://TestSite ブラウザで。正しく設定されていれば、正常に開くはずです。

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

このコマンドを使用してサイトのバインディングを変更します。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 ホスティングは広く利用されています。一般的に専有ホスティングより低コストですが、共有ホスティングより信頼性、セキュリティ、パフォーマンスに優れています。