搜档网
当前位置:搜档网 › squid反向代理设置功略

squid反向代理设置功略

squid反向代理设置功略
squid反向代理设置功略

代理服务器是使用非常普遍的一种将局域网主机联入互联网的一种方式,使用代理上网可以节约紧缺的IP地址资源,而且可以阻断外部主机对内部主机的访问,使内部网主机免受外部网主机的攻击。但是,如果想让互联网上的主机访问内部网的主机资源(例如:Web 站点),又想使内部网主机免受外部网主机攻击,一般的代理服务是不能实现的,需要使用反向代理来实现。本文将详细介绍反向代理服务的概念以及如何利用反向代理服务器提高WEB服务器的性能和安全性。一.反向代理的概念什么是反向代理呢?其实,反向代理也就是通常所说的WEB服务器加速,它是一种通过在繁忙的WEB服务器和Internet之间增加一个高速的WEB缓冲服务器(即:WEB反向代理服务器)来降低实际的WEB服务器的负载。

典型的结构如下图所示:

Web服务器加速(反向代理)是针对Web服务器提供加速功能的。它作为代理Cache,但并不针对浏览器用户,而针对一台或多台特定Web服务器(这也是反向代理名称的由来)。实施反向代理(如上图所示),只要将ReverseProxyCache设备放置在一台或多台Web服务器前端即可。当互联网用户访问某个WEB服务器时,通过DNS服务器解析后的IP地址是ReverseProxyServer的IP地址,而非原始Web服务器的IP地址,这时ReverseProxyServer 设备充当Web服务器,浏览器可以与它连接,无需再直接与Web服务器相连。因此,大量

Web服务工作量被卸载到反向代理服务上。不但能够防止外部网主机直接和web服务器直接通信带来的安全隐患,而且能够很大程度上减轻web服务器的负担,提高访问速度。

二.反向代理和其它代理的比较下面将对几种典型的代理服务作一个简单的比较。

在网络上常见的代理服务器有三种:

1.标准的代理缓冲服务器一个标准的代理缓冲服务被用于缓存静态的网页(例如:html 文件和图片文件等)到本地网络上的一台主机上(即代理服务器)。当被缓存的页面被第二次访问的时候,浏览器将直接从本地代理服务器那里获取请求数据而不再向原web站点请求数据。这样就节省了宝贵的网络带宽,而且提高了访问速度。但是,要想实现这种方式,必须在每一个内部主机的浏览器上明确指明代理服务器的IP地址和端口号。客户端上网时,每次都把请求送给代理服务器处理,代理服务器根据请求确定是否连接到远程web服务器获取数据。如果在本地缓冲区有目标文件,则直接将文件传给用户即可。如果没有的话则先取回文件,先在本地保存一份缓冲,然后将文件发给客户端浏览器。

2.透明代理缓冲服务器透明代理缓冲服务和标准代理服务器的功能完全相同。但是,代理操作对客户端的浏览器是透明的(即不需指明代理服务器的IP和端口)。透明代理服务器阻断网络通信,并且过滤出访问外部的HTTP(80端口)流量。如果客户端的请求在本地有缓冲则将缓冲的数据直接发给用户,如果在本地没有缓冲则向远程web服务器发出请求,其余操作和标准的代理服务器完全相同。对于Linux操作系统来说,透明代理使用Iptables 或者Ipchains实现。因为不需要对浏览器作任何设置,所以,透明代理对于ISP(Internet 服务器提供商)特别有用。

3.反向代理缓冲服务器反向代理是和前两种代理完全不同的一种代理服务。使用它可以降低原始WEB服务器的负载。反向代理服务器承担了对原始WEB服务器的静态页面的请求,防止原始服务器过载。它位于本地WEB服务器和Internet之间,处理所有对WEB服务器的请求,组织了WEB服务器和Internet的直接通信。如果互联网用户请求的页面在代理服务器上有缓冲的话,代理服务器直接将缓冲内容发送给用户。如果没有缓冲则先向WEB服务器发出请求,取回数据,本地缓存后再发送给用户。这种方式通过降低了向WEB服务器的请求数从而降低了WEB服务器的负载。

三.反向代理工作原理

反向代理服务器位于本地WEB服务器和Internet之间,如下图所示:

当用户浏览器发出一个HTTP请求时,通过域名解析将请求定向到反向代理服务器(如果要实现多个WEB服务器的反向代理,需要将多个WEB服务器的域名都指向反向代理服务器)。由反向代理服务器处理器请求。反向代理一般只缓存可缓冲的数据(比如html网页和图片等),而一些CGI脚本程序或者ASP之类的程序不缓存。它根据从WEB服务器返回的HTTP

头标记来缓冲静态页面。有四个最重要HTTP头标记:Last-Modified:告诉反向代理页面什么时间被修改Expires:告诉反向代理页面什么时间应该从缓冲区中删除Cache-Control:告诉反向代理页面是否应该被缓冲Pragma:告诉反向代理页面是否应该被缓冲.例如:在

默认情况下,ASP页面返回”Cache-control:private.”,所以ASP页面时不会在反向代理服务器缓存的

四.代理服务器软件squid简介SquidInternetObjectCache(HarvestProject的后续版本)是美国政府大力助的一项研究计划,其目的为解决网络带宽不足的问题,是现在Unix系统上使用者最多功能也最完整的一套软体。Apache和Netscape虽附有相关的Proxy 模块,但因其功能简单而不够普及。有关squid的详细说明可到squid网站

(https://www.sodocs.net/doc/ac11113160.html,)查询。Squid最典型的应用是代理局域网的机器联入互联网,它支持现在流行的网络协议。Squid的另一项非常出色的功能就是实现反向代理功能。

五.使用Squid配置反向代理(HTTP加速器)通过squid配置反向代理主要就是配置“squid.conf”这个配置文件。下面以Linux操作系统为例进行介绍,其它版本的在UNIX

也同样适用。在Linux中squid如果是以源代码方式安装的话,这个文件一般在

“/usr/local/squid/etc/”目录下。如果是系统自带的squid,一般配置文件在

“/etc/squid/”目录下。

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

下面解释一下配置指令。

http_port80选项http_port指定squid监听HTTP请求的端口,一般都设置成80端口,这样使用户感觉不到反向代理的存在,就像访问真正的WEB服务器一样。

httpd_accel_host172.16.250.250和httpd_accel_port80

选项httpd_accel_host和httpd_accel_port指定WEB服务器的IP地址和端口号,可以根据自己的WEB服务器的实际情况而定。

httpd_accel_single_hoston

选项httpd_accel_single_host为on时,squid被设置成仅对单一的web服务器作反向代理。不考虑HTTP头信息,Squid转发所有的未被缓冲的页面请求到这个web服务器。

如果squid需要做多个web服务器反向代理,必须将此选项设置为off,并且使用转向器或者DNS去映射请求到合适的后台WEB服务器。

httpd_accel_with_proxyon

如果希望squid既作反向代理服务器又作本地机器的上网代理,需要将

httpd_accel_with_proxy改为on,默认情况下是off

httpd_accel_uses_host_headeroff

在HTTP协议1.1中,HTTP请求包括一个主机头信息,指定URL的主机名或者主机的IP 地址。这个选项可以用来完成多个后台WEB服务器的反向代理功能。2.Squid反向代理多个后台WEB服务器我们可以用Squid反向代理多个后台WEB服务器。例如:我们可以配置squid同时反向代理https://www.sodocs.net/doc/ac11113160.html,,https://www.sodocs.net/doc/ac11113160.html,,https://www.sodocs.net/doc/ac11113160.html,三个后台WEB服务器,示意图如下:

Squid的配置如下:

然后设置设置反响代理需要的域名解析(Internet用户通过这里解析三个网站的域名)如下:

使三个域名都指向反向代理服务器的IP地址202.102.240.74。下面设置反向代理所需要的DNS入口信息(即设置内部DNS,仅仅是squid在内部使用,Internet用户不可见)。有两种方法可以设置内部DNS,使用内部DNS服务器来解析或者使用/etc/hosts文件来实现。使用内部DNS服务器的资源记录如下:

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

结论通过本文中的论述和相关实例,可以看出,反向代理方式不单是一种WEB服务器加速器,而且使也一种对外提供Web发布时使用的有效的防火墙技术,使用它不但能节约紧缺的IP地址资源,加速WEB服务器的访问速度,而且能够保护WEB主机,因此能够适应多种应用场合。

例:將要求與80連線的封包轉遞到8080這個port

[root@linux~]#iptables-tnat-APREROUTING-ptcp--dport80\

>-jREDIRECT--to-ports8080

3.配置:以下是部分关键配置,其他与2.5的相同

#squid.conf

#服务器IP192.168.1.1

#监听服务器的80端口,透明代理,支持域名和IP的虚拟主机

http_port192.168.1.1:80transparentvhostvport

#最新2.6使用http_port192.168.1.1:80vhostvport #限制同一IP客户端的最大连接数aclOverConnLimitmaxconn16

http_accessdenyOverConnLimit

#防止天涯盗链,转嫁给百度

acltianyareferer_regex-itianya

http_accessdenytianya

deny_infohttps://www.sodocs.net/doc/ac11113160.html,/logs.giftianya

#防止被人利用为HTTP代理,设置允许访问的IP地址aclmyipdst192.168.1.1

http_accessdeny!myip

#防止百度机器人爬死服务器

aclAntiBaidureq_headerUser-AgentBaiduspider http_accessdenyAntiBaidu

#允许本地管理

aclManagerprotocache_object

aclLocalhostsrc127.0.0.1192.168.1.1

http_accessallowManagerLocalhost

http_accessdenyManager

#仅仅允许80端口的代理

aclSafe_portsport80#http

http_accessdeny!Safe_ports

http_accessallowall

#Squid信息设置

visible_https://www.sodocs.net/doc/ac11113160.html,

cache_mgrwebmaster@https://www.sodocs.net/doc/ac11113160.html,

#基本设置

cache_effective_usersquid

cache_effective_groupsquid

tcp_recv_bufsize65535bytes

#2.5的反向代理加速配置

#httpd_accel_host127.0.0.1

#httpd_accel_port80

#httpd_accel_single_hoston

#httpd_accel_uses_host_headeron

#httpd_accel_with_proxyon

#2.6的反向代理加速配置

#代理到本机的80端口的服务,仅仅做为原始内容服务器

cache_peer127.0.0.1parent800no-queryoriginserver

#错误文档

error_directory/usr/local/squid/share/errors/Simplify_Chinese #单台使用,不使用该功能

icp_port0

4.http服务器配合设置:

http服务器,监听到127.0.0.1的80端口。

5.数据走向:

访问者=>192.168.1.1:80=>127.0.0.1:80

6.测试:

/usr/local/squid/sbin/squid-z

/usr/local/squid/sbin/squid-NCd1

好了,现在访问你的服务器看看,已经好了。

为了测试是否可用,把http服务器给停了,你就可以看到squid2.6的信息了。

另外,我们设置:

SQUID监听外部IP的80端口

HTTP服务器监听本机127.0.0.1的80端口

这样子不用任何防火墙参与,即可完成web反向代理加速。

squid反向代理

squid反向代理 搭建网络环境如下拓扑图 说明: 1.配置squid反向代理服务器保护内网服务器、缓存静态页面提高服务器的响应速度 2.环境:centos6.5 1.配置squid服务器网卡: 内网:10.0.0.1/8外网20.0.0.1/8 内网网卡: [root@bogon~]#cd/etc/sysconfig/network-scripts [root@bogon network-scripts]# ls ifcfg-Auto_eth1 [root@bogon~]#ifconfig 1 ------------------南阳理工学软件学院网趣社团

------------------南阳理工学软件学院网趣社团 2 2.web1网络配置 [root@bogon ~]#cd /etc/sysconfig/network-scripts [root@bogon network-scripts]#ls [root@bogon network-scripts]#vi ifcfg-Auto_eth1 ip 地址10.0.0.2/8网关10.0.0.1 Web2服务器配置如同web1 3.配置外网pc 客户端 设置ip 地址为20.0.0.2/8网关为20.0.0.1 一、web 服务器设置 查看本地是否安装htppd 服务 [root@bogon network-scripts]#rpm -qa grep |httpd 若没有此服务请切换至关盘目录查找squid rpm 包进行安装 [root@bogon network-scripts]#cd /media/CentOS_6.5_Final/Packages/ [root@bogon Packages]#find /-name http*.rpm [root@bogon Packages]#rpm -ivh httpd-2.2.15-29.el6.centos.i686.rpm 重启htppd 服务 关闭防火墙 #/etc/init.d/iptables stop 修改Web Server 主页 Web1: #echo "

Squid-Web1/10.0.0.2

">/var/www/html/index.html Web2服务器配置如上 二、配置squid 服务器

squid代理服务器泄露客户ip和服务器信息的解决

squid代理服务器泄露客户ip和服务器信息的解决 在局域网通过透明代理访问外部的web服务器时, 在web服务器端, 通过header HTTP_X_FORWARDED_FOR 可以知道代理服务器的服务器名以及端口, 通过HTTP_VIA可以知道客户的内部ip,这会带来一些安全问题,并且某些论坛会发现用的是代理访问,怎么让squid隐藏这些信息呢. 通过研究squid的源代码,发现在/etc/squid/squid.conf中添加2行: header_access Via deny all header_access X-Forwarded-For deny all 就可以把它关闭(king9413注:新版本命令为:via off forwarded_for of) 要去掉其他的header,也可以照此操作: Accept HTTP_ACCEPT Accept-Charset HTTP_ACCEPT-CHARSET Accept-Encoding HTTP_ACCEPT-ENCODING Accept-Language HTTP_ACCEPT-LANGUAGE Accept-Ranges HTTP_ACCEPT-RANGES

Age HTTP_AGE Allow HTTP_ALLOW Authorization HTTP_AUTHORIZATION Cache-Control HTTP_CACHE-CONTROL Connection HTTP_CONNECTION Content-Base HTTP_CONTENT-BASE Content-Disposition HTTP_CONTENT-DISPOSITION Content-Encoding HTTP_CONTENT-ENCODING Content-Language HTTP_CONTENT-LANGUAGE Content-Length HTTP_CONTENT-LENGTH Content-Location HTTP_CONTENT-LOCATION Content-MD5 HTTP_CONTENT-MD5 Content-Range HTTP_CONTENT-RANGE Content-Type HTTP_CONTENT-TYPE Cookie HTTP_COOKIE Date HTTP_DATE ETag HTTP_ETAG Expires HTTP_EXPIRES From HTTP_FROM Host HTTP_HOST If-Match HTTP_IF-MATCH If-Modified-Since HTTP_IF-MODIFIED-SINCE

利用Squid反向代理搭建CDN缓存服务器加快Web访问速度

本文介绍利用Squid反向代理搭建CDN缓存服务器加快Web访问速度的搭建方法. 案例: Web服务器:域名https://www.sodocs.net/doc/ac11113160.html, IP:192.168.21.129 电信单线路接入 访问用户:电信宽带用户、移动宽带用户 出现问题:电信用户打开https://www.sodocs.net/doc/ac11113160.html,正常,移动用户打开https://www.sodocs.net/doc/ac11113160.html,很慢,甚至打不开 解决方案:在移动机房放置一台CDN代理服务器,通过智能DNS解析,让电信用户直接访问Web服务器、让移动用户访问CDN代理服务器,解决移动用户访问Web服务器慢的问题 具体操作: CDN代理服务器: 系统:CentOS 5.5 主机名:https://www.sodocs.net/doc/ac11113160.html, IP:192.168.21.160 安装Squid软件,配置反向代理搭建CDN缓存服务器 安装前准备: 1、关闭SELinux vi /etc/selinux/config #SELINUX=enforcing #注释掉 #SELINUXTYPE=targeted #注释掉 SELINUX=disabled #增加 :wq 保存,关闭。 shutdown -r now重启系统 2、开启防火墙80端口(后面配置squid的端口为80)

vi /etc/sysconfig/iptables 添加下面的内容 -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT /etc/init.d/iptables restart #重启防火墙使配置生效 3、修改主机的路由模式 vi /etc/sysctl.conf net.ipv4.ip_forward = 1 #0为关闭,1为开启路由使用sysctl -p 命令查看系统运维 https://www.sodocs.net/doc/ac11113160.html, 温馨提醒:qihang01原创内容?版权所有,转载请注明出处及原文链接 4、修改主机hosts文件,增加域名解析记录 vi /etc/hosts 192.168.21.129 https://www.sodocs.net/doc/ac11113160.html, #添加解析记录 ===================================================================== ====== 安装开始 1、安装Squid yum install squid #安装(Squid 2.6) service squid start #启动 service squid restart #重启 chkconfig squid on #设置开机启动 2、配置Squid cp /etc/squid/squid.conf /etc/squid/squid.confbak #备份 vi /etc/squid/squid.conf #编辑文件 http_port 80 transparent #设置squid端口,默认为3128,设置为80,客户端打开网站的时候不需要输入端口号 cache_mem 1024 MB #分配内存大小 cache_dir ufs /var/spool/squid 4096 16 256 #设置缓存文件大小 cache_effective_user squid #设置用户 cache_effective_group squid #设置用户组 access_log /var/log/squid/access.log #设置访问日志文件 cache_log /var/log/squid/cache.log #设置缓存日志文件 cache_store_log /var/log/squid/store.log #设置缓存记录文件 visible_hostname https://www.sodocs.net/doc/ac11113160.html, #设置squid服务器主机名 cache_mgr root@https://www.sodocs.net/doc/ac11113160.html, #设置管理员邮箱(设置为自己的邮箱地址) acl all src 0.0.0.0/0.0.0.0 #设置访问控制列表,默认开启 http_access allow all #设置访问权限,默认注释掉的 cache_peer 192.168.21.129 parent 80 0 no-query originserver name=web #用户访问web时,Squid向192.168.21.129的80端口发送请求 cache_peer_domain web https://www.sodocs.net/doc/ac11113160.html, #设置web域名为https://www.sodocs.net/doc/ac11113160.html,

Squid访问控制方法的实例

Squid访问控制方法的实例 《Squid访问控制:ACL元素以及访问列表》这篇文章为大家详细讲述了ACL元素以及http_access访问控制列表的语法以及使用过程中需要注意的问题,本文将给出使用这些访问控制方法的实例。 《Squid访问控制:ACL元素以及访问列表》这篇文章为大家详细讲述了ACL元素以及http_access访问控制列表的语法以及使用过程中需要注意的问题,下面给出使用这些访问控制方法的实例: (1)允许网段61.0.3.188/24以及172.190.96.33/24内的所有客户机访问代理服务器,并且允许在文件/etc/squid/guest列出的客户机访问代理服务器,除此之外的客户机将拒绝访问本地代理服务器: acl clients src 61.0.3.188/24 172.190.96.33/24 acl guests src “/etc/squid/guest” acl all src 0.0.0.0/0.0.0.0 http_access allow clients http_access allow guests http_access deny all 其中,文件“/etc/squid/guest”中的内容为: 172.168.10.3/24 210.113.24.8/16

10.0.1.24/25 (2)允许域名为https://www.sodocs.net/doc/ac11113160.html,、https://www.sodocs.net/doc/ac11113160.html,的两个域访问本地代理服务器,其他的域都将拒绝访问本地代理服务器: acl permitted_domain src https://www.sodocs.net/doc/ac11113160.html, https://www.sodocs.net/doc/ac11113160.html, acl all src 0.0.0.0/0.0.0.0 http_access allow permitted_domain http_access deny all (3)使用正则表达式,拒绝客户机通过代理服务器访问包含有诸如“sexy”等关键字的网站: acl deny_url url_regex –i sexy http_access deny deny_url (4)拒绝客户机通过代理服务器访问文件中指定IP或者域名的网站,其中文件/etc/squid/ deny_ip中存放有拒绝访问的IP地址,文件/etc/squid/deny_dns中存放有拒绝访问的域名: acl deny_ip dst “etc/squid/deny_ip” acl deny_dns dst “etc/squid/deny_dns” http_access deny deny_ip http_access deny deny_dns (5)允许和拒绝指定的用户访问指定的网站,其中,允许客户1访问网站http://www.sina. https://www.sodocs.net/doc/ac11113160.html,,而拒绝客户2访问网站https://www.sodocs.net/doc/ac11113160.html,:

Squid代理服务器实验报告

Squid代理服务器实验报告 班级:10网工三班学生姓名:谢昊天学号:1215134046 实验目的和要求: 任务一:实现正向代理 任务二:实现透明代理 任务三:实现反向代理 实验拓扑图参考课本P215,图10-4,完整实现以上功能。 实验目的和要求: 提示1、在启动squid服务程序之前需要先确认Linux主机具有完整的域名,如果没有可以在hosts文件中进行设置 提示2、squid服务器第一次启动前的初始化工作可以使用squid –z命令手工完成,如不手工进行,squid启动脚本也会自动完成初始化工作。 实验详细步骤: 1.在Linux 操作系统中查看是否已经安装了Squid 服务: 【root@RHEL4~】#rpm –q squid Squid-2.5.STABL E6-3 这表明系统已经安装了Squid 服务。 2.启动Squid 服务 启动和重新启动Squid 服务的命令如下: //启动Squid服务 【root@RHEL4~】#service squid start 启动squid:【确定】 //重新启动Squid 服务 【root@RHEL4~】#service squid restart 停止squid:【确定】 启动squid:【确定】 配置Squid服务器 一. squid.conf配置 激活squid. 1). 开启squid 运行# squid -k parse命令即可 2). 初始化cache目录. 在第一次启动squid服务之前执行# squid -z 3). 启动squid服务

# service squid start 4). 停止squid 最安全的停止squid的方法是使用squid -k shutdown命令: # squid -k shutdown 5). 重配置运行中的squid进程 6). 滚动日志文件 二. 透明代理 1. 配置Proxy 主机: 1)更改squid配置文件中的下列指令: [root@test root]# vi /etc/squid/squid.conf httpd_accel_host virtual # 告诉web加速器,针对所有的URL httpd_accel_port 80 # 告诉web加速器,要监听的端口是80! httpd_accel_with_proxy on # 这个很重要!因为配置httpd_accel_host 之后,cache 的配置httpd_accel_uses_host_header on 2)在squid 2.6,更改squid配置文件中的一个指令: http_port 192.168.63.50:3128 transparent #192.168.63.50 就是squid服务器的地址[root@test root]# squid -k reconfigure 2. 配置NAT 主机的port map : 3. 配置转发 4. 配置客户端 三.反向代理: 1.Squid的配置如下: httpd_accel_host virtual httpd_accel_port 80 httpd_accel_single_host off httpd_accel_uses_host_header on 2.然后设置设置反响代理需要的域名解析(Internet用户通过这里解析三个网站的域名)如下: https://www.sodocs.net/doc/ac11113160.html, 202.102.240.74 https://www.sodocs.net/doc/ac11113160.html, 202.102.240.74 https://www.sodocs.net/doc/ac11113160.html, 202.102.240.74 3.使三个域名都指向反向代理服务器的IP地址202.102.240.74。 4.设置反向代理所需要的DNS入口信息(即设置内部DNS,仅仅是squid在内部使用,Internet用户不可见)。有两种方法可以设置内部DNS,使用内部DNS 服务器来解析或者使用/etc/hosts文件来实现。 5.使用内部DNS服务器的资源记录如下: https://www.sodocs.net/doc/ac11113160.html, IN A 192.168.62.2 https://www.sodocs.net/doc/ac11113160.html, IN A 192.168.62.3 https://www.sodocs.net/doc/ac11113160.html, IN A 192.168.62.4 如果使用/etc/hosts文件来实现内部DNS(编译时应使用disable internal dns选项),编辑/etc/hosts文件添加如下条目:192.168.62.2 https://www.sodocs.net/doc/ac11113160.html, 192.168.62.3 https://www.sodocs.net/doc/ac11113160.html, 192.168.62.4 https://www.sodocs.net/doc/ac11113160.html,

单机运行多个Squid代理服务

多代理(SQUID)同时运行的配置方法 作成日期:2012/8/24 多代理用途: 1、HTTP反向加速; 2、权限控制部分客户端,而权限控制选项是全局设置时; 总之,一般的代理服务器运行一个即可,当有特殊要求的时候,才有此需要,HTTP反向代理本文没有涉及,仅是为了权限控制,一台机器同一网卡运行了2个Squid,对于HTTP反向代理,有兴趣者可自行研究配置。 环境: 1、Cent OS 5 2、Squid (Version 2.6.STABLE21) 3、DELL R710 配置: 在配置多Squid同时运行时,我的服务器已经安装配置好的Squid,并正常运行,如果你的服务器还不具备此条件,请先配置好Squid,并确保可以正确运行。 1、复制一份Squid .conf配置文件 2、编辑新文件,配置如下的选项与第一个Squid区分开 3、初始化缓存目录 命令如下:Squid –z –f 新的配置文件 注意,“-f”参数后面一定要写上新配置文件,一般设定2个Squid同时运行时,都是这一步没有处理或者处理错误,比如没有加“-f”参数的话,就会初始化原有的Squid缓存目录而不是新Squid 缓存目录。 4、运行第2个代理服务器 命令如下:Squid –D –f 新的配置文件

维护: 至此,服务器上已经运行两个代理服务器,使用不同的端口,就会通过不同代理服务器进行网络连接,设定配置文件,可为客户端设定不同的网络权限。 1、关于配置文件的更新后Reload 如更新第1个代理,使用默认系统命令:squid –k reconfigure 如更新第2个代理,squid –k reconfigure –f 新的配置文件 2、第2个代理的自动启动 当系统重新时,想第2个代理随机启动,请参照以下脚本(第1个代理启动,可以在系统中设定): #! /bin/sh echo "Start special squid” #输出一些提示信息 squid -D -f /etc/squid/squidnew.conf #我的新配置文件在/etc/squid下面 echo "Please wait ...." #输出一些提示信息 sleep 5 #等待5秒,给Squid启动时间,实际可能不需要怎么久cd /var/cache/squidnew/ #进入缓存目录,我的PID文件放在这里 if [ -s squid.pid ]; #判断PID文件是否存在,存在squid启动成功,否则失败 then echo "Squid start success" else echo "Squid start failed" fi exit 0 将该脚本放置到启动目录,自行启动即可,另外我不是自行启动,因有时候不运行,如自行启动,可将判断的部分删除,因为系统启动,可能看不到脚本提示信息。 关于关闭Squid,请使用多次的 squid –k shutdown 命令关闭服务, 同时使用ps –ef |grep squid 判断代理服务是否全部关闭完成。 调试过程如有问题,使用tail –f /var/log/messages 排错也是个不错的办法。 备注: 另外,系统究竟可以运行多少个Squid?没有测试,猜测如CPU足够快、内存足够大,应该可以运行很多副本。 以上

Squid 3 安装配置详解

反向代理服务器Squid 3.0安装配置详解 一.反向代理的概念 二.反向代理工作原理 三.安装环境 四.安装准备 五.调整内核 六.调整文件描述符 七.调整端口范围 八.编译安装 九.配置说明 十.配置参考 十一.测试启动 十二.常用命令 附录1:参考资料链接 附录2:关键字解释

一.反向代理的概念 什么是反向代理呢?其实,反向代理也就是通常所说的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服务器的负担,提高访问速度。 二.反向代理工作原理 反向代理服务器位于本地WEB服务器和Internet之间,如下图所示: 当用户浏览器发出一个HTTP请求时,通过域名解析将请求定向到反向代理服务器(如果要实现多个WEB服务器的反向代理,需要将多个WEB服务器的域名都指向反向代理服务器)。由反向代理服务器处理器请求。反向代理一般只缓存可缓冲的数据(比如html网页和图片等),而一些CGI脚本程序或者ASP之类的程序不缓存。它根据从WEB服务器返回的HTTP 头标记来缓冲静态页面 三.环境 操作系统:CentOS 5.2 Squid:squid-3.0.STABLE13 四.准备 1.可以用下述命令获得squid wget https://www.sodocs.net/doc/ac11113160.html,/Versions/v3/3.0/squid-3.0.STABLE13.tar.gz 2.建立squid用户

squid 代理服务器 用户认证配置实例

squid 代理服务器用户认证配置实例 如果你以前没有加过认证,那么不必重新安装,只需把你下载的squid文件重新编译下 下面附安装实例: 我这里安装的是最新的squid 3.0 进入下载的squid源码目录,重新编译squid,并声明支持NCSA认证 ./configure --enable-basic-auth-helpers="NCSA" make 然后进入下面这个目录 cd helpers/basic_auth/NCSA 拷贝生成的执行文件ncsa_auth到/usr/local/squid/bin目录 cp ./ncsa_auth /usr/local/squid/bin 编辑squid.conf 加入 auth_param basic program /usr/local/squid/bin/ncsa_auth /usr/local/squid/etc/passwd aclpasswderproxy_auth REQUIRED http_access allow passwder http_access deny all 如果不想进行用户认证,去掉上述四行,换成 http_access allow all 利用apache携带的工具软件htpasswd在/usr/local/squid/etc下生成密码文件并添加相应的用户信息 /usr/local/bin/htpasswd -c /usr/local/squid/etc/passwd squid 输入密码并确认 如果你的htpasswd不在这个目录,那你进入/etc/local 使用 find . -name htpasswd 查询一下你的文件在那里啦

正向代理与反向代理

正向代理与反向代理 一、正向代理的概念 1. 正向代理: 是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。 客户端必须要进行一些特别的设置才能使用正向代理。 正向代理的典型用途是为在防火墙内的局域网客户端提供访问Internet的途径。 正向代理还可以使用缓冲特性(由mod_cache提供)减少网络使用率。 使用ProxyRequests指令即可激活正向代理。 因为正向代理允许客户端通过它访问任意网站并且隐藏客户端自身, 因此你必须采取安全措施以确保仅为经过授权的客户端提供服务。 2. 举例来说, 正向代理,也就是传说中的代理,他的工作原理就像一个跳板, 简单的说, 我是一个国内用户,我直接访问不了某外国网站,但是我能访问一个代理服务器,这个代理服务器呢,他能访问那个我不能访问的外国网站。 STEP1. 于是我先连上代理服务器,告诉他我需要那个无法访问的外国网站的内容。 STEP2. 代理服务器去取回来,然后返回给我 从那个外国网站的角度来说,只在代理服务器来取内容的时候有一次记录。 有时候并不知道是用户的请求,也隐藏了用户的资料,这取决于代理告不告诉网站。 结论就是: 正向代理, 是一个位于客户端和原始服务器(origin server)之间的服务器, 为了从原始服务器取得内容, 客户端向代理发送一个请求并指定目标(原始服务器), 然后代理向原始服务器转交请求并将获得的内容返回给客户端。 客户端必须要进行一些特别的设置才能使用正向代理。 二、反向代理 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求, 然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端, 此时代理服务器对外就表现为一个服务器。 代理服务器是使用非常普遍的一种将局域网主机联入互联网的一种方式, 使用代理上网可以节约紧缺的IP地址资源,而且可以阻断外部主机对内部主机的访问,使内部网主机免受外部网主机的攻击。 但是,如果想让互联网上的主机访问内部网的主机资源(例如:Web站点),

squid三种代理方式原理与配置

一、代理分类 1)、传统代理 适用于内网访问外网,客户端需要设置代理IP和端口 2)、透明代理 适用于内网访问外网,客户端只需要设置网关,网关就是代理服务器

3)、反向代理 适用于外网访问内网,可以实现负载均衡

二、传统代理搭建及配置 1、修改主配置文件 vim /etc/squid/squid.conf 将http_access deny all 改成http_access allow all 2、开启服务 squid 3、客户端设置——浏览器设置代理 4、测试 客户端访问后,在web服务器查看访问记录,确认访问IP 三、透明代理配置 1、修改主配置文件 vim /etc/squid/squid.conf 将http_access deny all 改成http_access allow all 将http_port 3128 改成 http_port 内网IP:3128 transparent 2、重启服务 killall -9 squid && squid 3、编写防火墙规则 开启端口重定向 firewall——定义内外网卡所在区域——对内网卡所在区域设置端口重定向——将80端口重定向到本机3128端口 4、客户端设置——网关指向代理服务器内网卡IP

5、测试 客户端访问后,在web服务器查看访问记录,确认访问IP 四、反向代理配置 1、修改主配置文件 vim /etc/squid/squid.conf 将http_access deny all 改成http_access allow all http_port 192.168.1.88:80 accel vhost cache_peer 192.168.1.80 parent 80 0 originserver name=sina cache_peer 192.168.1.80 parent 80 0 originserver name=baidu ## cache_peer 指定后端服务器地址,80 为后端服务端口,0 为 ICP 端口号(多个Squid 时用),originserver 指定资源服务器,name 指定一个别名 2、重启启服务 killall -9 squid && squid 3、测试 客户端访问代理服务器外接口IP后,在web服务器查看访问记录,确认访问IP

squid文档

squid介绍及其简单配置 1.Squid是什么? Squid是一种用来缓冲Internet数据的软件。它是这样实现其功能的,接受来自人们需要下载的目标(object)的请求并适当地处理这些请求。也就是说,如果一个人想下载一web页面,他请求Squid为他取得这个页面。Squid随之连接到远程服务器(比如:http://https://www.sodocs.net/doc/ac11113160.html,/)并向这个页面发出请求。然后,Squid显式地聚集数据到客户端机器,而且同时复制一份。当下一次有人需要同一页面时,Squid可以简单地从磁盘中读到它,那样数据迅即就会传输到客户机上。当前的Squid可以处理HTTP,FTP,GOPHER,SSL和WAIS等协议。但它不能处理如POP,NNTP,RealAudio以及其它类型的东西。

2.squid代理的作用: 3.接下来我们主要探讨的是squid各种代理的定义正向代理 a.标准的代理缓冲服务器 一个标准的代理缓冲服务被用于缓存静态的网页(例如:html文件和图片文件等)到本地网络上的一台主机上(即代理服务器)。当被缓存的页面被第二次访问的时候,浏览器将直接从本地代理服务器那里获取请求数据而不再向原web站点请求数据。这样就节省了宝贵的网络带宽,而且提高了访问速度。但是,要想实现这种方式,必须在每一个内部主机的浏览器上明确指明代理服务器的IP

地址和端口号。客户端上网时,每次都把请求送给代理服务器处理,代理服务器根据请求确定是否连接到远程web服务器获取数据。如果在本地缓冲区有目标文件,则直接将文件传给用户即可。如果没有的话则先取回文件,先在本地保存一份缓冲,然后将文件发给客户端浏览器。 b.透明代理缓冲服务器 透明代理缓冲服务和标准代理服务器的功能完全相同。但是,代理操作对客户端的浏览器是透明的(即不需指明代理服务器的IP和端口)。透明代理服务器阻断网络通信,并且过滤出访问外部的HTTP(80端口)流量。如果客户端的请求在本地有缓冲则将缓冲的数据直接发给用户,如果在本地没有缓冲则向远程web服务器发出请求,其余操作和标准的代理服务器完全相同。对于Linux 操作系统来说,透明代理使用Iptables或者Ipchains实现。因为不需要对浏览器作任何设置,所以,透明代理对于ISP(Internet服务器提供商)特别有用。 反向代理: a. 反向代理缓冲服务器 反向代理是和前两种代理完全不同的一种代理服务。使用它可以降低原始WEB服务器的负载。反向代理服务器承担了对原始WEB服务器的静态页面的请求,防止原始服务器过载。它位于本地WEB服务器和Internet之间,处理所有对WEB服务器的请求,组织了WEB服务器和Internet的直接通信。如果互联网用户请求的页面在代理服务器上有缓冲的话,代理服务器直接将缓冲内容发送给用户。如果没有缓冲则先向WEB服务器发出请求,取回数据,本地缓存后再发送给用户。这种方式通过降低了向WEB服务器的请求数从而降低了WEB 服务器的负载。

squid配置参数的一些解释

squid配置参数的一些解释 2010-09-14 10:43:14 标签:squid参数解释 http_port 3128 #一般squid仅对80端口的HTTP服务加速。使用http_port指令让squid侦听在该端口: http_port 80 假如想让squid既作cache代理,又作加速器,那么列出这2个端口,但是所有指定的端口都必须在一条命令行上: http_port 80 http_port 3128 logfile_rotate 3 #周期性的滚动日志文件,以阻止它们变得太大。为了合理控制磁盘空间消耗,在cron里使用如下命令: %squid -k rotate 例如,如下任务接口在每天的早上4点滚动日志: 0 4 * * * /usr/local/squid/sbin/squid -k rotate 工作过程:该命令做两件事。首先,它关闭当前打开的日志文件。然后,通过在文件名后加数字扩展名,它重命名 cache.log,store.log,和access.log。例如,cache.log变成cache.log.0,cache.log.0变成 cache.log.1,如此继续,滚动到logfile_rotate选项指定的值。 cache_mem 1024 MB 指定squid可以使用的内存理想值,建议设为内存的1/3. #此参数并非指定进程的最大值,它只是设定一个squid能够用于多少额外的内存来缓存对象的限制值,squid在其他方面也需要使用内存。 read-only read-only选项指示Squid继续从cache_dir读取文件,但不往里面写新目标。他在squid.conf文件里看起来如下: cache_dir ufs /cache0 7000 16 256 read-only 如果你想把cache文件从一个磁盘迁移到另一个磁盘,那么可使用该选项。如果你简单的增加一个cache_dir,并且删除另一个,squid的命中率会显著下降。在旧目录是read-only时,你仍能从那里获取cache命中。在一段时间后,就能

squid代理服务器、iptables防火墙(安全)的设置和各自的功能

Squid是Linux下最为流行的代理服务器软件,它功能强大,支持对HTTP、FTP、Gopher、SSL、WAIS等协议的代理; 设置简单,只需对配置文件稍稍改动就可使代理服务器运转起来。此外,Squid具有页面缓存功能,它接受用户的下载申请,并自动处理所下载的数据。 前期准备 Squid对硬件的要求是: 内存不应小于128M,硬盘转速越快越好,最好使用服务器专用SCSI 硬盘,对CPU的要求不高,400MHz以上即可。笔者所管理的代理服务器是Inter2150,安装了Red Hat Linux 7.2,安装时就带有Squid。有两块网卡,一块eth0配外部地址(比如211.88.99.66),一块eth1配内网地址(比如192.168.5.1)。如果安装了Gnome或其他图形界面,就可以在netconfig 中给两块网卡配置IP地址,不然的话,可在/etc/sysconfig/network-script路径下更改文件ifcfg-eth0和ifcfg-eth1。 首先编辑ifcfg-eht0,有以下几项: DEVICE=eth0 (表示用哪块网卡) IPADDR=211.88.99.66 (设置该网卡的IP地址) NETMASK=255.255.255.252 (设置子网掩码) 同样编辑ifcfg-eth1,然后运行命令network restart就可以使配置生效了。对eth0、eth1进行配置后,可以用ifconfig命令来查看是不是配置成功。 如果服务器只有一张网卡,也不用担心,Linux可以在一块网卡上绑定多个IP地址。在图形界面下配置很简单,不赘述。如果在文本状态下配置,可以将ifcfg-eth0复制并命名为ifcfg-eth0:1,把它完全当成两块网卡来配就可以了。 Squid的安装 1. 安装Linux 安装Linux在硬盘分区时要注意,最好不要让系统自己分区,而是手动分区。通常,在Linux 系统中有且仅有一个交换分区(在文件系统形式中选择Linux swap),它用做虚拟内存,建议将交换分区的大小设置为内存的两倍。当硬盘的大小超过了8G,要再建立一个128M(稍稍大一点,不会出错)的boot分区,这是为了避免将系统内核文件放到1024磁道以外,如果将boot 作为root分区的一个子目录,内核文件就会安装在root分区的任何地方。因为要用做代理服务器,建议再分一个分区“var”,作为Squid的缓冲区,所以根据磁盘大小尽量分配大一点,最后将硬盘的剩余空间全部分给root分区。 2. 安装Squid 新手安装Squid,建议在安装Linux时就选中Squid,它并不是默认选中项,而且也不在选择的大类中,要在详细列表中查找。如果没有安装,又不想重装系统,可以从https://www.sodocs.net/doc/ac11113160.html, 下载Squid软件。 Squid代理服务器的设置

squid反向代理设置功略

代理服务器是使用非常普遍的一种将局域网主机联入互联网的一种方式,使用代理上网可以节约紧缺的IP地址资源,而且可以阻断外部主机对内部主机的访问,使内部网主机免受外部网主机的攻击。但是,如果想让互联网上的主机访问内部网的主机资源(例如:Web 站点),又想使内部网主机免受外部网主机攻击,一般的代理服务是不能实现的,需要使用反向代理来实现。本文将详细介绍反向代理服务的概念以及如何利用反向代理服务器提高WEB服务器的性能和安全性。一.反向代理的概念什么是反向代理呢?其实,反向代理也就是通常所说的WEB服务器加速,它是一种通过在繁忙的WEB服务器和Internet之间增加一个高速的WEB缓冲服务器(即:WEB反向代理服务器)来降低实际的WEB服务器的负载。 典型的结构如下图所示: Web服务器加速(反向代理)是针对Web服务器提供加速功能的。它作为代理Cache,但并不针对浏览器用户,而针对一台或多台特定Web服务器(这也是反向代理名称的由来)。实施反向代理(如上图所示),只要将ReverseProxyCache设备放置在一台或多台Web服务器前端即可。当互联网用户访问某个WEB服务器时,通过DNS服务器解析后的IP地址是ReverseProxyServer的IP地址,而非原始Web服务器的IP地址,这时ReverseProxyServer 设备充当Web服务器,浏览器可以与它连接,无需再直接与Web服务器相连。因此,大量

Web服务工作量被卸载到反向代理服务上。不但能够防止外部网主机直接和web服务器直接通信带来的安全隐患,而且能够很大程度上减轻web服务器的负担,提高访问速度。 二.反向代理和其它代理的比较下面将对几种典型的代理服务作一个简单的比较。 在网络上常见的代理服务器有三种: 1.标准的代理缓冲服务器一个标准的代理缓冲服务被用于缓存静态的网页(例如:html 文件和图片文件等)到本地网络上的一台主机上(即代理服务器)。当被缓存的页面被第二次访问的时候,浏览器将直接从本地代理服务器那里获取请求数据而不再向原web站点请求数据。这样就节省了宝贵的网络带宽,而且提高了访问速度。但是,要想实现这种方式,必须在每一个内部主机的浏览器上明确指明代理服务器的IP地址和端口号。客户端上网时,每次都把请求送给代理服务器处理,代理服务器根据请求确定是否连接到远程web服务器获取数据。如果在本地缓冲区有目标文件,则直接将文件传给用户即可。如果没有的话则先取回文件,先在本地保存一份缓冲,然后将文件发给客户端浏览器。 2.透明代理缓冲服务器透明代理缓冲服务和标准代理服务器的功能完全相同。但是,代理操作对客户端的浏览器是透明的(即不需指明代理服务器的IP和端口)。透明代理服务器阻断网络通信,并且过滤出访问外部的HTTP(80端口)流量。如果客户端的请求在本地有缓冲则将缓冲的数据直接发给用户,如果在本地没有缓冲则向远程web服务器发出请求,其余操作和标准的代理服务器完全相同。对于Linux操作系统来说,透明代理使用Iptables 或者Ipchains实现。因为不需要对浏览器作任何设置,所以,透明代理对于ISP(Internet 服务器提供商)特别有用。 3.反向代理缓冲服务器反向代理是和前两种代理完全不同的一种代理服务。使用它可以降低原始WEB服务器的负载。反向代理服务器承担了对原始WEB服务器的静态页面的请求,防止原始服务器过载。它位于本地WEB服务器和Internet之间,处理所有对WEB服务器的请求,组织了WEB服务器和Internet的直接通信。如果互联网用户请求的页面在代理服务器上有缓冲的话,代理服务器直接将缓冲内容发送给用户。如果没有缓冲则先向WEB服务器发出请求,取回数据,本地缓存后再发送给用户。这种方式通过降低了向WEB服务器的请求数从而降低了WEB服务器的负载。 三.反向代理工作原理

squid介绍及其简单配置

1.Squid是什么?Squid是一种用来缓冲Internet数据的软件。它是这样实现其功能的,接受来自人们需要下载的目标(object)的请求并适当地处理这些请求。也就是说, 1.Squid是什么? Squid是一种用来缓冲Internet数据的软件。它是这样实现其功能的,接受来自人们需要下载的目标(object)的请求并适当地处理这些请求。也就是说,如果一个人想下载一web页面,他请求Squid为他取得这个页面。Squid随之连接到远程服务器(比如:http://https://www.sodocs.net/doc/ac11113160.html,/)并向这个页面发出请求。然后,Squid显式地聚集数据到客户端机器,而且同时复制一份。当下一次有人需要同一页面时,Squid可以简单地从磁盘中读到它,那样数据迅即就会传输到客户机上。当前的Squid可以处理 HTTP,FTP,GOPHER,SSL和WAIS等协议。但它不能处理如POP,NNTP,RealAudio以及其它类型的东西。 2.squid代理的作用: 3.接下来我们主要探讨的是squid各种代理的定义 正向代理 a.标准的代理缓冲服务器

一个标准的代理缓冲服务被用于缓存静态的网页(例如:html文件和图片文件等)到本地网络上的一台主机上(即代理服务器)。当被缓存的页面被第二次访问的时候,浏览器将直接从本地代理服务器那里获取请求数据而不再向原web 站点请求数据。这样就节省了宝贵的网络带宽,而且提高了访问速度。但是,要想实现这种方式,必须在每一个内部主机的浏览器上明确指明代理服务器的IP 地址和端口号。客户端上网时,每次都把请求送给代理服务器处理,代理服务器根据请求确定是否连接到远程web服务器获取数据。如果在本地缓冲区有目标文件,则直接将文件传给用户即可。如果没有的话则先取回文件,先在本地保存一份缓冲,然后将文件发给客户端浏览器。 b.透明代理缓冲服务器 透明代理缓冲服务和标准代理服务器的功能完全相同。但是,代理操作对客户端的浏览器是透明的(即不需指明代理服务器的IP和端口)。透明代理服务器阻断网络通信,并且过滤出访问外部的HTTP(80端口)流量。如果客户端的请求在本地有缓冲则将缓冲的数据直接发给用户,如果在本地没有缓冲则向远程web服务器发出请求,其余操作和标准的代理服务器完全相同。对于Linux操作系统来说,透明代理使用Iptables或者Ipchains实现。因为不需要对浏览器作任何设置,所以,透明代理对于ISP(Internet服务器提供商)特别有用。 反向代理: a. 反向代理缓冲服务器 反向代理是和前两种代理完全不同的一种代理服务。使用它可以降低原始WEB 服务器的负载。反向代理服务器承担了对原始WEB服务器的静态页面的请求,防止原始服务器过载。它位于本地WEB 服务器和Internet之间,处理所有对WEB 服务器的请求,组织了WEB服务器和Internet的直接通信。如果互联网用户请求的页面在代理服务器上有缓冲的话,代理服务器直接将缓冲内容发送给用户。如果没有缓冲则先向WEB服务器发出请求,取回数据,本地缓存后再发送给用户。这种方式通过降低了向 WEB服务器的请求数从而降低了WEB服务器的负载。 4.Squid主要组成部分 服务名:squid 主程序:/usr/sbin/squid 配置目录:/etc/squid 主配文件:/etc/squid/squid.conf 监听tcp端口号:3128 默认访问日志文件:/var/log/squid/access.log

相关主题