読者です 読者をやめる 読者になる 読者になる

5分でWebサーバを設定する。--Nginx,さくらのVPS

f:id:sksksksksk:20170510225141p:plain
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の設定をします。


参考

http://mlearning.ga/?p=32



///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
製作物を発信できるアプリを公開したのでよかったら使ってください。
http://ruppish.com/
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////