如何使用NGINX代理对特定URL的调用以使其泛滥?

如何使用NGINX代理对特定URL的调用以使其泛滥?,nginx,proxy,reverse-proxy,deluge,Nginx,Proxy,Reverse Proxy,Deluge,我想使用NGINX作为代理来访问我的家庭网络中的flouge,NGINX是公开的 此配置在以下情况下工作: location 8112; location / { proxy_pass http://deluge_address:8112; } 然而,我想用一个地址的形式http://nginx_address/deluge 代理内部http://deluge_address:8112. 我尝试了以下方法: location /deluge/ { proxy_pass htt

我想使用NGINX作为代理来访问我的家庭网络中的flouge,NGINX是公开的

此配置在以下情况下工作:

location 8112;

location / {
    proxy_pass http://deluge_address:8112;
}
然而,我想用一个地址的形式http://nginx_address/deluge 代理内部http://deluge_address:8112.

我尝试了以下方法:

location /deluge/ {
    proxy_pass http://deluge_address:8112/;
}
我尝试了不同的拖尾/无效果组合

但我发现404没有找到

我对网络有一些了解,但不太多。 有人知道我做错了什么吗?

我确实找到了解决方案,但同时在Nginx中也发现了一个bug

编辑-1

似乎我记录的bug是一个无效的bug,它甚至帮助我理解了更多的东西。所以我稍微编辑了一下配置

您需要使用下面的配置

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/;
}

洪水是一个基于HTML的网站吗?如果是,那么它可能会工作,也可能不会工作。假设洪水首页有一个链接/abc,洪水希望它在`可用,但您希望该页面请求。但是,由于浏览器发出了这个请求,它不会工作。Luge没有接触到外部-它只是一个web UI,用于托管在Flouge_地址的服务。你可以在这里看到它。我通过将Flouge主机和端口变量更改为我的变量来尝试它。不幸的是,它不工作。我还是拿到了404。我会朝这个方向努力。你能告诉我,我怎样才能知道,NGINX试图发出什么样的调用以及响应是什么吗?我用docker测试了这个,它对我来说很好。这就是我运行的docker run-P-d-it linuxserver/flouge。你可以试试我的解决方案,用它来解决问题。它最终还是按原样工作的。不确定,出了什么问题。我试着把所有的东西都注释掉,然后逐行取消注释——最后,它成功了。我刚刚添加了两行来启用日志访问/错误日志。谢谢顺便说一句,我在没有docker的情况下安装了NGINX,反正也没关系。
sub_filter '<head>' '<head>\n<base href="/deluge/">';
sub_filter '"base": "/"' '"base": "/deluge/"';