【さくらVPS】Nginxバーチャルホストの設定

前回の【さくらVPS】Nginxのインストール手順からの続きで

バーチャルホスト設定を行なっていく。

Nginxを動作させるシステムユーザーを作成

Nginxを動作させるシステムユーザを新たに作成する。

デフォルトではNiginxユーザとなっているがセキュリティ上、新たにシステムユーザを作成することとする。

wwwというユーザー名で作成する。

シェルとして「/sbin/nologin」を指定しログイン権限を制限。

sudo useradd -s /sbin/nologin www

パスワードを設定

sudo passwd www

コンテンツディレクトリ作成

バーチャルホストを設定していくので、URLに応じた各コンテンツを格納するドキュメントルートとなるディレクトリを作成する。

「/home/www/」の下にドキュメントルートを作成し、ファイル名はドメイン名とする。

今回は「blog.pop-web.net」というディレクトリ名で作成する。

sudo mkdir /home/www/blog.pop-web.net

作成したドキュメントルートの中に、テスト用のHTMLファイルを作成しておく。

sudo vi /home/www/blog.pop-web.net/index.html
test

作成したディレクトリは、所有者がrootユーザになっているので、

「www」ユーザへパーミッションの変更をする。

sudo chown -R www:www /home/www

nginx.confファイルの変更

Nginxの全般的な設定ファイルは、「nginx.conf」で行う。ちなみに、サイト毎の設定などは、「default.conf」で行う。

「nginx.conf」のバックアップをしておく。

sudo cp -p /etc/nginx/nginx.conf /etc/nginx/nginx.conf.org

「nginx.conf」を編集していく。

sudo vi /etc/nginx/nginx.conf

システムユーザーを変更

システムユーザをwwwへ変更。

user nginx;
↓
user www;

バージョンの非表示

バージョンを非表示するため「server_tokesn off;」を追加

http {
    include /etc/nginx/mime.types;
↓
http {
    server_tokens off;
    include /etc/nginx/mime.types;

gzip圧縮の有効

表示速度が早くするため、サイズを圧縮する機能であるgzipを有効化する。

#gzip on;
↓
gzip on;

長いホスト名の対応

長いバーチャルホスト名の場合、エラーになる場合があるのでサイズを大きめに設置する。

gzip on;の下へ追記。

server_names_hash_bucket_size 128;

上記の設定が終わったら上書き保存。

確認用コマンドで「nginx.conf」に間違いがないかチェック。

sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

上記のように、「syntax is ok」「test is successful」と表示されればOK。

default.confファイルの変更

default.confファイルにバーチャルホスト設定を編集していく。

以下のコマンドでdefault.confファイルを開く。

sudo vi /etc/nginx/conf.d/default.conf

最終行に以下の内容を追記する。

server {
    listen 80;
    server_name blog.pop-web.net www.blog.pop-web.net;
    access_log /var/log/nginx/blog.pop-web.net-access.log main;
    error_log /var/log/nginx/blog.pop-web.net-error.log;
    root /home/www/blog.pop-web.net;
    location / {
        index index.html index.htm;
    }
}

各設定項目の説明は以下のよう。

項目説明
listenバーチャルホストが待ち受けるポートの指定
server_nameバーチャルホスト名の設定。www有りとwww無しの両方でアクセスできるようにしておく。
access_logアクセスログの出力先の指定
error_logエラーログの出力先の指定
rootドキュメントルートの指定
locationURIのパス単位の設定

追記したら、確認用コマンドで「default.conf」に間違いがないかチェック。

sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

上記のようにsuccessfulがでればOK。

Nginx再起動

設定内容を反映させるため、Nginxを再起動する。

sudo systemctl restart nginx

ブラウザで確認

ブラウザで「blog.pop-web.net」を入力して表示確認する。

作成したテスト用のHTMLファイルの内容が表示されればOK。

※この動作確認では、DNS設定の必要で、ドメイン名(blog.pop-web.net)からIPが引けるようにしておく。ドメインをお名前ドットコム等のサービスで取得している場合は、ネームサーバ設定変更で、さくらのVPSのネームサーバを指定しておけば良い。

コメント