7

Rails アプリを VPS (仮想プライベート サーバー) または専用サーバーにデプロイするにはどうすればよいですか? 分かりやすいガイドがあるといいですね。

プロセスを自動化するためのスクリプトについては知っていますが、プロセスをよりよく理解するには、すべてを制御する方がよいと思います。

4

2 に答える 2

44

これらのテクノロジーを使用して、重い Rails アプリケーションを Linode または Digital Ocean に正常にデプロイしました。

  • Ruby インストール用のrbenv
  • アプリケーションサーバー用のnginx + Passenger
  • データベース サーバー用のPostgreSQL
  • デプロイを自動化するためのCapistrano (サーバー IP と設定を使用して開発マシンで最初にこれを構成します。ここでは説明しません)

これらは私のために働くステップです:

仮想マシンのセットアップ

新しい仮想マシンを作成する

Linode または Digital Ocean であるホスティングのセットアップ手順に従って、ノードを作成してセットアップします。

設定日

  • dpkg-再構成 tzdata

パッケージを更新する

  • apt-get アップデート
  • apt-get アップグレード

安全

ユーザーを作成

  • adduser デプロイ
  • usermod -a -G sudo デプロイ
  • ログアウト

SSH キー認証のセットアップ

ローカルで:

  • ssh-keygen
  • 公開鍵をコピーします。
    • scp ~/.ssh/id_rsa.pub deploy@example.com:~

サーバー上:

  • ssh deploy@example.com
  • ファイルを一覧表示するエイリアスを有効にします。
    • vim ~/.bashrc
    • すべてのエイリアスのコメントを外します
  • mkdir .ssh
  • mv id_rsa.pub .ssh/authorized_keys
  • chown -R deploy:deploy .ssh
  • chmod 700 .ssh
  • chmod 600 .ssh/authorized_keys
  • ログアウト (新しい認証をテストします)

SSH を設定する

  • sudo vim /etc/ssh/sshd_config
  • PermitRootLogin を no に切り替えます
  • sudo サービス ssh 再起動

ファイアウォールを設定する

fail2ban を設定する

食い込みがちなので、空きメモリが十分にある場合に設定してください。

  • sudo apt-get install -y fail2ban

ルビーのセットアップ

Git をインストールする

  • sudo apt-get install -y git

rbenv をインストールする

ルビーをインストール

  • sudo apt-get install -y curl gnupg ビルド必須
  • rbenv install -l (最新バージョンを探します)
  • rbenv install 2.3.3 (または現時点で入手可能な最新バージョン)
  • rbenv グローバル 2.3.3
  • rbenv 再ハッシュ
  • vim .gemrc
    • これを貼り付けます: gem: --no-document

サーバーのセットアップ

nginx + Passenger のインストール

PostgreSQL をインストールする

ライブラリのセットアップ

node.js をインストールする

アセットを事前にコンパイルする必要があります。

  • sudo apt-get install -y nodejs

バンドラーをインストールする

  • インストールバンドラーを入手する
  • rbenv 再ハッシュ

アプリケーションをセットアップする

PostgreSQL でユーザーを作成する

  • createuser ユーザー名 --pwprompt
  • createdb -Ousername -Eutf8 db_name
  • 試して:
    • psql db_name --user ユーザー名 --password

コードをデプロイします * サーバー上: * sudo mkdir -p /srv/yoursite.com * sudo chown deploy:deploy /srv/yoursite.com * 開発マシン上: * bundle exec cap production deploy:check (それはデータベースが見つからないためエラー) * サーバー上: * cd /srv/yoursite.com/shared/config * vim database.yml (データベース構成を貼り付けます) * vim secrets.yml (シークレット構成を貼り付けます) *開発マシンで: * bundle exec cap production deploy * bundle exec cap production when:update_crontab

ログローテーションを構成する

于 2012-11-18T20:10:44.287 に答える
1

以前、Capistrano を使用して実稼働サーバー (クラスター) に Rails アプリケーションをデプロイしましたが、Capistrano は少し複雑で、トラブル メーカーになることさえありました... そこで、bash シェル スクリプトでデプロイ スクリプトを作成しました。

簡単なガイド付きで github に置きました: deploy_rails

于 2014-02-28T02:14:23.847 に答える