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

我的Squid反向代理只接受HTTPS请求。 将HTTP请求redirect/重写为https的简短方法是什么? 所以如果用户访问http://foo.server.com他应该自动redirect到https://foo.server.com

一种方法是让原始服务器做redirect,但是让squid去做它似乎更有效率。 有几个方法,但使用deny_info似乎是最简单的。

在squid.confconfiguration文件中:

 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会将用户redirect到一个替代站点(在这种情况下是HTTPS版本),而不是简单地给一个拒绝访问的消息。

%R标记会导致请求URLpath被包含在redirect中,所以如果用户试图访问http://foo.server.com/bar那么他们将被定向到https://foo.server.com/bar ,而不仅仅是https://foo.server.com

URL格式标签的完整列表可以在Squid文档中find: http : //www.squid-cache.org/Doc/config/deny_info/

acl语句的顺序很重要,因为squid只记得最后一个http_access deny并寻找deny_info来匹配acl。