反向代理也就是通常所说的Web服务器加速,它是一种通过在繁忙的Web服务器和Internet之间增加一个高速的缓冲服务器来降低负载。Squid可以配置为反向代理,同时支持HTTP和HTTPS请求,下面以访问内部Alist服务器(IP地址:192.168.101.15,http访问端口:5244)为例,介绍Squid反向代理的配置过程。
在配置Squid反向代理之前,可以参照pfSense使用CloudFlare动态域名,配置Let’s Encrypt证书实现SSL安全访问一文设置动态域名和ACME证书。
安装Squid
导航到系统>插件管理,可用插件选项卡,搜索Squid插件并安装。
配置Squid
要启用Squid反向代理,必须先启用整个Squid代理服务,只有在启用全局Squid代理后,反向代理才可以配置使用。
在启用Squid时,它会要求先配置本地缓存。转到服务>Squid代理服务器,本地缓存选项卡,配置本地缓存。为简化配置,本教程完全禁用缓存。
然后转到常规选项卡,选中启用squid代理和保留设置/数据选项。
接下来,转到服务>Squid反向代理,配置反向代理。反向代理使用的接口选择WAN接口,如果需要,也可以添加其他代理IP,如防火墙的其他虚拟IP地址;外部FQDN,输入配置的动态域名。
在Squid反向HTTP设置和Squid反向HTTPS设置部分,输入两个协议使用的端口。由于低于1024的端口是保留端口,如果你试图使用1024以下的端口值,在保存设置时,会有出错提示。可以在系统>可调参数处,添加一个可调参数net.inet.ip.portrange.reservedhigh,并将值更改为“0”,然后重新启动防火墙即可使用1024以下的端口;SSL证书和证书CA,选择我们在pfSense使用CloudFlare动态域名,配置Let’s Encrypt证书实现SSL安全访问当中设置的证书和CA。
其他选项保持默认即可。
接下来配置后端服务器,转到Web服务器选项卡,添加内部Alist服务器,选中启用端点,输入内部服务器的各项信息。
配置完成如下图所示:
为了将后端服务器与前端连接,还需要添加映射。这将捕获并评估客户端连接到的URL,并与标准列表进行比较,再将用户链接到正确的后端Web服务器或节点。转到映射选项卡,添加Alist服务器的映射。选中启用URI,输入组名,选中前面添加的Web服务器(端点),并根据示例,输入我们访问内部Alist服务器所使用的HTTP和HTTPS的URI。
最后,添加访问所需的防火墙规则,以允许反向代理 端口(8444/8445)上的入站流量通过。转到防火墙>规则策略,WAN选项卡,添加两条放行规则:
检查测试
手机关闭WIFI,浏览器输入https://域名+端口(或http://域名+端口)访问内部Alist服务器,测试是否能正常访问,如下图所示:
至此,Squid反向代理配置完成!