後でデプロイは自動化するが,ひとまず正しく動くことを手動で確認する
gibo update; gibo dump macOS Vim Rails >> .gitignore
デプロイサーバではすでに nginx がインストールされており,他の Rails アプリはリバースプロキシとして利用している. 今回は,Rails 側の production 設定を行なった後に,リバースプロキシの設定を追加する.
production:
<<: *default
database: attendance_production
username: attendance
password: <%= ENV['ATTENDANCE_DATABASE_PASSWORD'] %>
host: localhost
port: 5432
# postgres ユーザになる
sudo su postgres
# attendance ユーザを PostgreSQL に作成
createuser attendance
# psql で attendance ユーザの設定を追加 (2行目以降は psql でのコマンド)
psql template1
template1=# alter user attendance createdb;
template1=# alter user attendance encrypted password '設定したいパスワード';
listen_addresses = 'localhost'
local attendance_production attendance md5
sudo service postgresql restart
if ENV['RAILS_RELATIVE_URL_ROOT']
map ENV['RAILS_RELATIVE_URL_ROOT'] do
run Rails.application
end
else
run Rails.application
end
_proj_path = "#{File.expand_path('../..', __FILE__)}"
_proj_name = File.basename(_proj_path)
_home = ENV.fetch('HOME') { '/home/hkob' }
pidfile "#{_home}/run/#{_proj_name}.pid"
bind "unix://#{_home}/run/#{_proj_name}.sock"
directory _proj_path
mkdir ~/run
env ATTENDANCE_DATABASE_PASSWORD='設定したデータベースパスワード' RAILS_ENV=production bin/rails db:create
env RAILS_MASTER_KEY='config/master.key の内容' RAILS_RELATIVE_URL_ROOT=/attendance ATTENDANCE_DATABASE_PASSWORD='設定したデースベースパスワード' RAILS_ENV=production bin/rails s
#!/bin/sh
kill -KILL `cat ~/run/attendance.pid`
cd /home/hkob/attendance
bin/webpack
RAILS_RELATIVE_URL_ROOT=/attendance ATTENDANCE_DATABASE_PASSWORD='設定したデータベースのパスワード' RAILS_MASTER_KEY='config/master.key の内容' RAILS_SERVE_STATIC_FILES=true RAILS_ENV=production bundle exec puma -w 2 -d
../reboot.sh
server {
listen 443 ssl;
(中略)
location /attendance {
proxy_pass http://attendance;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
root /var/www/html/attendance/public;
}
(中略)
}
upstream attendance {
server unix:/home/hkob/run/attendance.sock fail_timeout=0;
}
sudo service nginx restart
長くなったので今日はここまで