upstream apache {
server 127.0.0.1:8080;
}
server{
location ~* ^/service/(.*)$ {
proxy_pass http://apache/$1;
proxy_redirect off;
}
}
L'extrait ci-dessus redirigera les demandes dont l'URL comprend la chaîne «service» vers un autre serveur, mais n'inclut pas les paramètres de requête.
parameters
nginx
Alex Luya
la source
la source
location /service/ { rewrite ^\/service\/(.*) /$1 break; proxy_pass http://apache; }
J'utilise une version légèrement modifiée de la deuxième approche de kolbyjack avec
~
au lieu de~*
.la source
J'ai modifié le code @kolbyjack pour qu'il fonctionne pour
avec paramètres
la source
proxy_pass
directive ci-dessus effectue la redirection côté serveur.vous devez utiliser la réécriture pour passer les paramètres à l'aide de proxy_pass voici un exemple que j'ai fait pour le déploiement de l'application angularjs vers s3
Hébergement de site Web statique S3 Route tous les chemins vers Index.html
adapté à vos besoins serait quelque chose comme
si vous voulez vous retrouver dans http://127.0.0.1:8080/query/params/
si vous voulez vous retrouver dans http://127.0.0.1:8080/service/query/params/ vous aurez besoin de quelque chose comme
la source
/path/params
) mais pas les paramètres de requête (?query=params
)?github gist https://gist.github.com/anjia0532/da4a17f848468de5a374c860b17607e7
la source
Pour rediriger sans chaîne de requête, ajoutez les lignes ci-dessous dans le bloc Serveur sous la ligne de port d'écoute:
Avec la chaîne de requête:
la source
if
lorsque cela est possible. Dans ce cas, la solution pourrait être correcte en utilisantlocation
comme indiqué dans une autre réponse.travaillé avec l'ajout de $ request_uri proxy_pass http: // apache / $ request_uri;
la source