这个truenas本身的问题,没有直接的解决方案,但有用户提了issue,可以参照reddit网,寻求解决方案的过程中,偶尔间发现了,truenas自身的web ui用的是nginx服务器,自然联想到使用truenas安装好的ngnix服务器来做代理。对nginx是什么有疑问的可以自行搜索了解。
首先找到nginx安装的位置,22.04版本nginx安装目录在【 /etc/nginx/】文件夹下,找到这个文件夹下配置文件nginx.conf,这个是nginx运行时读取的配置文件,这里主要用于truenas管理页的运行。后面我们要加一行配置。现在找到当先目录下文件夹【conf.d】, cd到该目录下,创建【default.conf】文件(文件名随意),配置文件内容如图
如果有多个需要转发的服务,也可以一个文件写多个配置,或者写多个配置文件,然后在nginx默认加载的配置文件里包含进去我们加的配置,如下图
这里所有的配置都配置完了,接下来重启下nginx服务即可,在nginx命令文件夹下,敲命令:【./nginx -s reload】回车即可,如果配置文件有误,重启nginx会报错并给出提示(有问题的配置文件不会加载,运行的仍旧是之前的配置)。因为truenas自身设置的问题,重启后nginx.conf的文件会恢复原样(推测重启加载原始的配置文件,防止用户误操作,导致无法访问truenas的web ui),但自定义添加的配置文件不会消失,后续重启turenas后仅修改nginx.conf配置后重启nginx服务即可。当然嫌麻烦的可以找到truenas重启读取的原始的配置文件,修改应该可以做到重启不丢失配置的效果。
现在可以使用ipv6地址访问你的docker应用了,如果配置域名也是可以直接访问哒,推荐ddns-go