rails + nginx + unicorn連携
1.サンプルアプリ作成
railsサンプルアプリの作成については以下参照
rails環境構築(CentOS + ruby on rails)
2.nginxインストール
# リポジトリファイルの作成
$ sudo vim /etc/yum.repos.d/nginx.repo
# 以下を記載し保存
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/6/$basearch/
gpgcheck=0
enabled=0
# nginxのインストール
$ sudo yum --enablerepo=nginx install nginx
# バージョン確認
$ nginx -v
3.unicorn <-> nginx連携
unicorn側の設定
# アプリ用ユーザに切り替え
$ su - rails
# Gemfileの設定(unicornの行をコメントイン)
$ cd ~/sample/
$ vim Gemfile
# Gemfileより該当unicornのインストール
$ bundle install --path=~/sample/vendor/bundle
# unicorn用ファイル作成
$ vim ~/sample/config/unicorn.rb
# 以下を記載し保存
rails_root = File.expand_path('../../', __FILE__)
worker_processes 2
working_directory rails_root
listen "#{rails_root}/tmp/unicorn.sock"
pid "#{rails_root}/tmp/unicorn.pid"
stderr_path "#{rails_root}/log/unicorn_error.log"
stdout_path "#{rails_root}/log/unicorn.log"
nginx側の設定
# nginx用設定ファイル作成
$ sudo cp /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/sample.conf
$ vim /etc/nginx/conf.d/sample.conf
# 以下のとおりに記載し保存
upstream unicorn {
# nginxとunicornの連携
# ↑で作成したunicorn.rbで設定したunicorn.sockを指定
server unix:/home/rails/sample/tmp/unicorn.sock;
}
server {
listen 80;
server_name <サーバ名>;
root /home/rails/sample/public;
access_log /var/log/nginx/sample_access.log;
error_log /var/log/nginx/sample_error.log;
client_max_body_size 100m;
error_page 500 502 503 504 /500.html;
try_files $uri/index.html $uri @unicorn;
location @unicorn {
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;
}
}
# nginxの起動
$ sudo /etc/init.d/nginx start
# unicornの起動
$ su - rails
$ cd ~/sample/
$ bundle exec unicorn_rails -c config/unicorn.rb -p 3000 -E development -D
# unicorn起動確認
$ ps -ef | grep unicorn | grep -v grep
# ブラウザにて確認
http://<サーバ名>
# unicornの停止
$ kill -QUIT <pid(tmp/unicorn.pidに記載されてる)>
$ sudo vim /etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/6/$basearch/
gpgcheck=0
enabled=0
$ sudo yum --enablerepo=nginx install nginx
$ nginx -v
unicorn側の設定
# アプリ用ユーザに切り替え
$ su - rails
# Gemfileの設定(unicornの行をコメントイン)
$ cd ~/sample/
$ vim Gemfile
# Gemfileより該当unicornのインストール
$ bundle install --path=~/sample/vendor/bundle
# unicorn用ファイル作成
$ vim ~/sample/config/unicorn.rb
# 以下を記載し保存
rails_root = File.expand_path('../../', __FILE__)
worker_processes 2
working_directory rails_root
listen "#{rails_root}/tmp/unicorn.sock"
pid "#{rails_root}/tmp/unicorn.pid"
stderr_path "#{rails_root}/log/unicorn_error.log"
stdout_path "#{rails_root}/log/unicorn.log"
nginx側の設定
# nginx用設定ファイル作成
$ sudo cp /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/sample.conf
$ vim /etc/nginx/conf.d/sample.conf
# 以下のとおりに記載し保存
upstream unicorn {
# nginxとunicornの連携
# ↑で作成したunicorn.rbで設定したunicorn.sockを指定
server unix:/home/rails/sample/tmp/unicorn.sock;
}
server {
listen 80;
server_name <サーバ名>;
root /home/rails/sample/public;
access_log /var/log/nginx/sample_access.log;
error_log /var/log/nginx/sample_error.log;
client_max_body_size 100m;
error_page 500 502 503 504 /500.html;
try_files $uri/index.html $uri @unicorn;
location @unicorn {
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;
}
}
# nginxの起動
$ sudo /etc/init.d/nginx start
# unicornの起動
$ su - rails
$ cd ~/sample/
$ bundle exec unicorn_rails -c config/unicorn.rb -p 3000 -E development -D
# unicorn起動確認
$ ps -ef | grep unicorn | grep -v grep
# ブラウザにて確認
http://<サーバ名>
# unicornの停止
$ kill -QUIT <pid(tmp/unicorn.pidに記載されてる)>
Author And Source
この問題について(rails + nginx + unicorn連携), 我々は、より多くの情報をここで見つけました https://qiita.com/shinyashikis@github/items/ace49154f0c71c65b2c9著者帰属:元の著者の情報は、元の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 .