Ce que je veux faire, c'est
Quand quelqu'un visite http://localhost/route/abc
la réponse du serveur exactement la même chose quehttp://localhost:9000/abc
Maintenant, je configure mon Nginx comme ceci:
location /route {
proxy_pass http://127.0.0.1:9000;
}
La requête http est 9000
correctement distribuée sur le port , mais le chemin qu’elle a reçu http://localhost:9000/route/abc
ne l’ est pas http://localhost:9000/abc
.
Toute suggestion ?
/
est bien documenté comme moyen de supprimer le préfixe indiqué dans l'emplacement.Je crois que vous pouvez utiliser rewrite pour supprimer la partie supplémentaire de l'URL. Dans votre cas, je pense que vous pourriez utiliser:
Toutefois, si votre application contient des liens internes, ceux-ci peuvent toujours pointer vers / abc / foo. Si vous faites cela, ils doivent plutôt pointer vers / route / abc / foo pour que la requête brute arrive correctement. Vous feriez peut-être mieux de laisser la configuration nginx en l'état et de configurer votre application pour qu'elle sache qu'elle réside dans un sous-répertoire, si vous le pouvez.
Je sais que c’est une vieille question, mais c’était la meilleure frappe de Google pour moi lorsque j’essayais de résoudre le même problème!
la source
Essayez ce qui suit
la source
vim nginx.conf
Ce code écoute sur 8080 et redirige vers le port 8787 sur compute-1-36. Vous pouvez sélectionner un autre chemin dans l'emplacement /
la source