nginxでバーチャルホストを追加する

    

nginxにおけるドメイン定義ファイル

/etc/nginx/conf.d/virtual.confというファイルがあります。これがapacheでいうところのhttpd-vhosts.confファイルになりますので、このファイルを編集することでドメインを設定するバーチャルホストの設定が行えます。
1サーバで複数ドメインを運用する場合はドメイン毎に設定ファイルを作成していくのも良いでしょう。ディレクトリ「/etc/nginx/conf.d/」に「*.conf」という拡張子でファイルを作成しておくとnginx再起動時に認識されます。

www.test-domain.comを設定する例 (静的サイト)

/etc/nginx/conf.d/www.test-domain.com.conf

server {
  server_name www.test-domain.com;

  location / {
    root   /var/www/html;
    index  index.php index.html index.htm;
  }

}

www.test-domain.comを設定する例 (wordpress)

/etc/nginx/conf.d/www.test-domain.com.conf

server {
 
  listen 80;
  server_name www.test-domain.com;
  root   /var/www/html;
  index  index.php;

  location / {
    try_files $uri $uri/ @wordpress;
  }

  location ~* /wp-config.php {
    deny all;
  }

  location ~ \.php$ {
     try_files $uri @wordpress;
     fastcgi_pass   unix:/var/run/php-fpm/php-fpm.sock;
     fastcgi_index  index.php;
     fastcgi_param  SCRIPT_FILENAME  $document_root/$fastcgi_script_name;
     include        fastcgi_params;
  }

  # permalink
  location @wordpress {
     fastcgi_pass   unix:/var/run/php-fpm/php-fpm.sock;
     fastcgi_index  index.php;
     fastcgi_param  SCRIPT_FILENAME  $document_root/index.php;
     include        fastcgi_params;
  }
  
}

www.test-domain.comを設定する例 (fuelPHPアプリ)

/etc/nginx/conf.d/www.test-domain.com.conf

server {

  listen 80;
  client_max_body_size 8M;

  server_name www.test-domain.com;
  root   /var/www/html;
  index  index.php;

  location ~ [^/]\.php(/|$) {
     fastcgi_split_path_info ^(.+?\.php)(/.*)$;
     if (!-f $document_root$fastcgi_script_name) {
       return 404;
     } 
     fastcgi_pass   unix:/var/run/php-fpm/php-fpm.sock;
     fastcgi_index  index.php;
     fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
     fastcgi_param  PATH_INFO $fastcgi_path_info;
     fastcgi_param  REQUEST_FILENAME  $request_filename;
     fastcgi_param  FUEL_ENV production;
     include        fastcgi_params;
  }
  location / {
    if (-f $request_filename) {
      expires 30d;
      break;
    }
    if (!-e $request_filename) {
      rewrite ^/(.*)$ /index.php/$1 last;
    }
  }
}

FUEL_ENVの値はfastcgi_paramとして設定します。