收藏 分享(赏)

反向代理.doc

上传人:天天快乐 文档编号:1088774 上传时间:2018-06-10 格式:DOC 页数:4 大小:40KB
下载 相关 举报
反向代理.doc_第1页
第1页 / 共4页
反向代理.doc_第2页
第2页 / 共4页
反向代理.doc_第3页
第3页 / 共4页
反向代理.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

1、用 Squid实现反向代理反向代理工作原理 反向代理服务器位于本地 WEB服务器和 Internet之间,如下图所示: 当用户浏览器发出一个 HTTP请求时,通过域名解析将请求定向到反向代理服务器(如果要实现多个 WEB服务器的反向代理,需要将多个 WEB服务器的 域名都指向反向代理服务器)。由反向代理服务器处理器请求。反向代理一般只缓存可缓冲的数据(比如 html网页和图片等),而一些 CGI脚本程序或者 ASP 之类的程序不缓存。它根据从 WEB服务器返回的 HTTP头标记来缓冲静态页面。有四个最重要 HTTP头标记: Last-Modified: 告诉反向代理页面什么时间被修改 Expi

2、res: 告诉反向代理页面什么时间应该从缓冲区中删除 Cache-Control: 告诉反向代理页面是否应该被缓冲 Pragma: 告诉反向代理页面是否应该被缓冲.例如:在默认情况下,ASP 页面返回” Cache-control: private.” ,所以ASP页面时不会在反向代理服务器缓存的 使用 Squid配置反向代理(HTTP 加速器) 通过 squid配置反向代理主要就是配置“squid.conf”这个配置文件。下面以Linux操作系统为例进行介绍,其它版本的在 UNIX也同 样适用。在 Linux中squid如果是以源代码方式安装的话,这个文件一般在“/usr/local/squ

3、id/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 # 转发为缓冲的请求到一台单

4、独的机器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_

5、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_sin

6、gle_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

7、_uses_host_header off 在 HTTP协议 1.1中,HTTP 请求包括一个主机头信息,指定 URL的主机名或者主机的 IP地址。这个选项可以用来完成多个后台 WEB服务器的反向代理功能。 2Squid 反向代理多个后台 WEB服务器 我们可以用 Squid反向代理多个后台 WEB服务器。例如:我们可以配置 squid同时反向代理 , , 三个后台 WEB服务器,示意图如下: Squid的配置如下: httpd_accel_host virtualhttpd_accel_port 80 httpd_accel_single_host off httpd_accel_uses_

8、host_header on (注意 :编译 Squid时需激活 Internal DNS选项) 然后设置设置反响代理需要的域名解析(Internet 用户通过这里解析三个网站的域名)如下: 202.102.240.74 使三个域名都指向反向代理服务器的 IP地址 202.102.240.74。 下面设置反向代理所需要的 DNS入口信息(即设置内部 DNS,仅仅是 squid在内部使用,Internet 用户不可见)。有两种方法可以设置内部 DNS,使用内部DNS服务器来解析或者使用/etc/hosts 文件来实现。 使用内部 DNS服务器的资源记录如下: IN A IN A IN A 172.16.1.4 如果使用/etc/hosts 文件来实现内部 DNS(编译时应使用 disable internal dns选项),编辑/etc/hosts 文件添加如下条目: 172.16.1.2 172.16.1.3 172.16.1.4 结论 通过本文中的论述和相关实例,可以看出,反向代理方式不单是一种 WEB服务器加速器,而且使也一种对外提供 Web发布时使用的有效的防火墙技术,使用它不但能节约紧缺的 IP地址资源,加速 WEB服务器的访问速度,而且能够保护WEB主机,因此能够适应多种应用场合。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 经营企划

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报