2017-07-28 1 views
1

J'essaye de lancer un script ruby ​​(sinatra) sous le Nginx. Structure Mon dossier est:Nginx ne sert que des fichiers statiques pour une application Sinatra

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

Mon nginx.conf est:

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; 
    } 
} 

Mais je me sert juste un xxx.xxx.xx.xx/img.jpg, aucun script .
xxx.xxx.xx.xx/index.html me donne l'erreur 404 et xxx.xxx.xx.xx me donne à nouveau l'erreur 403.

Il est important que l'utilisateur exécute le serveur nginx (le dossier /www et les fichiers qu'il contient ont un utilisateur différent de celui qui exécute nginx).

Merci

+0

Comment Ruby et Sinatra interviennent-ils ici quand vous avez un 'index.html' statique? – tadman

+0

Eh bien, même si je le renéme à test.html, il ne fonctionne pas de toute façon. Sinatra sert un tel fichier sur '/' get. –

+0

Sauf si vous avez un 'config.ru' quelque part, Passenger n'a aucun moyen de savoir que vous avez une application Rack. – tadman

Répondre

1

Ainsi, grâce à @tadman la configuration était ok, le problème était tout simplement manquant config.ru fichier.