Ubuntu

Nginx 404 使用 Phusion 乘客部署 Ruby on Rails 應用程序

  • June 23, 2009

這裡有很多移動元件,我對它們的熟悉程度各不相同,所以我希望另一雙眼睛能幫助我發現為什麼在執行 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 上的乘客新手,我應該找到一個日誌文件,它可能會給我關於 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 - 都是為了,一直回來。有任何想法嗎?

在 /var/log 下檢查。除非您有 nginx 或乘客日誌,否則一切都將在 syslog 下。

您的下一步將取決於您在那裡看到的內容。如果解決方案不是很明顯,請在 nginx 啟動時發布您的日誌,以便我們更好地了解下一步該去哪裡。

編輯:

由於 /opt 下有 nginx,請查看 /opt/nginx/logs/error.log。

此外,您需要將您的應用程序從 /root 中刪除,因為如果您以 root 身份執行 nginx,它可能會導致 nginx 誤讀路徑。

最後,考慮創建一個 nginx 使用者來執行 nginx 以限制您接觸壞人。

引用自:https://serverfault.com/questions/30056