Memo

メモ > サーバ > 各論: エトセトラ > nginxでバーチャルホスト

nginxでバーチャルホスト
nginxでデフォルトのバーチャルホストを設定する方法 - Linux入門 - Webkaru https://webkaru.net/linux/nginx-default-server/ ■前提 refirio.net でアクセスできるサーバに test.refirio.net を追加する。 /var/www/vhosts/test/public を公開ディレクトリにする。 ■バーチャルホスト設定
$ sudo su - # mkdir -p /var/www/vhosts/test/public … 公開ディレクトリを作成。 # chown nginx. /var/www/vhosts/test # chmod 775 /var/www/vhosts/test # chown nginx. /var/www/vhosts/test/public # chmod 775 /var/www/vhosts/test/public # vi /var/www/vhosts/test/public/index.php … テストページを作成。
<?php echo shell_exec('hostname') ?>
# vi /etc/nginx/nginx.conf … バーチャルホストの設定を追加。(すでにある「server { 〜 }」の設定をもとにするといい。)
server { listen 80; listen [::]:80; server_name test.refirio.net; root /var/www/vhosts/test/public; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location / { try_files $uri /index.php?$query_string; auth_basic "Auth"; auth_basic_user_file /var/www/vhosts/test/public/.htpasswd; } # redirect server error pages to the static page /40x.html # error_page 404 /404.html; location = /40x.html { } # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { } location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /var/www/vhosts/test/public$fastcgi_script_name; include fastcgi_params; } }
# service nginx configtest … 設定ファイルの構文をチェック。 # service nginx restart … nginxを再起動。
■DNS設定 test.refirio.net の向け先を上記サーバに設定。 ■最低限の設定例 ※未検証。 最低限、以下の設定のみで動作するみたい。 この場合、default_server を指定した example2.com がデフォルトのホストになる。(IPアドレスでアクセスしたときに参照される。) default_server の指定がなければ、最初に指定された example1.com がデフォルトのホストになる。
server { listen 80; server_name example1.com; } server { listen 80 default_server; server_name example2.com; } server { listen 80; server_name example3.com; }
■ログでバーチャルホストを区別 nginxの場合、log_formatに「$host」を指定することでバーチャルホストを区別できるようになる。 このファイル内にある「nginxにレスポンスタイムを記録」内の記述も参照。

Advertisement