![使用 squid 进行反向代理](https://linux22.com/image/506810/%E4%BD%BF%E7%94%A8%20squid%20%E8%BF%9B%E8%A1%8C%E5%8F%8D%E5%90%91%E4%BB%A3%E7%90%86.png)
我正在尝试设置一个反向代理,以便我的网络上可以拥有多个 Web 服务器。
我目前有 2 台服务器:
10.0.0.45 - New Server Webserver/Squid Proxy
10.0.0.40 - Old Server Webserver
我可以将新服务器(10.0.0.45)上端口 1234 上的所有流量发送到旧服务器(10.0.0.40)上的端口 80。但现在我在尝试转发域时遇到问题。
我想这样转发:
*.arcath.net -> 10.0.0.40
londinium.arcath.net -> 10.0.0.45
support.ed-itsolutions.com -> 10.0.0.40
如果我必须手动添加所有子域而不是 *,我不会太在意。
有人能给我一个配置示例来做到这一点吗?
我的 squid.conf 如下所示:
http_port 1234 defaultsite=10.0.0.45:80
cache_peer 10.0.0.40 parent 80 0 no-query originserver name=whitefall
cache_peer_domain whitefall www.arcath.net blog.arcath.net .arcath.net
cache_peer 10.0.0.45 parent 80 0 no-query originserver name=londinium
cache_peer_domain londinium londinium.arcath.net
acl all src 0.0.0.0/0.0.0.0
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443 # https
acl SSL_ports port 563 # snews
acl SSL_ports port 873 # rsync
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl Safe_ports port 631 # cups
acl Safe_ports port 873 # rsync
acl Safe_ports port 901 # SWAT
acl web dstdomain 10.0.0.40
acl purge method PURGE
acl CONNECT method CONNECT
http_access allow all
http_access allow localhost
目前所有域名最终都转到 10.0.0.45
答案1
下面包含您尝试实现的目标的示例:http://wiki.squid-cache.org/ConfigExamples/Reverse/MultipleWebservers
请尝试将上述配置中的默认站点指令更改为
http_port 1234 defaultsite=londinium.arcath.net
根据 squid 文档
defaultsite=domainname
What to use for the Host: header if it is not present
in a request. Determines what site (not origin server)
accelerators should consider the default.
Implies accel.
答案2
如果您尝试设置具有负载平衡的反向缓存代理...请在进一步配置 squid 之前阅读此内容。如果我误解了您的需求,请忽略此帖子。