「Rails5 x Nginx x Unicorn」かんたん環境構築
yum モジュールインストール
$ sudo yum install -y openssl-devel
$ sudo yum install -y readline-devel
$ sudo yum install -y sqlite-devel ## MySQL 使用するならいらないかも
Rails アプリケーション雛形作成
$ cd /www/
$ rails new your_app -d mysql
nginx インストール
$ sudo rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
$ sudo yum -y install nginx
1. unicorn の設定
/www/your_app/config/unicorn.rb
# -*- coding: utf-8 -*-
worker_processes Integer(ENV["WEB_CONCURRENCY"] || 3)
timeout 15
preload_app true # 更新時ダウンタイム無し
listen "/www/your_app/tmp/unicorn.sock"
pid "/www/o/tmp/unicorn.pid"
before_fork do |server, worker|
Signal.trap 'TERM' do
puts 'Unicorn master intercepting TERM and sending myself QUIT instead'
Process.kill 'QUIT', Process.pid
end
defined?(ActiveRecord::Base) and
ActiveRecord::Base.connection.disconnect!
end
after_fork do |server, worker|
Signal.trap 'TERM' do
puts 'Unicorn worker intercepting TERM and doing nothing. Wait for master to send QUIT'
end
defined?(ActiveRecord::Base) and
ActiveRecord::Base.establish_connection
end
# ログの出力
stderr_path File.expand_path('log/unicorn.log', ENV['RAILS_ROOT'])
stdout_path File.expand_path('log/unicorn.log', ENV['RAILS_ROOT'])
2. nginx の設定を行います。
/etc/nginx/conf.d/ 配下は自動でロードしてくれますので、下記 "service.conf" の service の文字列は適宜変更して下さい。
/etc/nginx/conf.d/service.conf
server {
listen 80 default_server;
}
server {
listen 80;
server_name your_app.com;
access_log /var/log/nginx/your_app_access.log;
error_log /var/log/nginx/your_app_error.log;
root /www/your_app/public;
location ~ ^/assets/ {
root /www/your_app/public;
access_log off;
expires max;
add_header Cache-Control public;
add_header ETag "";
}
error_page 404 /404.html;
location = /404.html {
root /usr/share/nginx/html;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/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-unix-domain-socket; # unix domain socketを使う場合
# proxy_pass http://unicorn-tcp; # tcpを使う場合
}
}
unicornを起動
$ ./bin/bundle exec unicorn_rails -c config/unicorn.rb -E production -D
これで本番環境の 80 番ポートでのアクセスが可能になります。
開発環境 3000 番ポートの対応
/etc/nginx/conf.d/local.conf
server {
listen 3001; # 3001 番で受け付ける
server_name upsnap.jp;
root /www/upsnap;
location / {
proxy_pass http://localhost:3000;
}
}
開発サーバ起動
$ ./bin/rails s
その後、http://your_domain.com:3001/ にアクセスし開発環境のページが表示されれば成功
以上の設定で環境構築が終了し、アプリケーションの開発に取り掛かる事ができるかと思います。
Author And Source
この問題について(「Rails5 x Nginx x Unicorn」かんたん環境構築), 我々は、より多くの情報をここで見つけました https://qiita.com/emacs_hhkb/items/2b86c377af668ffd9361著者帰属:元の著者の情報は、元の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 .