Squid的三种代理:反向代理
反向代理
如果 Squid 反向代理服务器中缓存了该请求的资源,则将该请求的资源直接返回给客户端;否则反向代理服务器将向后台的 Web 服务器请求资源,然后将请求的应答返回给客户端,同时也将该应答缓存在本地,供下一个请求者使用。
工作机制:
●缓存网页对象,减少重复请求
●将互联网请求轮训或按权重分配到内网Web服务器
●代理用户请求,避免用户直接访问Web服务器,提高安全
环境配置
主机 | 操作系统 | IP地址 | 软件、安装包、工具 |
---|---|---|---|
Squid-Server | CentOS7 | 192.168.184.10 | squid-3.5.28.tar.gz |
Web1 | CentOS7 | 192.168.184.20 | httpd |
Web2 | CentOS7 | 192.168.184.30 | httpd |
客户机 | Windows | 192.168.184.100 | —— |
Squid-Server(192.168.184.10)
iptables -F #清空防火墙规则
iptables -t nat -F
vim /etc/squid.conf
......
60行修改,插入
http_port 192.168.184.10:80 accel vhost vport
cache_peer 192.168.184.20 parent 80 0 no-query originserver round-robin max_conn=30 weight=1 name=web1
cache_peer 192.168.184.30 parent 80 0 no-query originserver round-robin max_conn=30 weight=1 name=web2
cache_peer_domain web1 web2 www.lic.com
http_port 80 accel vhost vport #squid从一个缓存变成了一个Web服务器使用加速模式,这个时候squid在80端口监听请求,同时和web server的请求端口(vhost vport)绑定,这个时候请求到了squid,squid是不用转发请求的,而是直接要么从缓存中拿数据要么向绑定的端口直接请求数据。
parent | 代表为父节点 |
---|---|
80 | HTTP_PORT |
0 | ICP_PORT |
no-query | 不做查询操作,直接获取数据 |
originserver | 指定是源服务器 |
round-robin | 指定 squid 通过轮询方式将请求分发到其中一台父节点 |
max_conn | 指定最大连接数 |
weight | 指定权重 |
name | 设置别名 |
systemctl stop httpd
systemctl restart squid
web1、web2
systemctl stop firewalld.service
setenforce 0
yum install -y httpd
systemctl start httpd
web1(192.168.184.20)
echo "this is lic" >> /var/www/html/index.html
web2(192.168.184.30)
echo "this is kiki" >> /var/www/html/index.html
客户机(192.168.184.100)的域名映射
修改 C:\Windows\System32\drivers\etc\hosts 文件
192.168.184.10 www.lic.com
客户机的代理配置
浏览器访问 http://www.lic.com