1

我想我已经阅读了与乘客/nginx 和 403 错误相关的所有问题和答案,但没有一个能引导我找到解决方案,所以我开始......

我让 Nginx (1.0.6) 和 Passenger (3.0.9) 为 Rails 应用程序运行了很多很多个月,没有真正的问题。今晚我决定从Passenger v3.0.9 升级到v3.0.12 以利用新功能。根据提供的说明(使用 RVM)运行安装后,我访问了我的 rails 应用程序提供的 URL,并得到了可怕的 403 错误。nginx 日志文件首先让我认为这是一个权限错误:

 directory index of "/home/SimfoUsers/public/" is forbidden, client: , server: , request: "GET / HTTP/1.1", host: ""

但是在检查了所有可能的许可之后,我不再认为这是问题所在。我认为问题实际上是乘客实际上并没有在运行,并且该页面被 nginx 用作“正常”网页。如果我将 index.html 文件添加到我的 rails 公共目录 (/home/SimfoUsers/public/),nginx 会按照预期提供此文件,这一事实支持这一点。此外,如果我运行乘客内存统计,零乘客进程正在运行。nginx 不应该在需要时自动生成乘客进程,还是我在这里完全遗漏了什么?

以下是我的 nginx.conf 文件的相关部分:

http {
    passenger_root /usr/local/rvm/gems/ruby-1.9.2-p290@Simfo/gems/passenger-3.0.12;
    passenger_ruby /usr/local/rvm/wrappers/ruby-1.9.2-p290@Simfo/ruby;
    ...

    server {
        listen       80;
        server_name  simfo.info www.simfo.info;
        root         /home/SimfoUsers/public;
        passenger_enabled on;
    }
}

基本上,我从以前的工作配置文件中改变的唯一一件事是更新passenger_root 和passenger_ruby 指令以反映新版本的passenger (3.0.12)。所以如果这是一个配置文件问题,我真的很茫然地理解它......

4

1 回答 1

0

我不确定是删除这个问题,还是留下它,以防它可以拯救其他人同样的挫败感。这绝对是一个掌心的时刻......

无奈之下,我终于重启了服务器。之后,一切正常。似乎在某些时候与乘客相关的进程死亡并且没有自动重新生成。有人会认为重新安装并重新启动 nginx 后会重新启动乘客,但显然情况并非如此。我对任何有类似问题的人的唯一建议是发布一个ps aux | grep passenger(或 Windows 上的任务列表?)。您应该会看到一两个与乘客相关的流程。如果没有,那么发生了一些奇怪的事情,重新启动也可能对您有所帮助。

于 2013-02-15T08:57:29.620 回答