1.Squid代理服务器
Squid代理服务器(Squid proxy server)一般和原始文件一起安装在单独服务器而不是网络服务器上。Squid通过追踪网络中的对象运用起作用。Squid最初担当中介,仅仅是把客户要求传递到服务器并存储要求对象的拷贝。如果同一个客户或同一批客户在要求还在Squid缓存(cache)时要求相同的对象,Squid就可以立刻服务,加速下载并保存带宽。
2.正向代理
2.1了解正向代理
现象: 客户端无法直接连接Internet,可以通过代理服务器(一个跳板机),代理访问外部资源,返回客户端需要的数据!
客户端已经明确知道要访问的代理服务器,知道其ip地址,端口主动去链接。
2.2正向代理服务器
我是一个拥有合法ip的服务器,我不能访问国外的某网站,但是我可以访问某国内的代理服务器,这个服务器可以访问此网站:
我在链接时告诉代理我要看什么网站,他帮我查看且缓存,我再查看他的缓存。
只在代理服务器来取内容的时候有一次记录,并不知道是用户的请求,也隐藏了用户的资料,这取决于代理告不告诉网站。
而访问机无法链接百度
这时我们就可以开始正向代理操作
在访问端我们做如下操作:
3.反向代理服务器
3.1什么是反向代理
在正向代理中我们是客户端主动填写代理ip及端口,而反向代理中是客户不需要做任何操作,即可上网。
反向代理,是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器;
反向代理服务器承担了对原始WEB服务器的静态页面的请求,防止原始服务器过载。它位于WEB服务器和Internet之间,处理所有对WEB服务器的请求,组织了WEB服务器和Internet的直接通信。如果互联网用户请求的页面在代理服务器上有缓冲的话,代理服务器直接将缓冲内容发送给用户。如果没有缓冲则先向WEB服务器发出请求,取回数据,本地缓存后再发给用户。这种方式通过降低了WEB服务器的请求数从而降低了WEB服务器的负载。
反向代理有什么用为什么要这么做:
作用:用户请求过多,服务器会有一个处理的极限。所以使用反向代理服务器接受请求,再用均衡负载将请求分布给多个真实的服务器。既能提高效率还有一定的安全性。
用途:如果不采用代理,用户的IP、端口号直接暴露在Internet(尽管地址转换NAT),外部主机依然可以根据IP、端口号来开采主机安全漏洞,所以在企业网,一般都是采用代理服务器访问互联网。
举例:
深圳这个服务器是原始web服务器,此时西安也有一个服务器,现在西安有一台主机上面的网页想要去向深圳发送一个请求,但是直接去访问深圳的服务器会造成深圳服务器的繁忙,还有发送请求响应的速度缓慢(因为要做的地址转换比较多),此时西安这个服务器可以代替这个这个网页去发送请求,因为两个服务器之间的速度比较快,并将请求的结果缓存下来,如果下一次有人问,西安就不用去发送请求,可以将缓存结果直接交付给它,这样就缓解了深圳服务器的工作压力。
具体客户端操作如下:
yum install httpd -y
systemctl start httpd
cd /var/www/html
vim index.html 里面随便写点什么
systemctl stop firewalld
在服务端我们也要做一些 实验:
vim /etc/squid/squid.conf
第五十九行:http_port 80 vhost vport
第六十行:cache_peer 172.25.254.106 parent 80 0 proxy-only
systemctl restart squid
4.web调度器的搭建
调度器:(调节负载均衡)
在企业中当站点的服务器负载过大时,我们可以使用轮循调度来降低负载——虽然访问的IP不同,但是访问内容是一致的。
配置两个apache,在默认发布文件随便写点什么,为了实验效果,同一个域名对应的默认发布内容最好写的不一样,在企业中默认发布内容其实是一样的。
一个apache我们在上个实验都做好了,此时来搭建另一个apache(用真机):
第一步:配置好yum源
第二步安装httpd软件包
第三步:开启服务,并编辑默认发布文件
第四步:关闭防火墙
搭建web调度器(也可以用上个实验的服务端server):
配置一个调度器:(主机ip是172.25.254.206)
yum install squid -y
systemctl start squid
vim /etc/squid/squid.conf 编辑配置文件
在里面修改56-65
56 http_access allow all57 58 # Squid normally listens to port 312859 http_port 80 vhost vport60 cache_peer 172.25.254.106 parent 80 0 proxy-only no-query round-robin originserver name=web161 cache_peer 172.25.254.15 parent 80 0 proxy-only no-query round-robin originserver name=web2 weight=362 cache_peer_domain web1 web2 www.westos.com63 64 # Uncomment and adjust the following to add a disk cache directory.65 cache_dir ufs /var/spool/squiid 100 16 256
因为我们这里已经安装过squid并且开启过服务,所以不用安装跟开启服务
编辑配置文件
cache_peer 172.25.254.106 parent 80 0 proxy-only round-robin
originserver name=web1
80指连接浏览器的端口,0指当服务器挂掉后没有备用的(通过进入目录/usr/share/doc/squid-3.3.8/squid.conf.documented(可以查看到本机没有备用服务器)
proxy-only指只能代理
name=web1是给呈现出ip为172.25.25.106中的内容(共享目录下/var/www/html/index.html的内容)起的别名
round-robin用的是轮循方式
originserver说明为哪一个域名服务(本机为www.westos.com),只有设置这个参数才会去识别round-robin(轮循)
1systemctl restart squid 重启服务
2systemctl stop firewalld 关闭火墙
测试:
在真机里测试:
1 vim /etc/hosts
2 172.25.254.206 www.westos.com
然后在浏览器输入www.westos.com测试,发现出来的内容不一样,刷新频率,两个页面出现的频率为:“我好喜欢你”页面出现一次,“声之形”页面出现两次
注意:
1.两个http服务端的防火墙要关闭
2.调度器不要安装httpd,可能会占用端口
3.轮循调度都是为一个站点所服务的
4.在调度器不要设置dns(本机不做解析),否则会占用端口