Nginx 404 使用 Phusion Passenger 部署 Ruby on Rails 应用程序

Nginx 404 使用 Phusion Passenger 部署 Ruby on Rails 应用程序

这里有很多活动部件,我对它们的熟悉程度各不相同,所以我希望另一双眼睛能帮助我发现为什么在运行 Phusion Passenger 的 Nginx 上部署我的 Rails 应用程序后会出现 404 错误。

我的应用程序的 /public 目录当前位于:

$pwd
>> /root/public_html/photobook/public

我的服务器在 nginx.conf 中的设置:

server {
  listen 80;
  server_name pb.mysite.com;
  root /root/public_html/photobook/public;   # <--- be sure to point to 'public'!
  passenger_enabled on;
}

但重新启动 nginx 后:

sudo /opt/nginx/sbin/nginx

我的浏览器会显示由 Nginx 提供的 404 页面。

是否存在我不知道的、以不同方式处理子域名的规则?还是这完全是另外一回事?

另外,由于我是 Nginx 上 Passenger 的新手,是否有一个日志文件可以给我提供有关 404 的更多有用反馈,例如它正在查找什么页面?

谢谢!

编辑

首先,感谢您对 /var/log 的建议。

我不知道这件事;这对将来会有很大的帮助。

我不确定我的系统日志(我有两个看起来是最新的,然后看起来像是 .gz 备份)是否记录了任何相关内容,但是:

Jun 23 01:25:01 myusername /USR/SBIN/CRON[11379]: 
(root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Jun 23 01:49:01 myusername -- MARK --

就是这样,每小时的 cron 任务和 MARK 任务都用于返回。有什么想法吗?

答案1

检查 /var/log。除非您有 nginx 或 Passenger 日志,否则所有内容都会在 syslog 下。

您的下一步将取决于您在此处看到的内容。如果解决方案不是显而易见的,请在 nginx 冷启动时发布您的日志,以便我们更好地了解下一步该怎么做。

编辑:

由于您在 /opt 下有 nginx,请查看 /opt/nginx/logs/error.log。

此外,您需要将您的应用程序从 /root 中取出,因为如果您以 root 身份运行 nginx,这可能会导致 nginx 误读路径。

最后,考虑创建一个 nginx 用户来运行 nginx,以限制您受到恶意攻击的风险。

相关内容