light log

学んだこととか

Nginx + Unicornをつかう(手抜き記事)

今日はサザンのライブだった!!!

幸せな時間だったなあ。。

サザン最高。桑田さん最高。

ということで、今日はあんまり作業できなかったので、Unicornを使ってみた感じをさっくりと書く。

Vagrantfile書いてNginxインストールしてrbenvでRubyインストールして、みたいなのは今度まとめる。

今日は一応更新しましたというだけの手抜き記事。本当に自分のメモ書き&備忘録的内容なので、他の方にはあんまり参考にならないと思う。

...

ここまで書いてから結局結構時間かかった。。ねむい。。すぐハマる。。

Unicorn

まずrails newで生成されるGemfileの、unicornの行のコメントを解除。

gem 'unicorn'

でインストール。

$ bundle install

unicornの設定ファイルを用意する。

config/unicorn.rbに以下を保存。

listen '/tmp/unicorn.sock'
pid '/tmp/unicorn.pid'

unicornを起動してみる。

$ unicorn_rails -c config/unicorn.rb 

JavaScriptランタイムが無いっていうエラーが出た。

therubyracerの行のコメントを解除。

$ gem 'therubyracer', platforms: :ruby

インストール。

$ bundle install

unicornを起動してみる。

こんなエラーが出た。

Sorry, you can't use byebug without Readline. To solve this, you need to rebuild Ruby with Readline support. If using Ubuntu, try `sudo apt-get install libreadline-dev` and then reinstall your Ruby.

確認してみるとreadlineは既に入ってるように見える。なぞ。

ググったら以下の記事が見つかった。

CentOSにruby on railsをインストールする

以下を追加すればいいとのこと。神。

gem 'rb-readline'

言われた通り上記をGemfileに追加してインストール。

$ bundle install

unicornを起動してみる。

$ unicorn_rails -c config/unicorn.rb 

今度はうまくいった。

Nginx

/etc/nginx/nginx.confを以下の通り編集した。(httpブロック内)

user  nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}

http {
  include mime.types;
  default_type application/octet-stream;

  sendfile on;
  keepalive_timeout 65;

  upstream unicorn_app {
    server unix:/tmp/unicorn.sock;
  }

  server {
    listen 80;
    server_name _;
    location / {
      proxy_pass http://unicorn_app;
    }
  }
}

確認

unicorn起動して、nginx起動して、nginxのポートにアクセスしてRailsのデフォルトページが表示されればok。

まとめ

サザン最高!

(内容はちゃんとまとめ直します。。)

続き書いた

yamacent.hatenablog.com

yamacent.hatenablog.com

参考