当前位置:首页 > 行业动态 > 正文

如何搭建Ruby服务器?

搭建 Ruby 服务器需要安装 Ruby 和相关框架,如 Rails,配置 Web 服务器如 Nginx 或 Apache。

在Linux系统上搭建Ruby服务器

如何搭建Ruby服务器?  第1张

一、安装和配置Nginx

安装Nginx

需要确保系统已经安装了必要的依赖项,在基于Debian的系统(如Ubuntu)上,可以使用以下命令:

   sudo apt-get update
   sudo apt-get install -y build-essential libssl-dev libreadline-dev zlib1g-dev

在基于Red Hat的系统(如CentOS)上,可以使用以下命令:

   sudo yum groupinstall -y "Development Tools"
   sudo yum install -y openssl-devel readline-devel zlib-devel

使用以下命令安装Nginx:

   sudo apt install nginx

启动Nginx并设置开机自启

   sudo systemctl start nginx
   sudo systemctl enable nginx

可以通过以下命令检查Nginx是否成功启动:

   sudo systemctl status nginx

二、安装和配置Ruby环境

安装rbenv

rbenv 是一个用于管理多个 Ruby 版本的工具,首先克隆rbenv 仓库并将其添加到你的PATH 中:

   git clone https://github.com/rbenv/rbenv.git ~/.rbenv
   echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
   echo 'eval "$(rbenv init -)"' >> ~/.bashrc
   source ~/.bashrc

安装ruby-build插件

ruby-build 是rbenv 的一个插件,用于安装不同版本的 Ruby,克隆ruby-build 仓库并将其添加到rbenv 的插件目录中:

   git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build

安装特定版本的Ruby

列出可用的 Ruby 版本:

   rbenv install -l

选择一个版本进行安装,

   rbenv install 2.7.2

将安装的 Ruby 版本设置为全局默认版本:

   rbenv global 2.7.2

或者为特定项目设置局部版本:

   cd /path/to/your/project
   rbenv local 2.7.2

安装Bundler

Bundler 是 Ruby 的依赖管理工具,使用以下命令安装 Bundler:

   gem install bundler

三、配置Web服务器以运行Ruby on Rails应用

生成模型和迁移数据库

假设你已经有一个 Rails 项目,首先生成一个模型:

   rails generate model Post title:string body:text

然后迁移数据库:

   rake db:migrate

生成控制器

生成处理文章请求的控制器:

   rails generate controller Posts index new create show edit update destroy

配置Nginx虚拟主机

添加 Nginx 虚拟主机配置文件,例如/etc/nginx/sites-available/default:

   server {
       listen       80;
       server_name  your_domain_or_ip;
       root         /path/to/your/rails/public;
       location / {
           proxy_pass http://unicorn_server;
           proxy_set_header Host $host;
           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
           proxy_set_header X-Forwarded-Proto $scheme;
       }
       location ~ ^/(assets)/ {
           expires max;
           add_header Cache-Control public;
       }
   }

配置Unicorn

创建 Unicorn 配置文件,例如config/unicorn.rb:

   worker_processes Integer(ENV["WEB_CONCURRENCY"] || 2)
   working_directory "/path/to/your/rails"
   listen "/tmp/unicorn.sock", :backlog => 64
   pid "/path/to/your/rails/tmp/pids/unicorn.pid"
   stderr_path "/path/to/your/rails/log/unicorn.stderr.log"
   stdout_path "/path/to/your/rails/log/unicorn.stdout.log"
   before_exec do |server|
     ENV["BUNDLE_GEMFILE"] = File.expand_path("../../Gemfile", __FILE__)
     ENV["RAILS_ENV"] = 'production'
   end

运行生产环境

启动 Unicorn 生产环境:

   unicorn -c config/unicorn.rb -E production -D

四、常见问题解答(FAQs)

如何在Nginx中配置反向代理?

在Nginx配置文件中使用proxy_pass 指令来设置反向代理。

location / {
    proxy_pass http://unicorn_server;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
}

这个配置将所有进入/ 的请求转发到 Unicorn 服务器。

如何更改Ruby版本?

使用rbenv 可以轻松更改 Ruby 版本,首先列出已安装的版本:

rbenv versions

然后使用rbenv local 或rbenv global 命令设置新的 Ruby 版本。

rbenv local 3.0.0 # for specific project directory
rbenv global 3.0.0 # for all projects globally

小伙伴们,上文介绍了“ruby服务器搭建”的内容,你了解清楚吗?希望对你有所帮助,任何问题可以给我留言,让我们下期再见吧。

0