使用京东云服务器时,如何快速搭建Ruby on Rails环境?

在京东云(JD Cloud)服务器上快速搭建 Ruby on Rails 环境,推荐使用 RVM + rbenv + Bundler 的现代组合(推荐 rbenv 更轻量可控),并配合 Nginx + Puma 部署生产环境。以下是清晰、安全、可复现的快速搭建步骤(以 Ubuntu 22.04 LTS 为例,适用于京东云 CVM 实例):


✅ 前提准备

  1. 已开通京东云 CVM 实例(推荐配置:2核4G+,系统选 Ubuntu 22.04 LTS
  2. 已通过 SSH 登录(如 ssh -i your-key.pem ubuntu@your-ip
  3. 确保网络通畅(京东云默认开放 22/80/443,如需其他端口请在「安全组」中放行)

🚀 一、基础环境更新与依赖安装

# 更新系统 & 安装必要工具
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl git gnupg2 wget build-essential zlib1g-dev 
  libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 
  libxml2-dev libxslt1-dev libcurl4-openssl-dev libffi-dev 
  nodejs yarnpkg  # Node.js(Rails JS 运行时)和 Yarn(前端包管理)

💡 提示:京东云 Ubuntu 镜像通常预装 nodejs,但建议用 yarnpkg(而非旧版 yarn)避免冲突。


🐘 二、安装 Ruby(推荐 rbenv 方式,轻量且版本隔离)

# 1. 安装 rbenv 及 ruby-build 插件
curl -fsSL https://github.com/rbenv/rbenv-installer/raw/HEAD/bin/rbenv-installer | bash

# 2. 配置环境变量(写入 ~/.bashrc)
echo 'export RBENV_ROOT="$HOME/.rbenv"' >> ~/.bashrc
echo 'command -v rbenv >/dev/null || export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init - bash)"' >> ~/.bashrc

# 3. 重载配置
source ~/.bashrc

# 4. 检查是否安装成功
rbenv --version  # 应输出如 v2.3.0+
# 5. 安装 Ruby(推荐稳定版,如 3.2.2;查看可用版本:rbenv install --list | grep -v - | grep "^s*[0-9]")
rbenv install 3.2.2
rbenv global 3.2.2

# 6. 验证
ruby -v    # => ruby 3.2.2pX
gem -v     # => 3.4.x+

⚠️ 注意:若遇到编译错误(如 OpenSSL 问题),京东云 Ubuntu 22.04 可能需额外安装 libssl-dev(已包含在第一步)。


🌟 三、安装 Rails 及初始化项目(快速验证)

# 升级 gem 并安装 bundler(Rails 7+ 默认要求)
gem update --system
gem install bundler

# 全局安装 Rails(或按项目安装更佳)
gem install rails -v 7.1.3  # 推荐最新稳定版(查看 https://rubygems.org/gems/rails)

# 验证
rails -v  # => Rails 7.1.3

# ✅ 快速创建测试应用(跳过 JavaScript 构建以提速,生产环境再启用)
rails new myapp --skip-javascript --skip-hotwire --database=postgresql
cd myapp

# 启动开发服务器(绑定 0.0.0.0 以便本地访问,仅限测试!)
rails server -b 0.0.0.0:3000

✅ 打开浏览器访问 http://<你的京东云公网IP>:3000,看到 Rails 默认欢迎页即成功!

🔒 生产环境切勿用 rails server!下文提供标准部署方案。


🛠 四、【可选但推荐】生产环境部署(Nginx + Puma)

# 1. 安装 PostgreSQL(京东云推荐,比 SQLite 更适合生产)
sudo apt install -y postgresql postgresql-contrib libpq-dev
sudo systemctl enable postgresql

# 2. 创建数据库用户(替换 your_username)
sudo -u postgres createuser -d -P your_username  # 设置密码

# 3. 安装 Puma(Rails 默认应用服务器)
gem install puma

# 4. 安装 Nginx
sudo apt install -y nginx
sudo systemctl enable nginx

# 5. 配置 Puma(生成 config/puma.rb)
bundle exec rails generate puma:install

# 6. 配置 Nginx 反向X_X(/etc/nginx/sites-available/myapp)
sudo tee /etc/nginx/sites-available/myapp > /dev/null << 'EOF'
upstream myapp {
  server unix:/home/ubuntu/myapp/tmp/sockets/puma.sock;
}

server {
  listen 80;
  server_name _;
  root /home/ubuntu/myapp/public;

  location ^~ /assets/ {
    gzip_static on;
    expires max;
    add_header Cache-Control public;
  }

  location / {
    proxy_pass http://myapp;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
  }
}
EOF

# 启用站点
sudo ln -sf /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx
# 7. 启动 Puma(后台运行,推荐用 systemd 或 foreman)
# 示例:使用 systemd(创建 /etc/systemd/system/puma-myapp.service)
sudo tee /etc/systemd/system/puma-myapp.service > /dev/null << 'EOF'
[Unit]
Description=Puma HTTP Server for myapp
After=network.target

[Service]
Type=simple
User=ubuntu
WorkingDirectory=/home/ubuntu/myapp
ExecStart=/home/ubuntu/.rbenv/shims/bundle exec puma -C config/puma.rb
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target
EOF

sudo systemctl daemon-reload
sudo systemctl enable puma-myapp
sudo systemctl start puma-myapp

✅ 访问 http://<你的京东云公网IP> 即可看到 Rails 应用(无需端口)!


🧰 五、京东云专属优化建议

项目 建议
镜像选择 使用京东云官方 Ubuntu 22.04 LTS 镜像(内核/驱动兼容性好)
安全组 仅开放 22(SSH)、80/443(Web),禁止开放 3000 等开发端口
备份 利用京东云「云硬盘快照」定期备份 /home/ubuntu/myapp 和数据库
数据库 生产环境强烈推荐京东云 云数据库 PostgreSQL 版(高可用、自动备份)
HTTPS 使用京东云「SSL 证书服务」免费申请证书,Nginx 中配置即可

🚨 常见问题速查

现象 解决方案
rbenv: command not found 检查 ~/.bashrc 是否生效 → source ~/.bashrc 或改用 ~/.profile
Gem::Ext::BuildError: ERROR: Failed to build gem native extension 缺少 -dev 包 → 补装 zlib1g-dev libssl-dev ...(见第一步)
PG::ConnectionBad: could not connect to server PostgreSQL 未启动 → sudo systemctl start postgresql
502 Bad Gateway Puma 未运行或 sock 文件路径不匹配 → 检查 config/puma.rb 和 Nginx upstream

✅ 总结:一键验证命令(复制粘贴即可)

# 全流程快速验证(执行前确保已安装依赖)
curl -fsSL https://github.com/rbenv/rbenv-installer/raw/HEAD/bin/rbenv-installer | bash
echo 'export RBENV_ROOT="$HOME/.rbenv"' >> ~/.bashrc
echo 'command -v rbenv >/dev/null || export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init - bash)"' >> ~/.bashrc
source ~/.bashrc
rbenv install 3.2.2 && rbenv global 3.2.2
gem install rails -v 7.1.3 && rails new hello --skip-javascript --database=sqlite3 && cd hello && rails server -b 0.0.0.0:3000

✅ 成功后访问 http://<IP>:3000 —— 你已在京东云上跑起 Rails!

如需 自动化脚本(Shell/Ansible)Docker 部署方案连接京东云 RDS PostgreSQL 的详细配置,我可立即为你生成 👇
需要的话,请告诉我你的具体需求(如:是否需 HTTPS?是否用 MySQL?是否需 CI/CD?)😊

未经允许不得转载:CCLOUD博客 » 使用京东云服务器时,如何快速搭建Ruby on Rails环境?