J'ai donc deux applications que je veux exécuter sur un serveur. Une application que je voudrais être l'application « par défaut » - qui est, toutes les URL doivent être envoyées cette application par défaut, sauf pour un certain chemin, permet de l'appeler /foo
:Plusieurs applications en rack sur nginx + passager, une en tant que root, l'autre pas ... config help
http://mydomain.com/ -> app1
http://mydomain.com/apples -> app1
http://mydomain.com/foo -> app2
Mes deux porte des applications sont installées comme ceci:
/var
/www
/apps
/app1
app.rb
config.ru
/public
/app2
app.rb
config.ru
/public
app1 -> apps/app1/public
app2 -> apps/app2/public
(app1
et app2
sont des liens symboliques aux annuaires publics de leurs applications respectives). Ceci est la configuration des passagers pour les sous URIs décrit ici: http://www.modrails.com/documentation/Users%20guide%20Nginx.html#deploying_rack_to_sub_uri
Avec la configuration suivante, j'ai /foo
va APP2:
server {
listen 80;
server_name mydomain.com;
root /var/www;
passenger_enabled on;
passenger_base_uri /app1;
passenger_base_uri /app2;
location /foo {
rewrite ^.*$ /app2 last;
}
}
Maintenant, comment puis-je app1 pour ramasser tout le reste? Je l'ai essayé ce qui suit (placé après la directive location /foo
), mais je reçois 500 avec une redirection interne infinie:
location/{
rewrite ^(.*)$ /app1$1 last;
}
J'espère que la directive last
empêcherait que redirect infini, mais je suppose que non. Ma réécriture /foo
fonctionne toujours. Et je peux encore aller à http://mydomain.com/app1
.
Des idées? Merci!
serverfault.com – hobodave
Juste posté là ... Je supprimerais celui-ci si je savais comment, désolé! –