两个反向代理到 filerun 站点的坑

虽然目前家里设备解析的域名基本只为我一个人服务,出于心理强迫因素,一直想让它更安全一些,我想到的方法有两个,一个是做个跳板机,反代到现有的设备,再一个是用Cloudfare套一层,同时实现IPv4/6双栈访问。

Cloudfare 的DDNS其实早就做了,只是没开代理,因为不充值的情况下,代理方式只能使用限定的几个端口1,IPv6虽然可以直接使用80和443,但为避免不必要的麻烦,一直用的是自定义端口,而且每个应用使用了不同的端口。在有限的端口限制下,如果不想解析太多的二级域名,只能用二级目录反向代理的方式来访问不同的应用。

Filerun 是我比较常用的一个应用,在外面取用一些文件的时候很方便,所以搞的时候第一个弄的它,但是一直出502,一直以为我抄错了配置代码。后来无意间先试了试其它应用,发现都是好的。然后开启了 Filerun 反代的踩坑之旅。

主要两个坑,一个是前面说的报502,还有一个是无法正常加载,页面只显示“正在加载…”

环境:Ubutnu 24.04 TLS / nginx 1.22.0 / Filerun 20220519 (手动安装版)

报502

反向代理至fileurn 报502的坑挻奇怪的,不知道是不是和版本有关。正常反代到本机,用的都是 127.0.0.1 或者是 localhost 这样的地址,但在我没记录次数的尝试后,发现它使用现有在使用的域名才不会报502。

使用正在使用的域名的话,得从外面绕一圈,所以给filerun 站点新增了一个域名 fielrun.yywr.net ,在 /etc/hosts 文件中把它指向了一个192.168.1.0/24 的ip,发现502又来了…

经过多次测试,发现把这个域指向了本地的IPv6地址 ::1 (IPV6 环回地址  0:0:0:0:0:0:0:1 的压缩形式) ,它不报了。。。
以我有限的知识来判断,这应该是filerun本身的问题,但我想不起来程序配置中有绑定域名的选项

页面只显示“正在加载…”

不再502后,并没有正常运行,走反代地址一直显示“正在加载…”,然后不动了。按F12看网络连接,发现它在尝试以一种奇葩的组合链接在连接:“反代站的域名:原始站的端口”

我又开始怀疑我抄配置的能力,总感觉有哪个配置项不对。这个时候 NextCloud 和 Filerun 之间的区别就出来了。Filerun 基本没多少人分享填坑的资料…

查看了一下官方对于反代的配置,没有特别项,虽然那配置是针对的docker

后来习惯性的打开了搜索引擎的多个结果,在某个页面中看到了和我一样的问题,讨论贴的最后一个答复中(Thank you for jameschannel)给出了一段配置

在 customizables文件夹中,新建 config.php文件,填入:

<?php
umask(000);
$config['url']['root'] = 'https://你的域名:端口号/';
php?>

这哥们牛B,因为这答复基本算独一份,虽然依然觉用某个反代配置选项可以解决这个问题

这个解决方法存在在一个问题,我在家里想要用另一个域名来实现局域网访问时就行不通了,在输入二次验证码的界面时报 “Communication with the server failed. Please try again later.”,这让我只能改hosts, 保证只用一个域名来访问

参考

  1. Cloudfare 端口限制:https://developers.cloudflare.com/fundamentals/get-started/reference/network-ports/
  2. Filerun 反代官方配置: https://docs.filerun.com/docker-ssl
  3. Filerun “正在加载…” 解决方法:https://forums.unraid.net/topic/126039-%E5%85%B3%E4%BA%8E%E4%BD%BF%E7%94%A8swag%E5%8F%8D%E5%90%91%E4%BB%A3%E7%90%86filerun%E4%B8%8D%E8%83%BD%E6%AD%A3%E5%B8%B8%E8%AE%BF%E9%97%AE%E7%9A%84%E9%97%AE%E9%A2%98/

Leave a Reply

Your email address will not be published. Required fields are marked *