
eu sou novo no nginx. Eu tenho nginx e um servidor web python que escuta nas portas: 5000.
Eu quero fazer algo assim www.example.com/berlin e quero obter os dados de 127.0.0.1/?lat=Berlim&lon=Berlim
Não sei como definir uma string de consulta que será usada se eu solicitar o local.
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/;
}
}
Responder1
Experimente isto:
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;
}
}
O segundo bloco de localização captura o "berlin" se example.com/berlin for solicitado e então isso é passado para o servidor da web como parâmetros de consulta.
Mas observe que isso parece ser uma péssima ideia, pois corresponderia a qualquer coisa que não esteja solicitando sua página inicial ( /
). Assim, mesmo a solicitação de example.com/index.html seria passada para o servidor web como /?lat=index.html&lon=index.html. Você pode evitar isso usando algum tipo de prefixo como example.com/city/berlin ou melhorando o regex do segundo bloco de localização para não corresponder a certas coisas como index.html