繁体   English   中英

如何将Rails应用程序部署到VPS(或专用服务器)?

[英]How to deploy a Rails app to a VPS (or dedicated server)?

如何将Rails应用程序部署到VPS(虚拟专用服务器)或专用服务器? 拥有易于遵循的指南将非常高兴。

我了解使流程自动化的脚本,但是我认为最好控制所有内容,以便更好地了解流程。

我已经使用以下技术成功地将重型Rails应用程序部署到Linode或Digital Ocean:

  • 用于Ruby安装的rbenv
  • Nginx +乘客用于应用程序服务器
  • 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

  • 须藤vim / etc / ssh / sshd_config
  • 将PermitRootLogin切换为no
  • sudo服务ssh重新启动

设置防火墙

设置fail2ban

如果您有足够的可用内存,请进行设置,因为它可能会耗尽它。

  • 须藤apt-get install -y fail2ban

安装Ruby

安装Git

  • 须藤apt-get install -y git

安装rbenv

安装Ruby

  • 须藤apt-get install -y curl gnupg build-essential
  • rbenv install -l(查找最新版本)
  • rbenv install 2.3.3(或当前最新可用版本)
  • rbenv全局2.3.3
  • rbenv rehash
  • vim .gemrc
    • 粘贴:gem:--no-document

设定伺服器

安装Nginx +乘客

安装PostgreSQL

设置库

安装node.js

需要预编译资产。

  • 须藤apt-get install -y nodejs

安装捆绑器

  • 获取安装捆绑程序
  • rbenv rehash

设置应用程序

在PostgreSQL中创建用户

  • createuser用户名--pwprompt
  • createdb -Ousername -Eutf8 db_name
  • 测试一下:
    • psql db_name-用户名--password

部署代码 *在服务器上:* sudo mkdir -p /srv/yoursite.com * sudo chown deploy:deploy /srv/yoursite.com *在您的开发机器上:*捆绑exec cap production deploy:check(它将抛出一个错误,因为它找不到数据库)*在服务器上:* cd /srv/yoursite.com/shared/config * vim database.yml(粘贴您的数据库配置)* vim secrets.yml(粘贴您的秘密配置)*在您的开发机器上:*捆绑exec cap生产部署*捆绑exec cap生产每当:update_crontab

配置logrotate

我以前使用Capistrano将Rails应用程序部署到生产服务器(它是一个群集)上,但是我发现Capistrano有点复杂,有时甚至成为麻烦制造者……所以我用bash shell脚本编写了部署脚本。

我已经将它放在github上并附带了一个简要指南: deploy_rails

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM