Rails7.1+Passenger+Nginx部署后页面空白,求排查思路
故障排查线索
优先检查核心日志
- 查看Nginx错误日志(通常路径
/var/log/nginx/error.log或站点自定义日志),执行命令:tail -f /var/log/nginx/error.log,同时刷新页面或重新curl,定位Passenger启动报错、权限拒绝、依赖缺失等信息。 - 查看Rails生产环境日志:
tail -f 项目路径/log/production.log,检查是否存在初始化失败、路由错误、数据库连接异常等问题。 - 查看Passenger系统日志(部分系统路径为
/var/log/passenger.log),确认Passenger是否正确加载Ruby环境与Rails应用。
- 查看Nginx错误日志(通常路径
验证Passenger与Ruby/Rails环境匹配
- 执行
passenger-config about ruby-versions,确认Passenger识别到Ruby 3.2.2,且与项目指定版本一致。 - 在项目根目录执行
bundle check,确保所有Gem依赖已正确安装,无版本不匹配或缺失情况。 - 直接启动Rails生产服务器:
rails server -e production,尝试访问localhost:3000,排除Passenger转发环节的问题。
- 执行
检查Nginx配置有效性
- 验证配置语法:
nginx -t,确保无语法错误。 - 确认核心配置项正确,示例关键片段:
server { listen 80; server_name 你的域名; root /path/to/your/app/public; # 必须指向Rails项目的public目录 passenger_enabled on; passenger_ruby /path/to/ruby/3.2.2/bin/ruby; # 指定正确Ruby路径 passenger_app_env production; # 确保环境为production } - 确认
root路径指向Rails项目的public目录,且该目录对Nginx进程(通常为www-data用户)具备访问权限。
- 验证配置语法:
文件与目录权限排查
- 调整项目目录权限,确保Nginx/Passenger进程可读写:
chmod -R 755 项目路径,chown -R www-data:www-data 项目路径(根据系统用户组调整)。 - 确保Rails临时目录权限正确:
chmod -R 775 项目路径/tmp,避免缓存、进程文件写入失败。
- 调整项目目录权限,确保Nginx/Passenger进程可读写:
Rails生产环境配置校验
- 确认
config/environments/production.rb中config.public_file_server.enabled为true(确保静态文件可正常访问)。 - 检查
config/database.yml的生产环境配置,执行rails db:migrate RAILS_ENV=production确保数据库迁移已完成。 - 确认
config/routes.rb存在有效根路由(root 'controller#action'),且对应控制器动作可正常返回内容。
- 确认
内容的提问来源于stack exchange,提问作者Juanse Cora
相关产品推荐
相关产品推荐

