- Webサーバー「Nginx」の導入
なぜやるか: アプリ(Unicorn)の前に「受付窓口」を作り、画像などの静的データを効率よく配信するためです。 💻 操作場所:サーバーの中
# ① Nginxのインストール
sudo amazon-linux-extras install nginx1
# ② 設定ファイルの作成(手動デプロイ用から自動デプロイ用へ)
sudo vim /etc/nginx/conf.d/rails.conf
2.自動デプロイツール「Capistrano」の導入
なぜやるか: 手動での git pull やプロセス再起動を卒業し、ローカルからコマンド一発で本番反映させるためです。
💻 操作場所:自分のPC VSコード上 Gemfile
# Gemfileに追記
group :development, :test do
gem 'capistrano'
gem 'capistrano-rbenv'
gem 'capistrano-bundler'
gem 'capistrano-rails'
gem 'capistrano3-unicorn'
end
💻 操作場所:自分のPCのターミナル(ローカル)
# ① Gemの反映
bundle install
# ② Capistranoの設定ファイル群を自動生成
bundle exec cap install
3.【重要】自動デプロイ用の構造へ設定変更
なぜやるか: Capistranoを使うと、アプリの居場所が current という特殊なフォルダに変わるため、各設定をそれに合わせる必要があります。
📁 変更後のディレクトリ構造
current: 最新のアプリ本体
shared: デプロイしても消したくないログや設定ファイル
releases: 過去5回分のバックアップ
🛠 設定の修正ポイント
config/unicorn.rb: パスを ../../../../ レベルまで深くし、shared 内のソケットを見るように修正。
/etc/nginx/conf.d/rails.conf: root を .../current/public に、server unix を .../shared/tmp/... に修正。
- 自動デプロイの実行
💻 操作場所:自分のPCのターミナル(ローカル)
# 全てをGitHubにpushした後、魔法のコマンドを実行!
bundle exec cap production deploy
成功すると、サーバーにログインすることなく本番環境が更新されます。
- 最後の罠:ブラウザのキャッシュ問題
現象: Safariでは最新の状態が見れるのに、Google Chromeではエラーや古い画面が出る。 原因: Chromeが「このサイトは安全(HTTPS)で繋ぐべき」と過去の記憶で勝手に変換したり、古いキャッシュを保持したりするため。
🔐 解決策:
シークレットモード (Cmd + Shift + N) でアクセスする。
URLの頭に必ず http:// をつけて明示的にアクセスする。
Chromeの再読み込みボタンを右クリックし「キャッシュの消去とハード再読み込み」を実行。