2017-07-28 87 views
1

我試圖在Nginx下運行ruby(sinatra)腳本。 我的文件夾結構是:Nginx只爲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的用戶不同的用戶)時很重要。

感謝

+0

當你有一個靜態的'index.html'時,Ruby和Sinatra是如何考慮的? – tadman

+0

好吧,即使我將它反向test.html,它仍然無法正常工作。 Sinatra正在'/'get上提供這樣的文件。 –

+0

除非你在那裏有一個'config.ru',否則Passenger沒辦法知道你有一個Rack應用程序。 – tadman

回答

1

所以感謝@tadman配置是好的,問題只是缺少config.ru文件。

相關問題