Nginx仅为Sinatra应用程序提供静态文件

时间:2017-07-28 18:58:07

标签: ruby nginx passenger

我正在尝试在Nginx下运行ruby(sinatra)脚本。 我的文件夹结构是:

/www (775)
/www/public (775)
/www/public/img.jpg (644)
/www/app.rb (775)
/www/index.html (775)

我的nginx.conf是:

worker_processes  1;
events {
  worker_connections  1024;
}

http {
  passenger_root /home/my_user/.rvm/gems/ruby-2.4.1/gems/passenger-5.1.6;
  passenger_ruby /home/my_user/.rvm/gems/ruby-2.4.1/wrappers/ruby;

  include       mime.types;
  default_type  application/octet-stream;
  sendfile        on;

  server {
    listen       80;
    server_name  xxx.xxx.xx.xx;

    root /www/public;
    passenger_enabled on;
  }
}

但我只是服务了 xxx.xxx.xx.xx / img.jpg ,没有脚本。
xxx.xxx.xx.xx / index.html 给我错误404而 xxx.xxx.xx.xx 再次给我错误403。

运行nginx服务器的用户是否很重要(文件夹 / www ,其中的文件与运行nginx的用户的用户不同)。

由于

1 个答案:

答案 0 :(得分:1)

非常感谢@tadman配置正常,问题只是缺少 config.ru 文件。