Я новичок в nginx. У меня есть nginx и веб-сервер python, которые прослушивают порты: 5000.
Я хочу сделать что-то подобное www.example.com/berlin и хочу получить данные из 127.0.0.1/?lat=Берлин& lon =Берлин
Я не знаю, как установить строку запроса, которая будет использоваться, если я запрашиваю местоположение.
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/;
}
}
Попробуй это:
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;
}
}
Второй блок местоположения захватывает "берлин", если запрашивается example.com/berlin, а затем он передается на веб-сервер в качестве параметров запроса.
Но обратите внимание, что это кажется довольно плохой идеей, поскольку это будет соответствовать всему, что не запрашивает вашу домашнюю страницу (/
). Таким образом, даже запрос example.com/index.html будет передан на веб-сервер как /?lat=index.html&lon=index.html. Вы можете предотвратить это, используя какой-то префикс, например example.com/city/berlin, или улучшив регулярное выражение второго блока местоположения, чтобы оно не соответствовало определенным вещам, например index.html.