usando barras diagonales en la configuración de nginx

8
    location /product {
        proxy_pass http://10.0.0.25:8080;
    }

si uso mi primera descripción de ubicación para la carpeta del producto, debería usar http://mysdomain.com/product/y no puedo usar http://mysdomain.com/productdesde el navegador. Quiero decir que debería usar una barra diagonal de url. Quiero acceder a la carpeta del producto con dos estudios.

¿Hay alguna diferencia entre esto?

    location /product/ {
        proxy_pass http://10.0.0.25:8080;
    }
barteloma
fuente

Respuestas:

10

Estas ubicaciones son diferentes. El primero coincidirá, /productionpor ejemplo, que podría no ser lo que esperaba. Así que prefiero usar ubicaciones con una barra inclinada final.

Además, tenga en cuenta que:

Si una ubicación se define mediante una cadena de prefijo que termina con el carácter de barra diagonal, y las solicitudes son procesadas por uno de proxy_pass, fastcgi_pass, uwsgi_pass, scgi_pass o memcached_pass, en respuesta a una solicitud con URI igual a esta cadena, pero sin el barra inclinada final, una redirección permanente con el código 301 se devolverá al URI solicitado con la barra inclinada añadida.

Si tienes algo como:

location /product/ {
    proxy_pass http://backend;
}

e ir a http://example.com/product, nginx lo redireccionará automáticamente a http://example.com/product/.

Incluso si no usa una de estas directivas anteriores, siempre puede hacer la redirección manualmente:

location = /product {
    rewrite ^ /product/ permanent;
}

o, si no desea redirigir, puede usar:

location = /product {
    proxy_pass http://backend;
}
Alexey Ten
fuente
Estoy usando proxy_pass myip: 8080 / product , luego llame al navegador esta dirección. El navegador me redirige a myip / product y da la página de error que no puedo ver.
barteloma
Usa los backticks para el código. Markdown analizó tu comentario y es difícil descubrir cuál es realmente tu código.
Alexey Ten
Gracias, era importante saber que si se agrega / producto / incluso el navegador que lo envía / producto está obligado a recibir el 301 del servidor. Punto bastante válido de hecho.
Sur Max
3

No, estos no son lo mismo: necesitará usar una barra inclinada final con una expresión regular para que coincida con ambos, es decir

location ~ /product/?

Consulte esta respuesta relacionada para obtener una respuesta más detallada sobre cómo hacer coincidir la URL completa.

Andrew M.
fuente