如何在CentOS 7/6和Fedora 27/26上使用Nginx和Passenger部署Ruby应用

时间:2019-05-19 01:25:52  来源:igfitidea点击:

Phusion Passenger是一个应用服务器,可以集成到Nginx和Nginx等web服务器中,并允许通过web服务器提供Ruby/Rails应用。
在生产系统上部署Ruby on Rails应用程序是一个不错的选择。
本文将在像CentOS 7/6和Fedora 27/26这样的Linux系统上使用Nginx部署Ruby on Rails应用程序。
我们可以将本教程用于登台部署和生产部署。
首先,我们假设系统已经安装了Ruby。

步骤1 -安装准备工作

首先,在系统上启用epel yum存储库和更新包。

$ sudo yum install -y epel-release yum-utils
$ sudo yum-config-manager --enable epel
$ sudo yum clean all && sudo yum update -y

步骤2 -安装Nginx Passenger 模块

现在在系统上安装rails和passenger gem。
执行下面的命令来安装两个gem命令。

$ sudo yum install -y pygpgme curl

$ sudo curl --fail -sSLo /etc/yum.repos.d/passenger.repo https://oss-binaries.phusionpassenger.com/yum/definitions/el-passenger.repo

现在使用以下命令在系统上安装该 Passenger 。
另外,在你的系统上安装或更新Nginx。

$ sudo yum-config-manager --enable cr && sudo yum install -y nginx passenger

第3步-启用Nginx Passenger 模块

此时,我们已经在系统上安装了Passenger和Nginx server。
现在执行下面的命令来为Nginx安装 Passenger 模块。

$ vim /etc/nginx/conf.d/passenger.conf

passenger_root /usr/share/ruby/vendor_ruby/phusion_passenger/locations.ini;
passenger_ruby /usr/local/rvm/rubies/ruby-2.4.2/bin/ruby;
passenger_instance_registry_dir /var/run/passenger-instreg;

默认的passenger_ruby将为/usr/bin/ruby设置。
我已经使用RVM将二进制路径更改为自定义安装的Ruby版本。

PassengerRuby /usr/local/rvm/rubies/ruby-2.4.2/bin/ruby

步骤4 -配置Nginx虚拟主机

让我们在Nginx配置文件中配置虚拟主机的域名。
虚拟主机配置示例如下所示。

server {
        listen       80 default_server;
        server_name  example.com www.example.com;
        root         /var/www/html/public;
        passenger_enabled on;

   }

第五步-重启Nginx服务

使用以下命令重新启动Nginx服务。

$ sudo systemctl restart nginx.service