スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

railsをthinで本番リリースする

やること。
1. railsアプリ準備
2. thin設定
3. upstart設定
4. nginx設定
5. logrotate設定

1. railsアプリ準備
mkdir -p /home/user/var/www/apps
# railsアプリをデプロイ、ここではwebとする
cd /home/user/var/www/apps/web
bundle install --path=vendor/bundler
bundle exec rake assets:precompile

2. thin設定
bundle exec thin config -C thin.yaml
vi thin.yaml

environment: production
daemonize: false


3. upstart設定
sudo vi /etc/init/web.conf

description "web"
version "1.0"

env LANG=ja_JP.UTF-8
env SECRET_KEY_BASE=123456789

start on runlevel [2345] and started networking
stop on runlevel [!2345] and stopped networking

chdir /home/user/var/www/apps/web
setuid user
setgid user
exec bash -c '/home/user/.rbenv/shims/bundle exec thin start -C thin.yaml'

respawn
respawn limit 1 10

sudo start web

4. nginx設定
sudo vi /etc/nginx/sites-available/web

server {
listen 80;
server_name web.example.com;
return 301 https://$host$request_uri;
}

server {
listen 443 ssl;
ssl_certificate ssl/server.crt;
ssl_certificate_key ssl/server.key;
server_name web.example.com;

access_log /var/log/nginx/web_access.log;
error_log /var/log/nginx/web_error.log;
root /home/user/var/www/apps/web/public;
index index.html;

location / {
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_redirect off;
try_files /system/maintenance.html $uri $uri/index.html $uri.html @ruby;
}

location @ruby {
proxy_pass http://localhost:3000;
}
}

sudo restart nginx

5. logrotate設定
vi /etc/logrotate.d/web

/home/user/var/www/apps/web/log/*.log {
weekly
missingok
rotate 52
compress
delaycompress
notifempty
copytruncate
}
スポンサーサイト

COMMENTS

COMMENT FORM

TRACKBACK


この記事にトラックバックする(FC2ブログユーザー)

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。