您的位置:首页 >专题集锦 >

关于使用nginx反向代理TrueNAS scale 网页客户端(WEBUI)

2023-08-20 23:00:05    来源:哔哩哔哩

作为业余玩家,在家里置办了一台机房退役的 dell R730,作为自己折腾的 All In One 服务器。为了方便管理/访问家里服务器,又没有很专业的折腾需求,本人使用 nginxWebUI(GitHub地址:/cym1102/nginxWebUI) 作为家里各种应用、服务的反向代理工具,为了方便管理,Let's encrypt的免费证书也在上面申请即续期。一般的服务都好说,通过简单的配置都可以成功完成反向代理。但是在对TrueNAS Scale 的WebUI进行反向代理的时候,却无法成功访问。

一开始我填写的配置是这样的:


(相关资料图)

此处是通过DMZ主机转发的自定义端口给nginx服务的443端口,所以监听的是443端口。

在浏览器输入`https://域名:非标准端口`,回车后,在正常情况下,Web 服务会给浏览器返回`https://域名:非标准端口/请求位置`。

例如访问 `https://域名:6666`,会被重定向到`https://域名:6666/ui/localpath`。

但是访问TrueNAS时,重定向后,浏览器地址栏内访问地址只剩下 `https://域名/ui/localpath` 这样的域名+请求位置,而端口号消失了(此时其实是使用了https的默认443端口,但是家用宽带的443端口是被封禁的,于是便无法访问)。

作为一个业余玩家,让我完整学习nginx语法和互联网协议是不可能的了,特定问题不会就用搜索引擎搜,经过一番查找,发现 /u011220828/article/details/118894539 和我的问题相似,可以确认是 `proxy_set_header Host` 的这个参数设置有问题。赶紧修改:

重新启用配置,问题依旧。经过一番思考,发现我的$server_port 的对应参数应该是我的监听端口——443,这样我勾选 `Host参数`当然没用了。正确做法应该是设置额外参数:

由于此参数按道理是每个服务都添加是最好的,为了方便以后省点功夫,我使用参数模板的方式添加:

此处若我的DMZ主机转发的是6666端口,即使用 `https://域名:6666` 访问家里的时候,则值应为 `$host:6666` 。

添加完模板后,在反向代理的对应地址内编辑,设置额外参数:

最终添加完的界面是这样的,不再勾选Host参数:

修改完后不忘按以下图中顺序重新启动nginx配置文件。

再次输入网址+端口访问 TrueNAS,终于可以成功访问了。

关键词:

相关阅读

精彩推送