代理服务(1):Squid的三种类型(正向+透明+反向),以案例的方式呈现

一、配置正向代理squid

作用:需要客户端配置代理才可以上网
代理服务(1):Squid的三种类型(正向+透明+反向),以案例的方式呈现_第1张图片
实现squid服务器能够访问apache在往下配置(实现网络互通)
1)修改主配置文件。
[root@squid /]# vim /etc/squid.conf

 54 http_access allow all			允许所有人使用squid
 60 http_port 192.168.200.40:3128	默认的端口号为3128
 61 cache_effective_user squid		管理squid的用户
 62 cache_effective_group squid		管理squid的组
 63 reply_body_max_size 10 MB  		限制用户下载的最大文件为10MB
 64 dns_nameservers 192.168.200.250	
 68 coredump_dir /usr/local/squid/var/cache/squid		squid缓存数据库位置

2)检查squid配置文件是否错误。
[root@squid /]# squid -k parse 没有中断说明没错误
3)初始化缓存目录和启动squid服务
[root@squid /]# squid -z
[root@squid /]# squid
4)客户端配置代理,客户端http https ftp 走代理 10.0 20.0网络不走代理
Linux:
[root@client ~]# vim /etc/profile
HTTP_PROXY=http://192.168.200.40:3128
HTTPS_PROXY=http://192.168.200.40:3128
FTP_PROXY=http://192.168.200.40:3128
NO_PROXY=192.168.10.0,192.168.20.0
export HTTP_PROXY HTTPS_PROXY FTP_PROXY NO_PROXY
[root@client ~]# source /etc/profile
Windows:
代理服务(1):Squid的三种类型(正向+透明+反向),以案例的方式呈现_第2张图片

5)判断是否为代理服务器的IP地址。
[root@http ~]# tail -F /var/log/httpd/access_log

二、配置透明代理squid(http)

作用:使用代理网关上网,客户端不需要配置代理,使用比较广泛
代理服务(1):Squid的三种类型(正向+透明+反向),以案例的方式呈现_第3张图片
1)添加代理服务器的路由功能。
[root@squid ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward=1
[root@squid ~]# sysctl -p
2)配置防火墙策略。(若要使用https要用到证书或者不使用证书访问)
[root@squid ~]# iptables -t nat -F 清空所有规则
[root@squid ~]# iptables -t nat -I PREROUTING -i ens32 -s 192.168.200.0/24 -p tcp --dport 80 -j REDIRECT --to 3128
[root@squid ~]# iptables -t nat -I PREROUTING -i ens32 -s 192.168.200.0/24 -p tcp --dport 21 -j REDIRECT --to 3128
3)查看端口映射。
[root@squid ~]# iptables -t nat -L
4)修改squid的主配置文件。
[root@squid ~]# vim /etc/squid.conf
60 http_port 192.168.200.40:3128 transparent
5)Linux客户端删除代理。
[root@client ~]# unset HTTP_PROXY HTTPS_PROXY FTP_PROXY NO_PROXY
6)客户端访问。
[root@client ~]# elinks http://192.168.100.30
7)验证。(显示TCP_IMS_HIT或TCP_MEM_HIT表示squid搭建反向代理并缓存成功)
[root@squid ~]# tail -F /usr/local/squid/var/logs/

三、配置透明代理squid(https)

代理服务(1):Squid的三种类型(正向+透明+反向),以案例的方式呈现_第4张图片

1、添加路由功能
1)添加代理服务器的路由功能。
[root@squid ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward=1
[root@squid ~]# sysctl -p
2)配置防火墙策略。(不需要将443号端口转到3128,通过80就行)
[root@squid ~]# firewall-cmd --zone=public --add-port=3128/tcp
[root@squid ~]# firewall-cmd --direct --add-rule ipv4 nat PREROUTING 0 -i ens32 -p tcp --dport 80 -j REDIRECT --to-ports 3128
3)修改squid的主配置文件。
[root@squid ~]# vim /etc/squid.conf
60 http_port 192.168.200.10:3128 transparent
或:https_port 443 cert=/etc/squid/cert.pem key=/etc/squid/key.pem
4)客户端访问。
[root@client ~]# elinks http://192.168.100.10
5)验证。(现TCP_IMS_HIT或TCP_MEM_HIT表示squid搭建反向代理并缓存成功)
[root@squid ~]# tail -F /usr/local/squid/var/logs/

四、反向代理(只使用代理,用yum安装的)

代理服务(1):Squid的三种类型(正向+透明+反向),以案例的方式呈现_第5张图片
1、添加路由功能
1)申请dns
web1 A 192.168.200.10
web2 A 192.168.200.10
2)添加代理服务器的路由功能。
[root@squid ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward=1
[root@squid ~]# sysctl -p
3)修改squid的主配置文件。
[root@squid ~]# vim /etc/squid.conf

				 55 http_access allow all							允许所有人访问
				 60 http_port 192.168.200.10:80 accel vhost vport	squid监听的端口
				 61 cache_peer 192.168.100.100 parent 80 0 no-query originserver  name=web1	0:表示没有上游代理
				 62 cache_peer 192.168.100.200 parent 80 0 no-query originserver  name=web2	0:表示没有上游代理
				 63 cache_peer_domain web1 web1.benet.com			Web1网站的使用域名为web1.benet.com
				 64 cache_peer_domain web2 web2.benet.com			Web2网站的使用域名为web2.benet.com
				 66 cache_dir ufs /var/spool/squid 100 16 256		缓存的位置,100M,一级目录16个,二级目录256个
				 67 visible_hostname squid							标识机器使用

[root@squid ~]# chown squid:squid /var/spool/squid/
4)客户端测试
Web1.benet.com:
代理服务(1):Squid的三种类型(正向+透明+反向),以案例的方式呈现_第6张图片
Web2.benet.com:
代理服务(1):Squid的三种类型(正向+透明+反向),以案例的方式呈现_第7张图片

五、反向代理(使用负载均衡功能)

1、添加路由功能
1)申请dns
www.benet.com 192.168.200.10
www.accp.com 192.168.200.10
2)添加代理服务器的路由功能。
[root@squid ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward=1
[root@squid ~]# sysctl -p
3)修改squid的主配置文件。
[root@squid ~]# vim /etc/squid.conf

				 55 http_access allow all							允许所有访问
				 60 http_port 192.168.200.10:80 accel vhost vport	squid监听的端口
				 61 cache_peer 192.168.100.100 parent 80 0 no-query originserver round-robin name=web1	squid 同时会对这些父节点的健康状态进行检查,如果父节点 down 了,那么 squid 会从剩余origin 服务器中抓取数据. 0:表示没有上游代理
				 62 cache_peer 192.168.100.200 parent 80 0 no-query originserver round-robin name=web2	squid 同时会对这些父节点的健康状态进行检查,如果父节点 down 了,那么 squid 会从剩余origin 服务器中抓取数据. 0:表示没有上游代理
				 63 cache_peer_domain web1 web1 www.benet.com		两个网站的域名为www.benet.com
				 64 cache_dir ufs /var/spool/squid 100 16 256		缓存的位置,100M,一级目录16个,二级目录256个
				 65 visible_hostname squid							标识机器使用

4)客户端测试(在代理中产看日志)
访问相同的域名,转发到不同的web服务器中
代理服务(1):Squid的三种类型(正向+透明+反向),以案例的方式呈现_第8张图片
5)主配置中附加的选项
no-query:不做查询操作,直接获取数据
no-netdb-exchange:代理服务器之间不交互信息
no-digest:代理服务器之间不做摘要表查询,直接用ICP协议沟通(同级代理)
proxy-only:直接获取对方缓冲,转交给代理服务器的客户端,而不存入本地
round-robin:如果设置数部上层服务器,那么轮流查询父级服务器
login=user:passed:要求对方做帐号及密码验证

你可能感兴趣的:(代理服务,squid,linux,centos)