一、安装反向代理服务器
1.下载反向代理服务器软件采用squid,下载地址:
http://www.squid-cache.org/Versions/v2/2.2/squid-2.2.STABLE5-src.tar.gz
下载后存放在/usr/local/squid/src目录里,文件名是
squid-2.2.STABLE5-src.tar.gz ;
2.解压代理服务器软件包:
进入/usr/local/squid/src目录,键入如下命令:
gzip -dc squid-2.2.STABLE5-src.tar.gz | tar -xvf -
这个命令将代理服务器软件包解开,建立一个目录叫作squid-2.2.STABLE5,并且把所有的文件放在这个目录里面。
3. 编译源程序
首先运行配置脚本,以便生成适合您的机器的编译脚本。命令格式是:
./configure
这种方式产生的编译脚本编译后默认安装路径是/usr/local/squid。
如果想改变安装路径,需要用以下格式:
./configure -prefix=/some/other/directory
这种方法编译后安装到/some/other/directory里面。
生成编译脚本后,可以正式开始编译了。命令为:
make
4、 安装Squid代理服务器
编译通过后,用以下命令安装:
make install
安装完成后,会在您指定的安装路径里产生一个squid目录,squid目录下有三个目录:etc、bin、logs。其中etc里面是配置文件,bin里面是执行文件,logs里面是日志文件。
二、调试反向代理服务器
安装结束后就是调试服务器,使其按照您的要求工作。Squid的配置文件只有一个,在etc目录里,名字是squid.conf,所有的配置选项都在这个文件里面。而且每个配置项目都有注释说明。我们只介绍与反向代理有关的几个项目。
首先,在squid文件里面找到下列配置项:
cache_mem
这里可以添上您准备给squid作为高速缓存使用的内存大小。注意,如果您的机器有N兆内存,那么,推荐您在这里添的数字是N/3。
cache_dir /usr/local/squid/cache 100 16 256
这里的第一个数字100是您准备给squid作为cache使用的硬盘空间大小,单位是兆。如果您想划100M空间当作cache,那么这里就写100。
acl, http_access, icp_access
填写"allowedip"和"allowedip1"ACL访问控制列表。这里应该填写你对外公开的服务器的IP,比如此例的两个WEB服务器对应的外部地址为202.99.157.10 和 202.99.157.18,
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl all src 0.0.0.0/0.0.0.0
acl allowedip src 202.99.157.10/255.255.255.255
acl allowedip1 src 202.99.157.18/255.255.255.255
http_access deny manager all
http_access allow allowedip
http_access allow allowedip1
http_access deny all
icp_access allow allowedip
icp_access allow allowedip1
icp_access deny all
cache_mgr webmaster@test.com.cn
这里填写cache管理员的Email地址,系统出错会自动提醒cache管理员。
******以上部分均为squid的通用设置以下为关于反向代理部分的设置******
httpd_accel_host test.com.cn
httpd_accel_host test1.com.cn
此处设置反向代理的主机名
httpd_accel_port 80
此处设置反向代理的WEB服务端口号
#httpd_accel_with_proxy off
此处设置开反向代理的同时,是否开普通代理服务
修改完配置文件,在正式运行squid代理服务器之前,先进行初始化。命令如下:
% /usr/local/squid/bin/squid -z
% /usr/local/squid/bin/squid
检查cache.log文件确保所有部分运行正常。如果有出错信息或系统不能正常启动,一般情况是由于目录和文件的存取权限导致的,请仔细检查各目录和文件的权限设置。 其中特别需要注意的是初始化之前应该将squid目录设置成可写,然后将创建的cache目录和logs目录设置成可写。如果一切正常,那么就可以投入使用了。系统默认的服务端口是3128。
反向代理服务器软件安装完毕后,将该服务器在80端口的http服务设置成不启用。
三、调整DNS服务器设置
假设DNS服务器(以下称标准DNS服务器)将test.com.cn解析为202.99.157.10,将test1.com.cn解析为202.99.157.18,那么我们在配置反向代理服务器这台机器的DNS服务时(我们以下称为内部DNS服务器),可以针对内部地址的WEB做如下变换:
主机名 标准DNS解析为 内部
DNS解析为
www.test.com.cn 202.99.157.10 192.168.1.10
www.test1.com.cn 202.99.157.18 192.168.1.18
然后把202.99.157.10和202.99.157.18这两个IP绑定到反向代理服务器上,这样,外界对www.test.com.cn和www.test1.com.cn 的访问就会由标准DNS解析到反向代理服务器上,默认WEB服务器的服务端口是80,但是由于反向代理服务器的80端口的http服务已经终止,此时的访问会没有结果。为了能使该访问请求能够成功完成,需要在反向代理服务器和真实的www.test.com.cn 和www.test1.com.cn 的WEB服务器之间建立联系。要和有内部地址的真实WEB服务器建立联系,首先反向代理服务器上需要再绑定一个内部IP,比如192.168.1.2,其余部分由transproxy这个透明代理软件来完成。Transproxy服务软件通过设置,启用端口81和squid建立联系,把内部DNS对www.test.com.cn和www.test1.com.cn的解析地址传给squid服务器,然后通过squid.conf里面关于服务器端口的设置,将服务端口设置为80,这样,squid就访问内部真实WEB服务器192.168.1.10和192.168.1.18的80端口,把需要访问的WEB内容取回来,放在squid的cache里供外界访问。透明代理软件transproxy设置完成后,需要通过设置ipchains规则,将外界发往反向代理服务器的80端口的http请求转发到transproxy 的81端口,这样就建立了外界通过反向代理间接和真实WEB服务器之间的联系。


评论加载中…
