
Soy nuevo en nginx. Tengo nginx y un servidor web Python que escucha en los puertos: 5000.
Quiero hacer algo así www.example.com/berlin y quiero obtener los datos de 127.0.0.1/?lat=Berlina&lón=Berlina
No sé cómo configurar una cadena de consulta que se utiliza si solicito la ubicación.
server {
listen 80;
location / {
proxy_pass http://127.0.0.1:5000/;
}
location /berlin/ {
proxy_pass http://127.0.0.1:5000/?lat=52.5185931&lon=13.3941181/;
}
}
Respuesta1
Prueba esto:
server {
listen 80;
location = / {
proxy_pass http://127.0.0.1:5000/;
}
location ~ ^\/(.*)$ {
proxy_pass http://127.0.0.1:5000/?lat=$1&lon=$1;
}
}
El segundo bloque de ubicación captura "berlín" si se solicita ejemplo.com/berlin y luego se pasa al servidor web como parámetros de consulta.
Pero tenga en cuenta que esto parece ser una idea bastante mala, ya que coincidiría con cualquier cosa que no solicite su página de inicio ( /
). Por lo tanto, incluso la solicitud de example.com/index.html se pasaría al servidor web como /?lat=index.html&lon=index.html. Podrías evitar esto usando algún tipo de prefijo como ejemplo.com/city/berlin o mejorando la expresión regular del segundo bloque de ubicación para que no coincida con ciertas cosas como index.html