一つのWebサーバーで複数のWebサイトを運用するケースは、開発環境と本番環境の分離、コスト削減、検証用サイトの併設など、現場ではごく一般的です。
その際に必ず関わってくるのが「ホスト名(hostname)」の設計と設定です。
IISでは「バインド設定」によってホスト名とWebサイトを紐づけますが、この設計を誤ると、
- 意図しないサイトが表示される
- SSLが正しく適用されない
- 本番環境に検証サイトが露出する
といった重大なトラブルにつながる可能性があります。
本記事では、ホスト名の基本概念から、IISで複数サイトを安全かつ安定して運用するための実践的な設計ポイントまでを解説します。
IISを扱うインフラエンジニア・Webアプリケーションエンジニアの方を主な対象としています。
ホスト名とは何か?基本概念をおさらい
この章では、ホスト名の役割とDNSとの関係を整理し、IIS設定を理解するための前提知識を確認します。
ホスト名の役割とDNSの関係
ホスト名とは、ネットワーク上でサーバーやサービスを識別するための名前です。
ユーザーは通常、IPアドレスではなくホスト名を指定してWebサイトへアクセスします。
代表的な例として、以下のようなホスト名があります。
example.comwww.example.comapi.example.com
これらのホスト名は DNS(Domain Name System) によってIPアドレスへ変換され、最終的にWebサーバーへリクエストが届きます。
IISでは、受信したHTTPリクエストの
「IPアドレス + ポート番号 + ホスト名」
の組み合わせを基に、どのWebサイトに処理を渡すかを判断します。
IISにおけるホスト名の重要性
IISでは、1つのIPアドレス・1つのポート(例:80 / 443)であっても、ホスト名が異なれば別のWebサイトとして扱うことができます。
そのため、ホスト名は IISにおけるサイト切り分けの中核となる要素です。
特にホスト名を指定しないサイトが存在すると、
想定外のサイトが「デフォルト」として表示されてしまうため注意が必要です。
ホスト名の命名ルールとベストプラクティス
ここでは、技術的な制約と運用面の観点から、ホスト名設計の基本ルールを整理します。
技術的な命名ルール(RFC準拠)
ホスト名には、DNS仕様(RFC)に基づく制約があります。
- 使用可能文字:英小文字・数字・ハイフン(-)
- 先頭・末尾にハイフンは使用不可
- アンダースコア(
_)は使用不可 - 大文字は使用可能だが、慣例的に小文字を使用
これらの制約は、DNSやWebサーバー、各種ミドルウェア間での互換性を保つために定められています。
独自ルールを使用すると、環境によっては名前解決に失敗する原因となります。
NG例:
web_app.example.comtest_example.com
運用を意識した命名の考え方
実務では、環境・役割・サービス種別が直感的に分かる命名が重要です。
よく使われる要素は以下の通りです。
- 環境別:
dev/test/stg/prod - 役割別:
www/api/admin - サービス別:
auth/batch/media
例:
dev.api.example.comstg.admin.example.comwww.example.com
将来的にサイトやサーバーが増えても混乱しないよう、最初に命名規則を決めておくことが重要です。
1台のWebサーバーで複数サイトをホストする仕組み(IIS)
ここでは、IISで複数のWebサイトを共存させる仕組みを整理します。
IISの「バインド」とは何か
IISでは、Webサイトごとに「バインド(Binding)」を設定します。
バインドには次の情報が含まれます。
- IPアドレス
- ポート番号
- ホスト名
この3点の組み合わせが 一意 である必要があります。
ホスト名によるサイト切り分け
以下のような構成が一般的です。
- SiteA:
site1.example.com - SiteB:
site2.example.com
IPアドレスとポートが同じでも、ホスト名が異なれば問題ありません。
これを ホスト名ベースのバーチャルホスト と呼びます。
IISでのホスト名設定手順(基本)
ここでは、IISマネージャーでの基本的な設定ポイントを解説します。
IISマネージャーでの設定ポイント
Webサイトを選択し、「バインドの編集」を開きます。
設定時の主なポイントは以下の通りです。
- 種類:
httpまたはhttps - IPアドレス:通常は「すべて未割り当て」
- ポート:80 / 443
- ホスト名:
site1.example.comなど
ホスト名を空欄にすると、すべてのホスト名を受け付ける状態となり、
意図しないサイトが表示される原因になります。
SSL(HTTPS)利用時の注意点
HTTPS利用時は、以下の点を必ず確認します。
- ホスト名とSSL証明書の CN / SAN が一致しているか
- 複数サイトで証明書を共有する場合はワイルドカード証明書またはSAN証明書を使用しているか
- SNI(Server Name Indication)が有効になっているか
SNIを利用すると、同一IP・同一ポートでも複数のHTTPSサイトを運用できます。
ブラウザ
↓(ホスト名付きでHTTPS通信)
IIS(SNI)
↓
対応するSSL証明書+Webサイト
DNS設定とhostsファイルの活用
公開環境でのDNS設定
本番環境では、DNSサーバーにレコードを登録する必要があります。
- Aレコード:ホスト名 → IPアドレス
- CNAME:別ホスト名へのエイリアス
IIS側の設定だけでは、外部からはアクセスできません。
開発・検証環境でのhosts活用
開発や検証環境では、hostsファイルを使うと便利です。
127.0.0.1 site1.local
127.0.0.1 site2.local
DNSを変更せずにホスト名ベースのIIS設定を検証できます。
実例:開発〜本番環境でのホスト名設計パターン
実務でよく使われる設計例を以下に示します。
- 開発:
dev.site1.local - 検証:
test.site1.example.com - ステージング:
stg.site1.example.com - 本番:
www.site1.example.com - API:
api.site1.example.com
環境をホスト名で明示することで、
- 誤アクセスの防止
- ログ解析の容易化
- SSL・Firewall設定の明確化
といったメリットがあります。
よくある設定ミス(IIS × ホスト名)
複数サイト運用で特に多いミスは以下の通りです。
- バインドにホスト名を設定していない
- HTTPSで証明書は設定したがSNIを有効にしていない
- hosts設定を本番移行後も残してしまう
- 環境ごとにホスト名ルールが統一されていない
事前に把握しておくことで、多くのトラブルを防げます。
まとめ:IIS複数サイト運用ではホスト名設計が安定性を左右する
IISで複数のWebサイトを運用する場合、ホスト名の設計は単なる命名ではなく、
- DNS
- SSL
- セキュリティ
- 運用ルール
すべてに影響する重要な要素です。
最後に、確認用のチェックリストを挙げます。
- ホスト名の命名規則は決まっているか
- バインドに必ずホスト名を指定しているか
- SSL証明書とホスト名は一致しているか
- DNS/hosts設定は環境ごとに整理されているか
これらを意識することで、スケーラブルでトラブルの少ないIIS運用が実現できます。
複数サイト構成を検討している場合は、まずホスト名設計から見直してみてください。


コメント