这里有很多活动部件,我对它们的熟悉程度各不相同,所以我希望另一双眼睛能帮助我发现为什么在运行 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,以限制您受到恶意攻击的风险。