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