环境规划
反向代理服务器就是代理服务器代替目标服务器去接受并返回客户端的请求即隐藏目标服务器。
Squid服务器IP:192.168.0.128/24 (外网),192.168.1.254/24 (内网)
Web apache1服务器IP: 192.168.1.129/24 (内网)
Web apache1服务器IP: 192.168.1.130/24 (内网)
服务器底层系统: CentOS Linux release 8.2.2004 (Core)
win7客户机IP: 192.168.0.1 (内网)
准备web服务
准备web apache1
准备Web apache1服务器,安装服务
[root@web1 ~]# yum -y install httpd
因为web服务器只做测试效果用,所以用最基础的配置即可,制作简易网页放进默认存放网页的目录中,之后重启web服务
[root@web1 ~]# echo "This is web1" > /var/www/html/index.html [root@web1 ~]# systemctl restart httpd
准备web apache2
准备Web apache2服务器,安装服务
[root@web2 ~]# yum -y install httpd
准备简易网页,与web1同理,之后重启web服务
[root@web2 ~]# echo "This is web2" > /var/www/html/index.html [root@web2 ~]# systemctl restart httpd
Squid反向代理
配置squid反向代理服务器,安装服务
[root@squid ~]# yum -y install squid
修改配置文件
[root@squid ~]# vi /etc/squid/squid.conf
编辑,其实跟正向代理的配置是一样的,只不过是多了cache_peer的反向代理参数
http_port 192.168.1.254:80 代理Squid监听的端口 cache_mem 64 MB 内存缓冲设置是指需要使用多少内存来作为高速缓存 maximum_object_size 4 MB 允许最大文件请求大小 cache_dir ufs /var/spool/squid 100 16 256 用于指定硬盘缓冲区,缓冲目录容量(单位M)、一级缓存目录数量、二级缓存目录数量 cache_peer 192.168.1.129 parent 80 0 proxy-only originserver access_log /var/log/squid/access.log 设置访问日志 acl localnet src 192.168.1.0/24 设置访问控制列表只允许192.168.1.0/24网段访问 http_access allow localnet http_access deny all :wq
cache_peer 192.168.1.129 parent 80 0 proxy-only 解析 cache_peer: 用于设置反向代理的后端IP地址 parent: 用于配置反向代理监听的端口 no-query: 用于设置反向代理的响应方式为不做查询操作,直接获取后端数据 originserver:使此服务器作为源服务器进行解析。 weight: 权重(根据需求自行添加)
检查配置文件是否有误,重启服务
[root@squid ~]# squid -kcheck [root@squid ~]# systemctl restart squid
客户机测试反向
在浏览器选项——连接——局域网不需要设置代理
访问squid反向服务器地址,可以看到web1服务器的网页
Squid反向代理轮循调度
平衡轮循将访问量分散开,分散给所反向代理的web服务器,从而减轻服务器的压力
在已经配置完成squid反向的基础上开始配置
编辑配置文件
[root@squid ~]# vi /etc/squid/squid.conf
http_port 192.168.1.254:80 cache_mem 64 MB maximum_object_size 4 MB cache_dir ufs /var/spool/squid 100 16 256 cache_peer 192.168.1.129 parent 80 0 proxy-only round-robin originserver name=web1 cache_peer 192.168.1.130 parent 80 0 proxy-only round-robin originserver name=web2 access_log /var/log/squid/access.log acl localnet src 192.168.1.0/24 http_access allow localnet http_access deny all :wq
参数解析: round-robin可以让代理轮询多台源服务器
检查配置文件是否有误,重启服务
[root@squid ~]# squid -kcheck [root@squid ~]# systemctl restart squid
客户机测试轮循调度
客户机浏览器设置好代理访问squid服务器
刷新网页,内容已经变成了web2服务器的网页