シナリオを想定しましょう。
- ドメイン名: xyz.com
- サードパーティのDNSサーバーで解決されたドメイン名:ns1.xxx.com
- ドメイン名バインディングIPアドレス:123.123.123.123
- apache2 は 123.123.123.123 にインストールされています。
私の/etc/httpd/conf/httpd.confは次のようになります。
config1:
ServerRoot "/etc/httpd"
Listen 80
Include conf.modules.d/*.conf
User apache
Group apache
ServerName 123.123.123.123:80
<VirtualHost *:80>
ServerName www.xyz.com
DocumentRoot "/var/www/html"
</VirtualHost>
config2:
ServerRoot "/etc/httpd"
Listen 80
Include conf.modules.d/*.conf
User apache
Group apache
ServerName xyz.com:80
<VirtualHost *:80>
ServerName www.xyz.com
DocumentRoot "/var/www/html"
</VirtualHost>
config3:
ServerRoot "/etc/httpd"
Listen 80
Include conf.modules.d/*.conf
User apache
Group apache
ServerName localhost:80
<VirtualHost *:80>
ServerName www.xyz.com
DocumentRoot "/var/www/html"
</VirtualHost>
config4:
ServerRoot "/etc/httpd"
Listen 80
Include conf.modules.d/*.conf
User apache
Group apache
ServerName 127.0.0.1:80
<VirtualHost *:80>
ServerName www.xyz.com
DocumentRoot "/var/www/html"
</VirtualHost>
私の例に適した設定ファイルは何ですか?
答え1
Apache ServerNameディレクティブと同じ基本機能を実行します。nginx server_name ディレクティブつまり、Host
選択した仮想ホスト構成と一致すると、受信HTTP要求のパラメータと比較されます。重要なことは、WebサーバーがリッスンしているネットワークインターフェースのポートまたはIPアドレスの要求をWebサーバーが解決できない場合に仮想ホストを選択するためにのみ使用されることです。つまり、仮想ホストを選択するためにのみ使用されますServerName
。<VirtualHost *:80>
仮想ホスト/構成によって明示的に検証されません。
ドキュメントから
説明:サーバーが自分自身を識別するために使用するホスト名とポート。
構文: ServerName [scheme://]domain-name|ip-address[:port]
あなたの例によれば、ServerNameディレクティブは次のようにApache仮想ホスト構成で使用されます。
<VirtualHost *:80>
ServerName xyz.com
...
...
# ...
</VirtualHost>