squid反向代理,一定要知道后端真实服务器的源IP是什么才能配置


vim /etc/squid/squid.conf

# Squid normally listens to port 3128

http_port 80 accel vhost vport

cache_peer 119.75.218.70 parent 80 0 originserver name=a

cache_peer_domain a www.baidu.com

cache_peer 115.159.51.96 parent 80 0 originserver name=b

cache_peer_domain b www.apelearn.com


如何配置可以让squid代理后端web上的所有域名?

加一行:cache_peer 192.168.10.111 80 0 originserver   这样可以代理10.111上80端口下的所有网站

transprant, accel vhost vport )

transprant 用来做透明代理

accel 表示代理为加速模式,如果不加accel,那么squid就是单纯的代理,不缓存数据,而加上它后,客户端请求会直接由squid服务器回答而不再把请求转发至真正的web服务器上。配置反向代理时,可以不加accel,但需要加上vhost,这是用来区分代理后端哪些域名的,如果不加则无法访问,vport如果代理的都是80端口可以不加,但是如果不是80端口就得加上。


测试一下是否正常访问:

[root@kevin squid]# curl -x127.0.0.1:80 www.baidu.com -I

HTTP/1.0 200 OK

在hosts里要添加本机IP和对应的www.baidu.com


检查错误:squid -kcheck

重启:squid -kre