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

Nginx未显示Rails应用,反而展示Plesk默认页面问题

解决Nginx显示Plesk默认页而非Rails应用的问题

我之前也碰到过类似的情况,Plesk自带的Nginx配置经常会和手动添加的Rails部署配置冲突,给你几个排查和解决的方向:

1. 检查Plesk的Nginx配置优先级

Plesk会自动为每个托管域名生成专属的Nginx配置文件,这些文件通常存放在/etc/nginx/plesk.conf.d/或者/var/www/vhosts/system/[你的域名]/conf/目录下。由于Plesk的配置加载优先级高于你手动在/etc/nginx/sites-available/创建的Rails应用配置,所以会优先显示Plesk的默认页面。

2. 确认Rails应用的Nginx配置是否正确启用

先检查你按照教程创建的Rails应用配置是否已经软链接到启用目录,同时验证配置语法:

# 替换成你的应用配置文件名,比如myapp.conf
sudo ln -s /etc/nginx/sites-available/[你的应用配置文件] /etc/nginx/sites-enabled/
# 检查配置语法是否合法
sudo nginx -t
# 重载Nginx使配置生效
sudo service nginx reload

如果nginx -t报错,根据提示修正配置文件中的语法问题。

3. 在Plesk面板中集成Rails应用的Nginx规则

直接修改Plesk的站点配置,让它适配你的Rails应用:

  • 登录Plesk面板,找到你的域名对应的站点
  • 进入网站与域名 -> Apache & Nginx设置
  • 取消勾选「使用Apache提供静态文件」(如果你的Rails应用用Nginx处理静态资源)
  • 在附加Nginx指令中添加反向代理规则(替换成你的应用实际端口,比如Unicorn/Puma运行的3000端口):
location / {
    proxy_pass http://localhost:3000;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

保存设置后,Plesk会自动更新Nginx配置,让请求转发到你的Rails应用。

4. 验证Rails应用服务状态

确保你的应用服务器(Unicorn/Puma)正在运行:

# 替换成你的应用服务名,比如puma_myapp
sudo service [应用服务名] status

如果服务未启动,手动启动它:

sudo service [应用服务名] start

同时检查应用端口是否被占用:

sudo netstat -tulpn | grep :3000 # 替换成你的应用端口

5. 查看Nginx日志定位问题

通过日志可以清楚看到请求的处理流程和错误信息:

# 查看访问日志,看请求被哪个配置处理
sudo tail -f /var/log/nginx/access.log
# 查看错误日志,排查代理或配置错误
sudo tail -f /var/log/nginx/error.log

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:12:30