ruby:unicorn
文書の過去の版を表示しています。
Unicorn
Rack対応のWebアプリケーションを実行するサーバ。
File: README Unicorn: Rack HTTP server for fast clients and Unix
インストール
gemでインストールできる
$ gem install unicorn
起動
railsのrootディレクトリに移動して以下のコマンドで起動
$ unicorn -l 3000
rails 2系の場合は
$ unicorn_rails -l 3000
nginxをリバースプロキシにする
unicorn本番用のコンフィグ(${RAILS_ROOT}/config/unicorn.rb)を作成。
# folkする子プロセスの数、nginxのワーカーとだいたい同じ程度に worker_processes 8 # railsのルートを指定 working_directory '/var/lib/some_rails_app' # nginxとドメインソケットで通信する合はパスを、TCP通信する場合はポート番号を指定 listen '/var/lib/some_rails_app/tmp/sockets/unicorn.sock' stderr_path '/var/log/unicorn.err.log' stdout_path '/var/log/unicorn.out.log' preload_app true before_fork do |server, worker| ActiveRecord::Base.connection.disconnect! end after_fork do |server, worker| ActiveRecord::Base.establish_connection end
nginx.confを修正
{code} http { server { listen 80; server_name localhost; ... } ... upstream backend { # unicorn.confで指定したドメインソケットのパスを指定 server unix:/var/lib/some_rails_app/tmp/sockets/unicorn.sock; } server { listen 80; server_name rails.example.com; # rootには $RAILS_ROOT/public を指定 root /usr/local/redmine/current/public; # public以下の静的ファイルはそのままnginxが返す # 静的ファイルが無ければunicornに投げる try_files $uri @unicorn; location @unicorn { proxy_set_header HOST $http_host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_redirect off; # リクエストを upstream backend に投げる proxy_pass http://backend; } } # ここまで追加 ... }
別サーバにする場合はドメインソケットを指定してる部分を普通にport指定にし
nginxを起動
$ sudo service nginx start
unicornを起動
$ unicorn -E production -c config/unicorn.rb -D
ruby/unicorn.1362306858.txt.gz · 最終更新: 2013/03/03 10:34 by nullpon