
저는 nginx를 처음 사용합니다. 포트 :5000에서 수신 대기하는 nginx와 Python 웹 서버가 있습니다.
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/;
}
}
답변1
이 시도:
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이 요청되면 두 번째 위치 블록은 "berlin"을 캡처하고 이는 쿼리 매개변수로 웹서버에 전달됩니다.
/
그러나 이는 귀하의 홈 페이지( ) 를 요청하지 않는 모든 항목과 일치하므로 이는 매우 나쁜 생각인 것 같습니다 . 따라서 example.com/index.html을 요청하더라도 /?lat=index.html&lon=index.html로 웹 서버에 전달됩니다. example.com/city/berlin과 같은 일종의 접두사를 사용하거나 index.html과 같은 특정 항목과 일치하지 않도록 두 번째 위치 블록의 정규 표현식을 개선하여 이를 방지할 수 있습니다.