技术解析

求一个反向代理的写法,重写 URL
0
2021-05-25 14:22:06
idczone
server backend: http://backend/a.html

想实现的方法是: 访问 http://a.com/test/a.html 国外服务器反代到 http://backend/a.html

location /test/(.*) {
proxy_pass http://backend/$1;
}

location /test/ {
proxy_pass http://backend;
}

upstream backend{
server backend;
}

目前这样写是不行的,怎么才能实现呢?
location ^~ /test/ {
proxy_pass http://backend/;
}

试了,不行,还是以 http://backend/test/a.html 访问。

你要先在你这边重写 url ,再请求过去。
upstream test_upstream{
server wiki.shajiquan.com;
server 127.0.0.1:9801;
}
server {
listen 9101;
location /test/ {
rewrite /test/(.+)$ /$1 break;
proxy_pass http://test_upstream ;
proxy_redirect off;
}
}

楼主参考这篇吧。
https://segmentfault.com/a/1190000000406581
server {
listen 80;
server_name backednd;
root /path/to/www/root; location / {
rewrite /(.*) /test/$1 break;
proxy_pass https://a.com/;
}
}



参考两位的方法,已经 OK ,非常感谢!

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服