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

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – 如何将Rails应用程序部署到VPS(或专用服务器)?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如何将Rails应用程序部署到VPS(虚拟专用服务器)或专用服务器?有一个易于遵循的指南会很高兴.

我知道脚本可以自动化这个过程,但我认为最好控制一切,以便更好地理解这个过程.

解决方法

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

>用于Ruby安装的rbenv
>应用程序服务器的Nginx Passenger
> Postgresql用于数据库服务器
> Capistrano自动部署(使用您的服务器IP和设置在您的开发机器上首先配置它,我不会在这里介绍它)

这些步骤对我有用:

设置虚拟机

创建一个新的虚拟机

按照主机的设置说明(Linode或Digital Ocean)创建节点并进行设置.

设置日期

> dpkg-reconfigure tzdata

更新包

> apt-get update
> apt-get升级

安全

创建用户

> adduser部署
> usermod -a -G sudo deploy
>退出

设置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
> logout(测试新身份验证)

设置SSH

> sudo vim / etc / ssh / sshd_config
>将PermitRootLogin切换为no
> sudo service ssh restart

设置防火墙

> sudo iptables -L(它应该显示一个空表)
> sudo vim /etc/iptables.firewall.rules
>粘贴:https://gist.github.com/davidmles/89fc88e48e17cf8252bfca374e46355f#file-iptables-firewall-rules
> sudo iptables-restore< /etc/iptables.firewall.rules
> sudo iptables -L(现在它应该显示配置的规则)
> sudo vim /etc/network/if-pre-up.d/firewall
>粘贴:https://gist.github.com/davidmles/89fc88e48e17cf8252bfca374e46355f#file-firewall
> sudo chmod x /etc/network/if-pre-up.d/firewall

设置fail2ban

设置是否有足够的可用内存,因为它往往会吃掉它.

> sudo apt-get install -y fail2ban

设置Ruby

安装Git

> sudo apt-get install -y git

安装rbenv

> git clone https://github.com/sstephenson/rbenv.git~ / .rbenv
> echo’export PATH =“$HOME / .rbenv / bin:$PATH”’>>在〜/ .bashrc
> echo’eval“$(rbenv init – )”’>>在〜/ .bashrc
> source~ / .bashrc
> git clone https://github.com/sstephenson/ruby-build.git~ / .rbenv / plugins / ruby​​-build

安装Ruby

> sudo apt-get install -y curl gnupg build-essential
> rbenv install -l(查找最新版本)
> rbenv install 2.3.3(或此时的最新版本)
> rbenv global 2.3.3
> rbenv rehash
> vim .gemrc

>粘贴此:gem: – no-document

设置服务器

安装Nginx Passenger

>按照文档安装:

> https://www.phusionpassenger.com/library/install/nginx/install/oss/jessie/

安装Postgresql

>按照文档安装:

> https://wiki.postgresql.org/wiki/Apt#PostgreSQL_packages_for_Debian_and_Ubuntu

设置库

安装node.js

需要预先编译资产.

> sudo apt-get install -y nodejs

安装捆绑器

>获取安装捆绑器
> rbenv rehash

设置应用程序

在Postgresql中创建用户

> createuser username –pwprompt
> createdb -Ousername -Eutf8 db_name
>测试它:

> psql db_name –user username –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(粘贴你的秘密配置)
*在您的开发机器上:
*捆绑exec cap生产部署
*在任何时候捆绑exec cap生产:update_crontab

配置logrotate

>请遵循本指南:* https://gorails.com/guides/rotating-rails-production-logs-with-logrotate

猜你在找的Ruby相关文章