新客网WWW.XKER.COM:致力做中国最专业的网络学院!
学院: 操作系统 - 网络应用 - 服务器 - 网络安全 - 工具软件 - 办公软件 - Web开发 - 数据库 - 网页设计 - 图形图像 - 媒体动画 - 硬件学堂 - 存储频道 - QQ专区
您的位置:首页 > 网络学院 > 操作系统 > Linux教程 > 正文:Squid反向代理若干个后台的WEB实现说明

Squid反向代理若干个后台的WEB实现说明

新客网 XKER.COM 2007-08-08 来源: kit 收藏本文

1.Squid反向代理单个后台WEB服务器

 

A、如果WEB服务器和反向代理服务器是两台单独的机器(一般的反向代理应该有两块网卡分别连接了内外部网络)。那么,应该修改下面的内容来设置反向代理服务。

 

http_port 80 # squid监听的端口

 

httpd_accel_host 192.168.0.100 # 内部WEB服务器的IP地址

 

httpd_accel_port 80 # WEB服务器的IP地址

 

httpd_accel_single_host on # 转发为缓冲的请求到一台单独的机器

 

httpd_accel_with_proxy on #

 

httpd_accel_uses_host_header off

 

B、如果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 192.168.0.100 和 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.xxx.com www.yyy.com www.zzz.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选项

--disable-internal-dns

 

一个比较全的编译配置如下:

./configure --prefix=/usr/local/squid --enable-dlmalloc --with-pthreads --enable-poll --disable-internal-dns --enable-stacktrace --enable-removal-policies="heap,lru" --enable-delay-pools --enable-storeio="aufs,coss,diskd,ufs"

 

然后设置设置反响代理需要的域名解析(加入hosts)如下:

 

www.xxx.com 111.222.333.444

 

www.yyy.com 111.222.333.444

 

www.zzz.com 111.222.333.444

 

使三个域名都指向反向代理服务器的IP地址111.222.333.444。

 

下面设置反向代理所需要的DNS入口信息(即设置内部DNS,仅仅是squid在内部使用,Internet用户不可见)。有两种方法可以设置内部DNS,使用内部DNS服务器来解析或者使用/etc/hosts文件来实现。

 

使用内部DNS服务器的资源记录如下:

 

www.xxx.com IN A 192.168.0.101

 

www.yyy.com IN A 192.168.0.102

 

www.zzz.com IN A 192.168.0.103

 

如果使用/etc/hosts文件来实现内部DNS(编译时应使用disable internal dns选项),编辑/etc/hosts文件添加如下条目:

 

192.168.0.101 www.xxx.com

 

192.168.0.102 www.yyy.com

 

192.168.0.103 www.zzz.com

收藏】 【评论】 【推荐】 【投稿】 【打印】 【关闭
发表评论
要记得去论坛讨论,点击注册新会员匿名评论
评论内容:不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
阅读排行
随机推荐
实用信息推荐