squid反向代理配置 -轮询方式
一、squid反向代理介绍
什么是反向代理呢?其实,反向代理也就是通常所说的WEB服务器加速,它是一种通过在繁忙的web服务器和Internet之间增加一个高速的WEB缓冲服务器(即:web反向代理服务器)来降低实际的web服务器的负载。
Web服务器加速(反向代理)是针对Web服务器提供加速功能的。它作为代理Cache,但并不针对浏览器用户,而针对一台或多台特定Web服务器(这也是反向代理名称的由来)。实施反向代理,只要将Reverse Proxy Cache设备放置在一台或多台Web服务器前端即可。当互联网用户访问某个WEB服务器时,通过DNS服务器解析后的IP地址是Reverse Proxy Server的IP地址,而非原始Web服务器的IP地址,这时Reverse Proxy Server设备充当Web服务器,浏览器可以与它连接,无需再直接与Web服务器相连。因此,大量Web服务工作量被卸载到反向代理服务上。不但能够防止外部网主机直接和web服务器直接通信带来的安全隐患,而且能够很大程度上减轻web服务器的负担,提高访问速度。
只上图只是一个简单架构图,代理服务器不光要实现反向代理,普通代理,以及负载均衡等技术的应用。
二、squid反向代理配置
1.Squid2.5反向代理单个后台WEB服务器
如果web服务器和反向代理服务器是两台单独的机器(一般的反向代理应该有两块网卡分别连接了内外部网络)。那么,应该修改下面的内容来设置反向代理服务。
vi /etc/squid/squid.conf
http_port 80 #squid监听的端口
cache_mem 64 MB
cache_dir ufs /var/spool/squid 4096 16 256
cache_effective_user squid
cache_effective_group squid
dns_nameservers 202.103.24.68
cache_access_log /var/log/squid/access.log
cache_log /var/log/squid/cache.log
cache_store_log /var/log/squid/store.log
visible_hostname 192.168.1.1
cache_mgr abc@126.com
httpd_accel_host 192.168.1.2 #内部WEB服务器的IP地址
httpd_accel_port 80 #WEB服务器的IP地址
httpd_accel_single_host on #转发为缓冲的请求到一台单独的机器
httpd_accel_with_proxy on
httpd_accel_uses_host_header off
如果WEB服务器和反向代理服务器是同一台机器。那么,应该设置WEB服务器的监听端口为非80端口(比如:81端口)。要修改的内容如下:
httpd_accel_host localhost #内部web服务器的IP地址
httpd_accel_port 81 #web服务器的IP地址
httpd_accel_single_host on #转发为缓冲的请求到一台单独的机器
httpd_accel_with_proxy on #
httpd_accel_uses_host_header off
2.Squid2.5反向代理多个后台WEB服务器
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_single_host off
httpd_accel_uses_host_header on
说明:在实现反向代理的应用上,主要是把应用的方案搞清楚,是实现负载均衡还是为多个网站实现代理。
三、squid反向代理配置
1.Squid2.6反向代理多个后台WEB服务器
vi /etc/squid/squid.conf
http_port 80 vhost /*监听本机所有接口*/
cache_mem 64 MB
cache_dir ufs /var/spool/squid 4096 16 256
cache_effective_user squid
cache_effective_group squid
dns_nameservers 202.103.24.68
cache_access_log /var/log/squid/access.log
cache_log /var/log/squid/cache.log
cache_store_log /var/log/squid/store.log
visible_hostname 192.168.1.1
cache_mgr abc@126.com
#节点设为no-query以及originserver 参数指明是源服务器,
#round-robin 参数指明squid通过轮询方式
#192.168.1.1是内部web服务器
cache_peer 192.168.1.2 parent 80 0 no-query originserver name=a
cache_peer 192.168.1.3 parent 80 0 no-query originserver name=b
#实现代理多台WEB服务器
cache_peer_domain a www.koumm.com
cache_peer_domain b abc.koumm.com
acl all src 0.0.0.0/0.0.0.0
http_access allow all
cache_peer_access a allow all
cache_peer_access b allow all
说明:
(1)以上配置squid的版本为2.6,且只是在基本代理的基础上进行反的向代理的配置,反向代理相当于发布内网的服务器,又起到加速作用。
(2)在实验的过程中,以上配置文件只是起到最基本的作用,能够完成实验,如果要在实际环境中应用,还需要考虑安全与性能方面的内容,比如防火墙。
(3)配置环境的要求:
XP客户端:
hosts文件如下
192.168.129.21 www.koumm.com
192.168.129.21 abc.koumm.com
squid服务端:
外网IP:192.168.129.21
内网IP:192.168.1.1
/etc/hosts文件,注意这是内网的web服务器的域名,可以用dns实现。
192.168.1.2 www.koumm.com
192.168.1.3 abc.koumm.com
四、squid反向代理负载均衡配置
Squid2.6反向代理多个后台WEB服务器,后面的两台内容一样。
vi /etc/squid/squid.conf
http_port 80 vhost /*监听本机所有接口*/
cache_mem 64 MB
cache_dir ufs /var/spool/squid 4096 16 256
cache_effective_user squid
cache_effective_group squid
dns_nameservers 202.103.24.68
cache_access_log /var/log/squid/access.log
cache_log /var/log/squid/cache.log
cache_store_log /var/log/squid/store.log
visible_hostname 192.168.1.1
cache_mgr abc@126.com
#节点设为no-query以及originserver 参数指明是源服务器,
#round-robin 参数指明squid通过轮询方式
#192.168.1.2/3是内部web服务器,两台内容可以一样,实现均衡负载。
cache_peer 192.168.1.2 parent 80 0 no-query originserver round-robin name=a
cache_peer 192.168.1.3 parent 80 0 no-query originserver round-robin name=b
#实现均衡负载。
cache_peer_domain a www.koumm.com
cache_peer_domain b www.koumm.com
acl all src 0.0.0.0/0.0.0.0
http_access allow all
cache_peer_access a allow all
cache_peer_access b allow all
发表评论
木有头像就木JJ啦!还木有头像吗?点这里申请属于你的个性Gravatar头像吧!