投稿 2022年10月30日
更新 2022年10月30日
専門用語の数:多
こんなわがままを実現します。
有名どころの「Apache」「nginx」で解説します。
実は同じポートを複数定義可能です。
シンプルに設定を2つ用意して、ドメインを書き分けるだけです。
Listen 80
<VirtualHost *:80>
# ドメイン指定
ServerName test1.com
# お好みの処理...
</VirtualHost>
<VirtualHost *:80>
# ドメイン指定
ServerName test2.com
# お好みの処理...
</VirtualHost>
server {
# 開放ポート
listen 80;
listen [::]:80;
# ドメイン指定
server_name test1.com;
# お好みの処理...
}
server {
# 開放ポート
listen 80;
listen [::]:80;
# ドメイン指定
server_name test2.com;
# お好みの処理...
}
Apacheもnginxも、同じポート設定が定義してある場合、
「ドメインが一致する」設定に誘導されます。
完全一致のため、サブドメイン(www.*)等は別途定義が必要です。
ただし、ドメインが一致する設定がない場合の挙動は、
Apacheとnginxでは少し異なります。
ドメインごとに用意した「VirtualHost」設定。
その定義内、どこにも一致するドメインがなかった場合、
一番最初に定義された「VirtualHost」に入るようになっています。
一致しなかった場合、ダミーページを表示させたい場合は、
ダミーの設定を一番最初に定義してあげましょう。
ダミーのため、「ServerName」は何でも構いません。
Listen 80
<VirtualHost *:80>
# ダミードメイン指定
ServerName dummy
# お好みの処理...
</VirtualHost>
<VirtualHost *:80>
# 本命ドメイン指定
ServerName main.com
# お好みの処理...
</VirtualHost>
nginxは一致しなかった場合の処理が、用意されています。
「listen」でポートを指定した後ろに
「default_server」を指定します。
「server_name」は「_」を指定しておきます。
Apacheのように定義順は関係ありません!
server {
# 開放ポート
listen 80;
listen [::]:80;
# 本命ドメイン指定
server_name main.com;
# お好みの処理...
}
server {
# 開放ポート
listen 80 default_server;
listen [::]:80 default_server;
# ダミードメイン指定
server_name _;
# お好みの処理...
}
同じポート・異なるドメイン、で処理を分ける方法の紹介でした。
ちゃんといろんな人のやりたいことを実現できるサーバ、すごいですよね。
以上、ここまで見ていただきありがとうございます。
皆さまの快適な開発ライフに、ほんの少しでもお役に立てれば幸いです。
コメント一覧