5分でUnicornを設定する。--Unicorn,Nginx
前回は、NginxとUnicornの連携はsock名を同一にする、ということをお話しました。
それを踏まえて、進めていきます。
デモ
Unicornのインストール
gem 'unicorn'
bundle
Unicorn.rbファイルの作成
gem 'unicorn'
bundle
自動では作成されませんので手動で作成しましょう。
このファイルの中身がunicornの設定を行うものになります。
worker_processes 2
working_directory "/home/anime/deploy_sample/current" #appと同じ階層を指定
timeout 3600
listen "/var/run/unicorn/Nginxで設定した名前.sock" ★
pid "/var/run/unicorn/Nginxで設定した名前.pid"
stderr_path "/home/anime/deploy_sample/current/log/unicorn.log"
stdout_path "/home/anime/deploy_sample/current/log/unicorn.log"
preload_app true
これだけで済みます。
特に★の部分の名前には気をつけてください。
冒頭でも説明しましたが、
ここの名前を一致させることでNginxと連携させることができます。
working_directory "/home/anime/deploy_sample/current" #appと同じ階層を指定
unicornを起動するディレクトリを指定します。
currentの下にはアプリが存在します。
デプロイ時は/home/anime/deploy_sample/の下にアプリを置いてくれと設定したことを思い出してください。
今回はこのような設定を書きました。
worker_processes 2
working_directory "/home/anime/deploy_sample/current"
timeout 3600
listen "/var/run/unicorn/unicorn_deploy_sample.sock"
pid "/var/run/unicorn/unicorn_deploy_sample.pid"
stderr_path "/home/anime/deploy_sample/current/log/unicorn.log"
stdout_path "/home/anime/deploy_sample/current/log/unicorn.log"
preload_app true
さて、これをgitに入れてデプロイ、その後起動してみましょう。
$ git add .
$ git commit -m ユニコーン
$ git push
$ cap production deploy
起動
[anime@tk2-241-30026 current]$ bundle exec unicorn_rails -c config/unicorn.rb -E production -D
[anime@tk2-241-30026 current]$
できた!と、思ったら、production環境のシークレットキーを設定していなく、HTTP500エラーです。
シークレットキーの作成
$ bundle exec rake secret
$ bundle exec rake secret
生成されたキーをsecret.ymlに設定します。
config/secret.yml
production:
secret_key_base: 生成されたキー
もう一度デプロイして結果を確認します。
デモ
できました。
再起動した時に以下のエラーが出ますが、これはすでにアプリケーションサーバが起動している為です。
master failed to start, check stderr log for details
ですので、以下のようにプロセスを殺して起動してください。
プロセスIDはその度に異なるので、適切に処置してください。
[anime@tk2-241-30026 current]$ ps -ef | grep unicorn
anime 22414 1 0 00:18 ? 00:00:01 unicorn_rails master -c config/unicorn.rb -E production -D
anime 22417 22414 0 00:18 ? 00:00:00 unicorn_rails worker[0] -c config/unicorn.rb -E production -D
anime 22420 22414 0 00:18 ? 00:00:00 unicorn_rails worker[1] -c config/unicorn.rb -E production -D
[anime@tk2-241-30026 current]$ kill -QUIT 22414
[anime@tk2-241-30026 current]$ bundle exec unicorn_rails -c config/unicorn.rb -E production -D
以上です。
いかがでしょうか?
個人のコードレビューを売り買いできるサービス: https://www.pullimage.com/
Author And Source
この問題について(5分でUnicornを設定する。--Unicorn,Nginx), 我々は、より多くの情報をここで見つけました https://qiita.com/k_s/items/21b0daa6f2c8dbd01834著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .