upstream apache {
server 127.0.0.1:8080;
}
server{
location ~* ^/service/(.*)$ {
proxy_pass http://apache/$1;
proxy_redirect off;
}
}
El fragmento anterior redirigirá las solicitudes en las que la URL incluya la cadena "servicio" a otro servidor, pero no incluye parámetros de consulta.
parameters
nginx
Alex Luya
fuente
fuente
location /service/ { rewrite ^\/service\/(.*) /$1 break; proxy_pass http://apache; }
Utilizo una versión ligeramente modificada del segundo enfoque de kolbyjack con en
~
lugar de~*
.fuente
Modifiqué el código @kolbyjack para que funcione.
con parámetros
fuente
proxy_pass
directiva anterior hace la redirección en el lado del servidor.tienes que usar reescribir para pasar parámetros usando proxy_pass aquí hay un ejemplo que hice para la implementación de la aplicación angularjs en s3
El alojamiento de sitios web estáticos de S3 enruta todas las rutas a Index.html
adoptado a sus necesidades sería algo así como
si quieres terminar en http://127.0.0.1:8080/query/params/
si quieres terminar en http://127.0.0.1:8080/service/query/params/ necesitarás algo como
fuente
/path/params
) pero no los parámetros de consulta (?query=params
)?github gist https://gist.github.com/anjia0532/da4a17f848468de5a374c860b17607e7
fuente
Para redirigir sin cadena de consulta, agregue las siguientes líneas en el bloque del servidor debajo de la línea del puerto de escucha:
Con cadena de consulta:
fuente
if
cuando sea posible. En este caso, la solución podría ser correcta usandolocation
como se muestra en otras respuestas.trabajó agregando $ request_uri proxy_pass http: // apache / $ request_uri;
fuente