我的 Squid 反向代理仅接受 HTTPS 请求。将 HTTP 请求重定向/重写为 https 的简便方法是什么?因此,如果用户访问,http://foo.server.com
他应该被自动重定向到https://foo.server.com
答案1
一种方法是让原始服务器进行重定向,但让 Squid 进行重定向似乎更有效。有几种方法,但使用deny_info 似乎是最简单的。
在squid.conf配置文件中:
acl PORT80 myport 80
acl MYSITE dstdomain foo.server.com
http_access deny PORT80 MYSITE
deny_info 301:https://foo.server.com%R MYSITE
乍一看,http_access 语句只是拒绝访问您网站的 HTTP 版本。然而,由于有deny_info 语句,Squid 会将用户重定向到其他网站(在本例中为 HTTPS 版本),而不是简单地给出拒绝访问的消息。
该%R
标签会导致请求 URL 路径包含在重定向中,这样,如果用户尝试访问http://foo.server.com/bar
,他们将被定向到https://foo.server.com/bar
,而不仅仅是https://foo.server.com
。
URL 格式标签的完整列表可在 Squid 文档中找到:http://www.squid-cache.org/Doc/config/deny_info/
acl 语句的顺序很重要,因为 Squid 只记住最后一个http_access deny
并寻找与deny_info
该 acl 匹配的。