upstream apache {
server 127.0.0.1:8080;
}
server{
location ~* ^/service/(.*)$ {
proxy_pass http://apache/$1;
proxy_redirect off;
}
}
Das obige Snippet leitet Anforderungen um, bei denen die URL die Zeichenfolge "service" enthält, an einen anderen Server weiter, enthält jedoch keine Abfrageparameter.
parameters
nginx
Alex Luya
quelle
quelle
location /service/ { rewrite ^\/service\/(.*) /$1 break; proxy_pass http://apache; }
Ich verwende eine leicht modifizierte Version von Kolbyjacks zweitem Ansatz mit
~
anstelle von~*
.quelle
Ich habe den @ kolbyjack-Code geändert, damit er funktioniert
mit Parametern
quelle
proxy_pass
obige Anweisung führt die Umleitung auf der Serverseite durch.Sie müssen rewrite verwenden, um Parameter mit proxy_pass zu übergeben. Hier ist ein Beispiel, das ich für die Bereitstellung der AngularJS-App an s3 gemacht habe
S3 Static Website Hosting Route Alle Pfade zu Index.html
an Ihre Bedürfnisse angepasst wäre so etwas wie
wenn Sie in http://127.0.0.1:8080/query/params/ landen möchten
Wenn Sie in http://127.0.0.1:8080/service/query/params/ landen möchten, benötigen Sie so etwas wie
quelle
/path/params
) gut umgehen, aber nicht mit params (?query=params
)?github gist https://gist.github.com/anjia0532/da4a17f848468de5a374c860b17607e7
quelle
Um ohne Abfragezeichenfolge umzuleiten, fügen Sie die folgenden Zeilen im Serverblock unter der Listenportzeile hinzu:
Mit Abfragezeichenfolge:
quelle
if
wenn möglich zu verwenden. In diesem Fall könnte die Lösung richtig sein,location
wie in anderen Antworten gezeigt.arbeitete mit dem Hinzufügen von $ request_uri proxy_pass http: // apache / $ request_uri;
quelle