如何设置 squid 来做反向代理

如何设置 squid 来做反向代理

我读https://stackoverflow.com/questions/656627/how-to-setup-a-squid-reverse-proxy以及其中的链接,但我似乎不明白。

我想要的只是这个:

让 squid 在某个端口上运行(默认 3128 就可以了),我会将所有发送到我的 NAT 上的端口 80 的请求重定向到运行 squid 的服务器上的端口 3128。(实际上我认为我已经完成了这部分)。

现在我想修改 squid.conf,例如,如果请求是针对 host1.mydomain.com 的,则应将其重定向到 local_IP_Address_1 上的端口 80,如果请求是针对 host2.mydomain.com 的,则应转到 local_IP_Address_2 上的端口 80

就是这样。现在请不要缓存。什么都不要 - 只需代理请求即可。我目前也不需要 SSL,但如果答案也包含有关 SSL 的信息,那就太好了。

谢谢

更多信息:我在本地网络上有两台机器 SRV1 和 SRV2,其 IP 分别为 IP1 和 IP2。SRV1 应服务于多个域(dom1.mydomain.com 和 dom2.mydomain.com),而 SRV2 应服务于多个域(dom3.myOtherDomain.com 和 dom4.mydomain.com)。

所有上述域名都设置了 CNAME 记录,以指向单个 common.mydomain.com。所有这些都在具有 NAT 的路由器后面运行。

我认为我需要的是让 squid 在 SRV1 的某个端口(默认 3128 就可以)上运行,将发往我 NAT 上端口 80 的所有请求重定向到运行 squid 的服务器上的端口 3128。(实际上我认为我已经完成了这部分)。

我认为它的工作方式应该是 WEB->ROUTER:80 -> SRV1:3128 上的 squid -> SRV1/2(基于主机):80。

但我遇到了问题。

现在看来,从 SRV1 上的 squid 发送到 SRV2 的请求是在端口 80 上发送的,但请求 URL 本身有端口 3128。即 GEThttp://dom4.mydomain.com:3128/path 发送到 SRV2 上的端口 80。

知道如何从 squid 发送的请求中删除 :3128 吗?

或者我必须将 squid 移至端口 80 并将其他服务器移至另一个端口??

答案1

找到了谜题中缺失的最后一块。我在 squid.conf 中的 http_port 行中添加了 vport=80。

现在我一切都正常了。

相关内容