首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用单个IP和pfSense - Squid发布不同的站点。

问使用单个IP和pfSense - Squid发布不同的站点。
EN

Server Fault用户
提问于 2017-09-08 23:22:47
回答 1查看 20.3K关注 0票数 2

我是pfSense的新手,所以请容忍我。

来总结一下,我有:

  • 启用拆分DNS的网络。
  • 一个IIS服务器具有一个IP,不同的站点在端口80上使用不同的主机头绑定运行,所有站点都可以为内部用户正常工作。
  • pfSense 2.3.4-版本-p1,在网络边缘安装了Squid0.4.40。
  • 下面的图片如下所示:

我想要达到的目标:

  • 使用相同的内部URL为外部用户发布内部站点。
  • 不需要透明代理(用于内部缓存和CalmAV)和HTTPS。

我读到pfSense可以使用反向代理完成这个技巧,我按照这里提到的步骤来启用它(除了对内部站点使用相同的80个端口):https://www.reddit.com/r/homelab/comments/2vyiiy/til_反转_代理_通过_鱿鱼_在……里面_pfsense/

问题:

  • 当外部用户输入站点URL并点击enter时,浏览器开始尝试连接,但几秒钟后,浏览器在没有加载页面的情况下失败,更奇怪的是,他们键入的URL被从HTTP重定向到HTTPS。

Troubleshooting:

  • 禁用用于内部通信的透明HTTP代理。
  • Squid日志没有显示与URL重定向有关的任何内容。
  • pfSense防火墙日志显示,外部用户可以使用HTTPS进行一次连接,然后所有通信都使用HTTPS进行通信。

问题:

  • 这个场景对pfSense/Squid有效吗?
  • 如果是的话,我遗漏了什么?如果没有,还有什么可供选择的?
  • 我是否必须使用IIS上的不同端口发布站点,并在Pfsense上启用端口重定向?(这正是我想要避免的)

任何额外的步骤或故障排除的建议都是非常感谢的。

EN

回答 1

Server Fault用户

发布于 2017-09-09 21:39:57

解决:

为了真正理解它的工作原理,我不得不花一些时间阅读鱿鱼手册:http://www.visolve.com/squid/whitepapers/reverseproxy.php。

在阅读了手册之后,我决定从头开始,完全重新安装pfSense,因为我开始相信Squid服务有问题,它在日志中没有显示任何东西。

应用于我的场景的

技巧和技巧:

  • 确保DNS拆分是正确的。
  • 确保pfSense首先使用您的内部DNS。或者您在本地站点的pfSense上有静态DNS条目。(主机文件或DNS转发器静态条目)
  • 即使您可能不使用它,您必须配置和启用前向代理,但不需要启用透明模式。
  • 必须首先启用前向代理,如果您不配置前向启用反向代理,事情就会变得很糟糕。
  • 如果使用拆分的大脑DNS,则不需要告诉pfSense部署中使用的主机头,实际上,添加主机头会导致squid服务在我的场景中下降。

因为我花了一段时间才弄清楚这件事,所以我想我最好回答/存档我的发现,这样我就能帮助那些像我一样陷入困境的人,

逐步指南:

步骤1:通过转到服务=> Squid Proxy Server => General

启用前向代理

  • Eanble Squid代理:检查
  • 代理接口: LAN
  • 代理端口: 3128
  • 允许用户进入界面:选中
  • 传输HTTP代理:未选中
  • 中间过滤中的SSL :未选中

步骤2:通过转到服务=> Squid反向代理=> General

启用反向代理

  • 反向代理接口: WAN
  • External :在我的示例中,这应该是xyd.com,也就是顶级域名,输入其他任何内容都会导致错误,人们说,尽管这个字段只允许您键入一个域名,但它也不会阻止您代理不同的域名,只要其中一个域名匹配,但我无法确认。
  • 在未经授权的请求上重置TCP连接:检查
  • 启用HTTP反向代理:选中
  • 反向HTTP端口: 80

在继续之前,请执行上述所有操作并保存,请通过浏览到: Status => => squid Services Status Green,确保Squid服务已启动并运行,如果该服务在此之前不会重新检查您的工作。

现在需要定义外部DNS和内部DNS之间的映射。

步骤3:通过转到服务=> Squid反向代理=>

来定义内部=>服务器

  • 单击Add添加每个内部Web服务器(不是网站或URL)
  • 启用此对等点:选中
  • 对等别名:内部web服务器的名称,只是一个容易引用的名称。从我的示例: Web/IIS
  • 对等IP:通过DNS解析的实际内部IP,从我的示例: 10.0.0.2
  • 对等端口:在我的示例中,内部站点正在使用的端口: 80
  • 对等协议: HTTP

一旦您完成了这个操作,pfSense现在知道有一个内部web服务器具有您刚才应用的设置,现在您需要通过定义映射来告诉它这个web服务器有什么。

步骤4:通过转到服务=> Squid反向代理=>映射

定义内部URL

  • 启用此URI:选中
  • 组名:任何允许您快速识别这个组中使用的URL或主机头的名称,我使用了类似于"Web/IIS组重定向组“之类的编辑:在这里写入长名称会导致squid服务失败,只写没有空格的短名称。
  • 对等点:您必须从我的示例中选择能够回答此组中标识的URL的服务器:上一步中标识的web服务器: Web/IIS
  • URI设置:您必须在这个组中您希望pfSense匹配的主机头、域名或URI中写入,这里有一个很大的注意事项:只有在启用透明模式时才编写此模式,例如,透明模式已关闭,因此我不必编写任何主机头、域名或URI。

在确保Squid服务仍然在运行之后,我做了一个外部用户和ta-da的测试!它奏效了:)

票数 2
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/872771

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档