로컬 컴퓨터의 포트 8080에서 실행되는 서비스의 역방향 프록시로 nginx를 사용하고 있습니다. 또한 /vp를 사용하여 업스트림에 경로를 추가해야합니다. 이것은 간단하고 나는 그것을위한 작업 location
블록이 있습니다문제 재 작성 URL
location ~ ^/(.*?)$ {
proxy_pass $scheme://127.0.0.1:8080/vp/$1;
proxy_set_header Host $host;
proxy_redirect $scheme://$host/vp/ $scheme://$host/;
}
은 그래서 위의 example.com/resource
같은 URL을 지원하는 것이며, 완벽하게 작동합니다.
그러나 나는 또한 example.com/vp/resource
과 같은 URL을 지원하고 싶습니다. 이를 위해 다른 location
블록을 작성해야합니다. 그렇지 않으면 업스트림으로 전달되어 /vp/vp/resource
으로 작동하지 않습니다.
location ~ ^/vp/(.*?)$ {
rewrite /vp(.*?)$ /$1;
}
위의 작품은 이제 example.com/vp/resource
과 같은 URL을 지원합니다.
하지만 마지막으로 해결하고 싶은 점이 하나 있습니다. 사용자가 example.com/vp/resource
에 액세스 할 때 브라우저의 URL을 example.com/resource
으로 다시 쓰길 원합니다. 위의 구성은이 작업을 수행하지 않으며 수정할 수있는 방법을 모르겠습니다. 재 작성의 요점은 브라우저에 표시된 URL을 다시 작성하는 것이지만 생각하지는 않습니다. 이것에
location ~ ^/vp/(.*?)$ {
rewrite /vp(.*?)$ /$1;
}
: