2 votes

Routage des requêtes non GET vers le passager dans Nginx

J'ai une application Rails qui met en cache des pages dans plusieurs répertoires personnalisés. Tout fonctionne bien, à l'exception des requêtes non GET, qui génèrent des erreurs 405 dans Nginx parce que ma configuration ne les achemine pas vers passenger. Ma question est la suivante : quel est le moyen le plus efficace de transmettre les requêtes non GET directement à passenger ?

Mon nginx.conf ressemble actuellement à ceci :

server {
       server_name railsapp.local;
       root /Users/i0n/Sites/railsapp/public;
       location / {
               try_files $uri /$host/$uri/index.html /$host/$uri.html /$host/$uri @passenger;
       }
       location @passenger {
               passenger_enabled on;
       }
}

0voto

13east Points 348
if ($request_method != 'GET') {
    passenger_enabled on;    
}

0voto

i0n Points 263

Je n'ai donc pas trouvé de moyen efficace et sans erreur pour y parvenir. Le problème était que si un dossier était créé dans le cache de Rails, alors une route correspondant à ce nom de dossier serait résolue vers le dossier statiquement avant de vérifier la route de Rails (brisant les actions de mise à jour, de création et de destruction). J'ai résolu ce problème en créant des noms de route personnalisés pour les chemins qui entraient en conflit avec les dossiers mis en cache. Maintenant, tout fonctionne bien.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X