我已经在我的Linode VPS上设置了 nginx + REE +乘客,这对于Rails 2.3.x和Sinatra应用程序来说已经运行了六个月。
然而本周我尝试将Rails 3应用程序添加到堆栈中,并继续获取404 Not Found
。日志显示nginx无法识别Rails应用程序,并试图将其作为静态服务器。
2010/11/29 23:44:44 [error] 12464#0: *29 "/var/app/modelky/public/index.html"
is not found (2: No such file or directory), client: 90.177.23.122, server:
reedink.com, request: "GET / HTTP/1.1", host: "reedink.com"
2010/11/29 23:44:44 [error] 12464#0: *30 open() "/var/app/modelky/public/favicon.ico"
failed (2: No such file or directory), client: 90.177.23.122,
server: reedink.com, request: "GET /favicon.ico HTTP/1.1", host: "reedink.com"
但是,我使用的配置与我用于所有其他Rails 2.3.5和Sinatra应用程序的配置相同,但没有任何问题
server {
listen 80;
server_name www.reedink.com;
rewrite ^(.*) http://reedink.com$1 permanent;
}
server {
listen 80;
server_name reedink.com;
root /var/app/modelky/public;
passenger_enabled on;
}
根据我的理解,Rails 3应该与机架兼容,因此从服务器的角度来看,它与任何Sinatra应用程序都没有区别吗?
答案 0 :(得分:0)
本周末我刚刚在linode上建了一个铁轨3箱。我开始用这个stackscript
http://www.linode.com/stackscripts/view/?StackScriptID=1288
然后从那里开始。
这是来自nginx.conf
的服务器配置文件的副本server {
listen 80;
server_name localhost;
root /home/deploy/foo.bar.com/current/public;
passenger_enabled on;
}
我还尝试添加一个静态index.html文件,让nginx正常工作,然后尝试引导rails应用程序。
答案 1 :(得分:-1)
看起来您的请求没有达到Rails。我会尝试:
/var/app/modelky/public
中放置一个静态index.html以查看它是否显示预先启动乘客:
http {
server {
listen 80;
server_name www.reedink.com;
rewrite ^(.*) http://reedink.com$1 permanent;
}
server {
listen 80;
server_name reedink.com;
root /var/app/modelky/public;
passenger_enabled on;
}
passenger_pre_start http://reedink.com/;
}