如何将 Rails 应用程序部署到 VPS(虚拟专用服务器)或专用服务器?有一个易于遵循的指南会很好。
我知道自动化流程的脚本,但我认为最好控制一切,以便更好地理解流程。
如何将 Rails 应用程序部署到 VPS(虚拟专用服务器)或专用服务器?有一个易于遵循的指南会很好。
我知道自动化流程的脚本,但我认为最好控制一切,以便更好地理解流程。
我已经使用以下技术成功地将重型 Rails 应用程序部署到 Linode 或 Digital Ocean:
这些是对我有用的步骤:
创建一个新的虚拟机
按照您的主机(Linode 或 Digital Ocean)的设置说明创建节点并进行设置。
设置日期
更新包
创建用户
设置 SSH 密钥认证
在本地:
在服务器上:
设置 SSH
设置防火墙
设置fail2ban
如果您有足够的可用内存,请进行设置,因为它往往会吃掉它。
安装 Git
安装 rbenv
安装 Ruby
安装 nginx + 乘客
安装 PostgreSQL
安装 node.js
需要预编译资产。
安装捆绑器
在 PostgreSQL 中创建用户
部署代码 * 在服务器上: * 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 productionwhen:update_crontab
配置 logrotate
我之前使用 Capistrano 将我的 Rails 应用程序部署到我的生产服务器(它是一个集群),但我发现 Capistrano 有点复杂,有时甚至会成为麻烦制造者......所以我用 bash shell 脚本编写了我的部署脚本。
我已经把它放在 github 上,并附有一个简短的指南:deploy_rails