Chinaunix
标题:
Squid透明代理+网桥+Haproxy的问题
[打印本页]
作者:
xiewayne
时间:
2014-03-06 14:46
标题:
Squid透明代理+网桥+Haproxy的问题
本帖最后由 xiewayne 于 2014-03-06 14:49 编辑
Hi,万能的unix社区大神们,本人遇到的Squid透明代理+网桥+Haproxy的问题,请点拨下:
Squid3.3.8部署在配置了网桥的Centos5.8设备上,连接此设备的UserPC电脑访问WEB已经OK。
但若想在设备上再部署一个HAProxy,将HAProxy根据一些规则分发给Squid进行处理,则会出现访问出错。
**如下:
UserPC(192.168.199.100) |---------------- 设备(192.168.199.177)---------| WEB
| iptables--------HAProxy---------Squid--- |
***
iptables将端口80->3128
***
HAProxy其将3128分发给本机的8128(即Squid监听的端口)
***
Squid的配置:
http_port
8128 transparent
***
此时UserPC访问WEB时会出现Access Denied
squid access.log中:
1394086342.030 173 192.168.199.177 TCP_MISS/403 3796 GET
http://www.squid-cache.org/
- HIER_NONE/- text/html
cache.log会出现:
WARNING: Forwarding loop detected for:
GET / HTTP/1.1
Host:
www.squid-cache.org
User-Agent: ELinks/0.11.1 (textmode; Linux; 132x58-2)
Accept: */*
Accept-Encoding: gzip
Accept-Language: en
Cdn-Src-Ip: 192.168.199.100
Via: 1.1 squid.pushers.net (squid/3.3.
X-Forwarded-For: 192.168.199.177
Cache-Control: max-age=259200
Connection: keep-alive
的警告
问题疑点及分析:
是否加了HAproxy后,它与squid的透明端口建立连接的情况与其本身的透明实现相冲突。。
如果用curl +x 直接在设备177上进行8128端口的请求,也是会返回access denied的。
敬请高手指点,是否有办法解决!!
作者:
xiewayne
时间:
2014-03-06 14:52
在线等!!!!
作者:
q1208c
时间:
2014-03-06 15:24
如果 haproxy 是 7层 模式, 那 squid 已经不是透明代理了. 因为它拿不到前面的一些信息了. 被 haproxy 过虑掉了.
我不是太明白, 为啥要加 haproxy, squid 本身的acl, 也可以做一些规则. harpoxy在转发上有优势, 但如果是复杂规则, 它也未必能够支持. 并且, 多了这一层转发, 性能未必是提升.
PS, 一切以限制用户上网为目的的行为都应该被BS和禁止.
作者:
xiewayne
时间:
2014-03-06 16:05
感谢q1208c的回复!此应用的原因:
主要是因有两个版本的Squid,其各自(有过定制)的优势不同,但合并的代价很大,所以想通过HAProxy分发给不同Squid。
作者:
q1208c
时间:
2014-03-06 16:31
回复
4#
xiewayne
你把 trans... 这个参数去掉 试试.
不过, 我没玩过这么复杂的, 不保证OK.
作者:
xiewayne
时间:
2014-03-06 16:38
回复
5#
q1208c
嗯,试过,这样UserPC的提示是ERROR:Invalid URL.
squid的access是:
1394094862.283 0 192.168.199.177 NONE/400 3509 GET / - HIER_NONE/- text/htm
是否可尝试使Haproxy进行透明代理设置?
作者:
q1208c
时间:
2014-03-06 16:40
回复
6#
xiewayne
haproxy我配置的不多, 还不知道是不是支持 透明 方式.
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2