我确实找到了解决方案,但同时在 Nginx 中也发现了一个错误
https://trac.nginx.org/nginx/ticket/1370#ticket
编辑-1
似乎我记录的错误是无效的,这甚至帮助我理解了更多的东西。所以我稍微编辑了配置。
您需要使用以下配置
location ~* /deluge/(.*) {
sub_filter_once off;
sub_filter_types text/css;
sub_filter '"base": "/"' '"base": "/deluge/"';
sub_filter '<head>' '<head>\n<base href="/deluge/">';
sub_filter 'src="/' 'src="./';
sub_filter 'href="/' 'href="./';
sub_filter 'url("/' 'url("./';
sub_filter 'url(\'/' 'url(\'./';
set $deluge_host 192.168.33.100;
set $deluge_port 32770;
proxy_pass http://$deluge_host:$deluge_port/$1;
proxy_cookie_domain $deluge_host $host;
proxy_cookie_path / /deluge/;
proxy_redirect http://$deluge_host:$deluge_port/ /deluge/;
}
关键是使用以下将基本网址插入页面
sub_filter '<head>' '<head>\n<base href="/deluge/">';
src
然后在 html 中的和href
属性中进行替换。并且也在url('
css条目中。
幸运的是,deluge 有一个带有基本 url 的 JavaScript 配置。所以我们可以通过添加来覆盖它
sub_filter '"base": "/"' '"base": "/deluge/"';