5分でWebサーバを設定する。--Nginx,さくらのVPS
NginxとUnicornの関係性ってよくわからないですよね。
アプリを動かすにはWebサーバの上でアプリケーションサーバを動かす必要があります。今回はWebサーバの設定を行います。
Nginxのインストールは完了しているものとします。
.confファイルの作成と編集
NginxとUnicornを連携する為には.sockファイル名を合わせる必要があります。
そのファイルは.confのファイルにあります。
まずは.confファイルのディレクトリへ移動しましょう
cd /etc/nginx/conf.d/
デフォルトで用意されている.confファイルがありますがこれを使うと、
一つのアプリにしか対応できなくなるので(厳密にはできますが管理が大変になります)、同じ階層に.confファイルを作成します。
.confの前の名前はなんでもいいです。
ちなみに私の.confディレクトリは以下のようにいっぱいあります。
$ ls _default.conf.bak bot.conf default.conf preliminary.conf presentation.conf sample.conf text.conf wordpress.conf yurukyara.conf
今回は新しくファイルを作成します。
$ sudo touch deploy_sample.conf
このファイルを編集し、以下のコードを記載します。
upstream unicorn-unix-domain-socket-pre{ #① server unix:/var/run/unicorn/アプリで指定した名前.sock fail_timeout=0; } server { listen 80; server_name IPアドレス or ドメイン; root /home/anime/var/www/anime/public; ↓アクセスとエラーログを吐く場所を指定します。 access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; ↓設定は自由です。慣れたらカスタマイズしてください。 proxy_connect_timeout 3600; proxy_send_timeout 3600; proxy_read_timeout 3600; send_timeout 3600; location / { proxy_pass http://unicorn-unix-domain-socket-pre; #①と名前を合わせてください。 } }
ここで重要なのは2つです。
>|ruby|]
server unix:/var/run/unicorn/アプリで指定した名前.sock fail_timeout=0;
|
unicornを使う場合ですが、〜〜.sockの部分は名前を一致させてください。
この部分がwebサーバとアプリケーションサーバを連携させる核の部分です。
server_name IPアドレス or ドメイン;
ここにはサーバのIPか取得したドメインを挿入してください。
出ないとアクセスしてもアプリが表示されません。
Nginxの再起動
設定が終わったら、:wqで上書きを保存をして以下のコマンドでNginx設定を反映させましょう。
$ sudo service nginx restart
今回、私が作ったサンプルはこちらです。
upstream unicorn-unix-domain-socket-deploy_sample{ server unix:/var/run/unicorn/unicorn_deploy_sample.sock fail_timeout=0; } server { listen 80; server_name candii.tk; root /home/anime/var/www/anime/public; access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; proxy_connect_timeout 3600; proxy_send_timeout 3600; proxy_read_timeout 3600; send_timeout 3600; location / { proxy_pass http://unicorn-unix-domain-socket-deploy_sample; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } }
以上で、Webサーバの設定は完了です。
次は unicornの設定をします。