我电脑上有一个软件,可以提供一个webui,但是它很多资源文件是用相对路径引用的,例如
<link rel="stylesheet" href="/css/reset.css" type="text/css" />
<link rel="stylesheet" href="/css/styles_ipad.css" type="text/css" />
<img width="14px" height="18px" src="../images/library@2x.png" />
为了方便访问,我尝试将它用nginx或者caddy反向代理到内网(假设是192.168.8.100)web服务的子路径
当我将这个webui,用nginx或者caddyproxy_pass
到子路径http://192.168.8.100/xxxserver
的时候,就会产生错误引用,例如:
webui中的/css/reset.css
会指向http://192.168.8.100/css/reset.css
而不是http://192.168.8.100/xxxserver/css/reset.css
webui中的../images/library@2x.png
会指向http://192.168.8.100/images/library@2x.png
而不是http://192.168.8.100/xxxserver/images/library@2x.png
请问我要如何编写rewrite规则,才可以让这个webui正常工作?
以下是我nginx的配置:
upstream xxxserver {
server 127.0.0.1:18005;
keepalive 64;
}
location = /xxxserver {
return 301 /xxxserver/;
}
location ~ /xxxserver/(?<xspath>.*) {
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_pass_request_headers on;
proxy_set_header Connection "keep-alive";
proxy_store off;
proxy_pass http://xxxserver/$xspath$is_args$args;
gzip on;
gzip_proxied any;
gzip_types *;
}