接前文,下面记录最简陋的部署过程。

一、版本说明

Ruby版本:2.7.8

Rails版本:5.1.7

二、安装Nginx和Passenger

这里,先安装Passenger,因为装了Ruby,所以这里通过Gem来安装Passenger,执行:

gem install passenger

等待安装完成后,通过Passenger来安装Nginx,可以省不少力,执行:

passenger-install-nginx-module

这里,出现了一个报错:

Tasks: TOP => nginx => nginx_without_native_support 
=> buildout/support-binaries/PassengerAgent 
=> buildout/support-binaries/CoreMain.o

研究了半天,发现新机忘了配置Swap分区了,也可能我的破机子内存太小了。下面分配一点Swap分区:

sudo dd if=/dev/zero of=/swap bs=1024 count=1024000
sudo mkswap /swap && sudo swapon /swap

结果可以通过free -m命令查看。

然后再执行安装Nginx命令就完成了。

三、部署Ruby on Rails项目

假设Rails项目叫demo,已经预编译好了,我习惯把它放在/opt/app/demo这样的目录下。

然后找到Nginx的配置文件,按前文装完的话,路径应该在:/opt/nginx/conf/nginx.conf

打开配置文件,里面其实已经有很多样例了,Passenger的一些基本配置也已经有了。最简陋的配置可以这样:

找到http{……}这一部分,新建一个server,比如这样:

server {
        listen       12345;
        server_name  localhost;

        root /opt/app/demo/public/;

        server_tokens off;

        passenger_enabled on;
        passenger_min_instances 3;

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
}

这边注意,比如这里端口号用了12345,那记得去阿里云的安全组里把这个端口放行。

最后,执行Nginx启动命令:

/opt/nginx/sbin/nginx

网站就可以访问了。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐