Squid 反向代理重定向/重写 HTTP 到 HTTPS

Squid 反向代理重定向/重写 HTTP 到 HTTPS

我的 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 匹配的。

相关内容