如何在Ubuntu和Debian上使用Nginx和Passenger部署Ruby应用

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

Phusion Passenger是一个应用服务器,可以集成到Apache和Nginx等web服务器中,并允许通过web服务器提供Ruby/Rails应用。
在生产系统上部署Ruby on Rails应用程序是一个不错的选择。
本文将在像Ubuntu和Debian这样的Linux系统上使用Nginx部署Ruby应用程序。

首先,我们假设系统已经安装了Ruby。

步骤1 -准备工作

首先,启用Apt存储库的HTTPS支持,并在系统上安装Passenger包的PGP密钥。

sudo apt-get install -y dirmngr gnupg
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 561F9B9CAC40B2F7
sudo apt-get install -y apt-transport-https ca-certificates

然后,将Passenger存储库引用添加到以下文件。
' lsb_release -cs '将设置操作系统的代号。
我们还可以手动更改此设置并设置代号。

sudo sh -c 'echo deb https://oss-binaries.phusionpassenger.com/apt/passenger `lsb_release -cs` main > /etc/apt/sources.list.d/passenger.list'

步骤2 -安装 Nginx Passenger 模块

现在在系统上安装passenger模块和Nginx。
如果你已经安装了Nginx,这将安装Passenger库中最新的Nginx包。

$ sudo apt-get install -y nginx-extras passenger

编辑Nginx配置文件/etc/nginx/nginx.conf,取消 include /etc/nginx/passenger.conf;这行注释。

步骤3 -创建Nginx虚拟主机

现在,我们可以在这个服务器上部署Ruby/Rails应用程序了。
创建一个Nginx配置文件,并配置虚拟主机。

$ vim /etc/nginx/conf.d/example.com.conf

server {
        listen       80 default_server;
        server_name  example.com www.example.com;
        root         /path-to-ruby-app/public;
        passenger_enabled on;

   }

步骤4 -验证设置并重启Nginx

执行以下命令以验证系统上的Passenger安装。
所有检查都要通过。

$ sudo /usr/bin/passenger-config validate-install

What would you like to validate?
Use <space> to select.
If the menu doesnt display correctly, press !

 ‣ ⬢  Passenger itself
   ⬡  Apache

-------------------------------------------------------------------------

 * Checking whether this Passenger install is in PATH... ✓
 * Checking whether there are no other Passenger installations... ✓

Everything looks good. :-)

最后,重新启动Nginx web服务器,使配置文件的更改生效。

$ sudo systemctl restart nginx.service