Web加速,Squid实现反向代理

反向代理工作原理 当用户浏览器发出一个HTTP请求时,通过域名解析将请求定向到反向代理服务器(如果要实现多个WEB服务器的反向代理,需要将多个WEB服 务器的 域名都指向反向代理服务器)。由反向代理服务器处理器请求。反向代理一般只缓存可缓冲的数据(比如html网页和图片等),而一些CGI脚本程序或者 ASP之类的程序不缓存。它根据从WEB服务器返回的HTTP头标记来缓冲静态页面。 使用Squid配置反向代理(HTTP 加速器) 通过squid配置反向代理主要就是配置“squid.conf”这个配置文件。下面以Linux操作系统为例进行介绍,其它版本的在UNIX也同 样适用。在Linux中squid如果是以源代码方式安装的话,这个文件一般在“/usr/local/squid/etc/”目录下。如果是系统自带的 squid,一般配置文件在“/etc/squid/”目录下。 1. Squid反向代理单个后台WEB服务器 如果WEB服务器和反向代理服务器是两台单独的机器(一般的反向代理应该有两块网卡分别连接了内外部网络)。那么,应该修改下面的内容来设置反向代理服务。 http_port 80 # squid监听的端口 httpd_accel_host 172.16.250.250 # 内部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端口)。要修改的内容如下: http_port 80 # squid监听的端口 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 下面解释一下配置指令。 http_port 80 选项 http_port 指定squid监听HTTP请求的端口,一般都设置成80端口,这样使用户感觉不到反向代理的存在,就像访问真正的WEB服务器一样。 httpd_accel_host 172.16.250.250 和 httpd_accel_port 80 选项httpd_accel_host 和 httpd_accel_port 指定WEB服务器的IP地址和端口号,可以根据自己的WEB服务器的实际情况而定。 httpd_accel_single_host on 选项httpd_accel_single_host 为on 时,squid被设置成仅对单一的web服务器作反向代理。不考虑HTTP头信息,Squid转发所有的未被缓冲的页面请求到这个web服务器。如果 squid需要做多个web服务器反向代理,必须将此选项设置为off,并且使用转向器或者DNS去映射请求到合适的后台WEB服务器。 httpd_accel_with_proxy on 如果希望squid既作反向代理服务器又作本地机器的上网代理,需要将httpd_accel_with_proxy 改为 on,默认情况下是off httpd_accel_uses_host_header off 在HTTP协议1.1中,HTTP请求包括一个主机头信息,指定URL的主机名或者主机的IP地址。这个选项可以用来完成多个后台WEB服务器的反向代理功能。 2.Squid反向代理多个后台WEB服务器 我们可以用Squid反向代理多个后台WEB服务器。例如:我们可以配置squid同时反向代理www.abc.com, www.xyz.com, www.iloxp.com三个后台WEB服务器。 Squid的配置如下: httpd_accel_host virtual httpd_accel_port 80 httpd_accel_single_host off httpd_accel_uses_host_header on (注意:编译Squid时需激活Internal DNS选项) 然后设置设置反响代理需要的域名解析(Internet用户通过这里解析三个网站的域名)如下: www.abc.com 202.102.240.74 www.xyz.com 202.102.240.74 www.iloxp.com 202.102.240.74 使三个域名都指向反向代理服务器的IP地址202.102.240.74。 下面设置反向代理所需要的DNS入口信息(即设置内部DNS,仅仅是squid在内部使用,Internet用户不可见)。有两种方法可以设置内部DNS,使用内部DNS服务器来解析或者使用/etc/hosts文件来实现。 使用内部DNS服务器的资源记录如下: www.abc.com IN A 172.16.1.2 www.xyz.com IN A 172.16.1.3 www.iloxp.com IN A 172.16.1.4 如果使用/etc/hosts文件来实现内部DNS(编译时应使用disable internal dns选项),编辑/etc/hosts文件添加如下条目: 172.16.1.2 www.abc.com 172.16.1.3 www.xyz.com 172.16.1.4 www.iloxp.com 结论 通过上面论述和相关实例,可以看出,反向代理方式不单是一种WEB服务器加速器,而且使也一种对外提供Web发布时使用的有效的防火墙技术,使用它不但能节约紧缺的IP地址资源,加速WEB服务器的访问速度,而且能够保护WEB主机,因此能够适应多种应用场合。

相关阅读RelatedRead

Wordpress4.1自带Twenty Fifteen主题禁用谷歌字体

新年开博之七牛云存储

小试搭建Squid反向代理服务器

再度诠释CDN原理和CDN网络架构

一个虚拟空间搭建多个不同域名站点

什么是CDN和CDN的工作原理

2 条评论添加评论

配置起来还是有好多问题不能解决!

回复取消回复
@垃圾站

?嗯?软件包有没有安装完全阿?

回复取消回复