服务器搭建九——Squid代理服务器搭建
2017-05-23 本文已影响197人
十二楼中月
1.实验环境
a)安装在虚拟机上的centos6.9
b)Squid
2.代理服务的概述
代理,顾名思义就是用一个事物代替另一个事物。我们可能经常听说一个是代理律师,那么为什么要使用代理?我们本身不懂法律,遇到法律问题我们可以咨询懂得法律的人,遇到与法律有关的问题我们可以委托有关律师代理我们去做我们做不了,不擅长的事情。同样的道理代理服务器是用来干嘛的,用来代理我们去做我们不方便,或者无法去做的事情,或者不想让别人知道我们是谁的事情。当然这里肯定有不好的事情,比如你可能会使用代理去访问我们国内无法看到的网页了(比如小电影 哈哈)。当然代理服务器不只有这些功能,还可以用来做反向代理使加快我们的网页访问速度,起到负载均衡的作用。
上图是一个典型的web代理的原理图,客户端需要访问WEB服务器,首先访问到代理服务器,若代理服务器有WEB的缓存,那么直接返回给客户端,若没有在将请求转发给WEB服务器。从图中还可以看出客户端和WEB服务器不在同一个网段。所以代理还可以起到防火墙的作用,甚至网关的左右。在公司上外网的时候其实使用路由器,交换机对外也是在使用一种代理,大家都是通过同一个IP地址访问互联网的。也就是自己本机有个内网IP地址,出口时候映射成外网的IP地址,因此我们在不知不觉中就在使用了代理。有时候我们不想在外网使用自己IP就会在浏览器中设置代理,再就是有些游戏和我们的连接不稳定,但是和有些IP是稳定也可以使用代理,或者多开服务等等。
在说VPN的时候提到过和代理服务很像,那么他们之间到底是什么关系?
代理服务器就是 你先通过访问代理服务器,在由代理服务器访问你需要访问的网站,服务器再返回内容给你,vpn 就是虚拟专用网,就是你访问的网站或者其他的什么服务器都要在这个虚拟专用网里,通过走一条虚拟的链路实现访问。
代理服务器(Proxy Server)是一种重要的服务器安全功能,它的工作主要在开放系统互联(OSI)模型的会话层,从而起到防火墙的作用。代理服务器大多被用来连接INTERNET(国际互联网)和Local Area Network(局域网)。
虚拟专用网络的功能是:在公用网络上建立专用网络,进行加密通讯。在企业网络中有广泛应用。VPN网关通过对数据包的加密和数据包目标地址的转换实现远程访问。VPN有多种分类方式,主要是按协议进行分类。VPN可通过服务器、硬件、软件等多种方式实现。
代理方式:传统代理、透明代理、反向代理
有关这几种代理建议用户可以看下图解正向代理、反向代理、透明代理
3.Squid安装
yum list |grep squid
上述两个代表不同的版本
yum install squid
(安装的是第一个,如果用squid34就安装的是新版本)安装之后squid start在测试正常。 测试
4.配置
主配置文件/etc/squid/squid.conf
squid目录下主要文件 默认主配置文件由于squid的代理还是有点复杂的,上面的是默认的配置文件,如果需要具体的设置和了解可以再具体问题具体分析。大致了解有哪些设置项就可以了。
1)透明代理的配置
核心内容:http_port 3128 transparent
2)反向代理配置
核心内容:http_port 80 defaultsite =192.168.1.12(内网的IP)defaultsite 表示如果客户的请求中没有主机头域,则把该域指定的IP地址
cache_peer 192.168.1.12 parent 80 0 no-query originserver
如果缓存中找不到客户端请求数据,与主机亿parent类型联系 no-query 表示不使用ICP协议联系,使用HTTP协议联系80端口。 Originserver 表示主机为请求的源服务。如果是代理多台需要修改如下
http_port 80 vhost cache_peer 192.168.1.12 parent 80 0 no-query originserver cache_peer 192.168.1.13parent 80 0 no-query originserver cache_peer 192.168.1.14 parent 80 0 no-query originserver
vhost表示使用主机头域对目的服务器访问。
此时3台web服务器对外网的域名解析都应该指向反向代理服务器的外网IP地址,而反向代理服务器应该把这3个域名解析成对应的内网IP地址。
当然这里使用的squid代理服务器是相对来说还好的,现在也可以使用nginx来做反向代理,具体会在我安装测试nginx时候说到。
关于怎么在内容对三个与解析到内容IP地址,下面是使用nginx做反向代理时候的配置文件,在squid做反向代理服务器怎么解析 我是真没有找到。如果有知道可以和我说说。 nginx反向代理配置
其实在我工作地方也遇到外网的一个出口IP只有一个80端口的问题,使用的是防火墙来做的端口映射,也存在多个域名无法很好的指向的问题。最后的做法是使用apache的虚拟主机解决,指向不同地方,有点类似nginx的反向代理。