You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

首次通过Capistrano在EC2部署Rails应用遇Puma问题求助

嘿,这种情况我之前在EC2上部署Rails应用时也踩过好几次坑,核心问题基本就是Puma没正常启动,导致Nginx找不到socket文件没法和应用建立连接。咱们一步步来排查解决:

排查&解决步骤

1. 先查Puma的运行状态和日志

先SSH登录你的EC2服务器,直奔应用目录(一般是/var/www/你的应用名/current),先确认Puma有没有在运行:

ps aux | grep puma

如果输出里看不到Puma相关进程,那肯定是没启动成功。接下来去看Puma的日志找线索,日志一般存在应用的shared/log目录下:

cd /var/www/你的应用名/shared/log
cat puma.stdout.log
cat puma.stderr.log

这里大概率会有明确报错——比如依赖gem没安装全(虽然Capistrano会执行bundle install,但权限问题可能导致安装失败)、环境变量没配置对(比如RAILS_ENV没设成production,或者数据库连接信息有误)、端口被占用,甚至是config/puma.rb里的配置写错了。

2. 手动启动Puma测试

如果日志里没找到明确问题,试试手动启动Puma,看能不能直接在终端看到报错:

cd /var/www/你的应用名/current
RAILS_ENV=production bundle exec puma -C config/puma.rb

启动时如果有报错会直接输出,比如某个gem缺失、配置文件语法错误,或者socket目录不存在。

针对你提到的「puma.sock应存在的目录为空」,先确认config/puma.rb里的socket路径配置是否正确:

bind "unix:///var/www/你的应用名/shared/tmp/sockets/puma.sock"

如果这个路径对应的目录不存在,手动创建并设置权限:

mkdir -p /var/www/你的应用名/shared/tmp/sockets
chown -R 你的部署用户名:你的部署用户名 /var/www/你的应用名/shared/tmp # 比如部署用户是deploy就写deploy:deploy

3. 检查Capistrano的Puma插件配置

既然用了cap production deploy,应该是用了capistrano-puma插件吧?先确认Capfile里有没有加载插件:

require 'capistrano/puma'
install_plugin Capistrano::Puma

再看config/deploy.rb里的Puma相关配置,比如socket路径是否和config/puma.rb一致,有没有启用自动启动/重启Puma的任务。如果部署后Puma没自动启动,试试手动执行Capistrano的Puma重启命令:

cap production puma:restart

执行完再去socket目录看有没有生成puma.sock文件。

4. 权限问题(最容易踩的坑!)

EC2上的部署用户(比如deploy)和Nginx运行用户(一般是www-data)的权限必须对齐,否则Nginx会读不到Puma的socket文件。给socket目录设置正确的权限:

chmod -R 775 /var/www/你的应用名/shared/tmp/sockets
chown -R 你的部署用户名:www-data /var/www/你的应用名/shared/tmp/sockets

或者直接在config/puma.rb里设置socket的权限:

bind "unix:///var/www/你的应用名/shared/tmp/sockets/puma.sock", perm: 0660

这样Nginx就能正常访问这个socket文件了。

5. 最后核对Nginx配置

虽然你重启了Nginx,但还是要确认Nginx的upstream配置是不是指向正确的socket路径:

upstream 你的应用名 {
  server unix:/var/www/你的应用名/shared/tmp/sockets/puma.sock fail_timeout=0;
}

然后测试Nginx配置是否合法:

sudo nginx -t

如果配置有语法错误,重启Nginx也没用,得先修正配置再执行sudo systemctl restart nginx。


内容的提问来源于stack exchange,提问作者mattC

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:32:18