Lokka は komagata さんが開発されている、Ruby で書かれた CMS です(旧名 Pyhä)。
以前書いたエントリのように、Lokka も nginx と Unicorn で動かしたいと思います。
cocoa*life – Redmine を nginx + Unicorn で動かしてみる
Lokka は Sinatra ベースなので Sinatra で動かすようにすればいいだけのようです。
Unicorn の設定
Lokka のディレクトリに unicorn.rb というファイルを作成しました。
unicorn.rb は前回の使用したものをほぼそのまま使用しました。
# ワーカーの数 worker_processes 2 # ソケット listen '/tmp/unicorn-lokka.sock' # ログ stderr_path 'tmp/log/unicorn.log' stdout_path 'tmp/log/unicorn.log' # ダウンタイムなくす preload_app true before_fork do |server, worker| old_pid = "#{ server.config[:pid] }.oldbin" unless old_pid == server.pid begin # SIGTTOU だと worker_processes が多いときおかしい気がする Process.kill :QUIT, File.read(old_pid).to_i rescue Errno::ENOENT, Errno::ESRCH end end end
Unicorn を起動する
unicorn -c unicorn.rb -D
nginx の設定
nginx の設定は以下のようにしました。
upstream unicorn-lokka { server unix:/tmp/unicorn-lokka.sock; } server { listen 80; server_name lokka.local; location / { if (-f $request_filename) { break; } proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_pass http://unicorn-lokka; } }
nginx を再起動する。
/usr/local/nginx/sbin/nginx -s stop /usr/local/nginx/sbin/nginx