热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【linux】squid代理服务器

1.Squid代理服务器Squid代理服务器(Squidproxyserver)一般和原始文件一起安装在单独服务器而不是网络服务器上。Squid通过追
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(本机不做解析),否则会占用端口


推荐阅读
  • 本文介绍了多种Eclipse插件,包括XML Schema Infoset Model (XSD)、Graphical Editing Framework (GEF)、Eclipse Modeling Framework (EMF)等,涵盖了从Web开发到图形界面编辑的多个方面。 ... [详细]
  • 本文详细介绍了在 Windows 7 上安装和配置 PHP 5.4 的 Memcached 分布式缓存系统的方法,旨在减少数据库的频繁访问,提高应用程序的响应速度。 ... [详细]
  • 对于初次购买阿里云服务器的新手用户来说,如何高效地利用服务器资源并成功部署网站是一个重要的课题。本文将详细指导您完成从购买服务器到网站上线的六个关键步骤。 ... [详细]
  • 本文介绍了JSP的基本概念、常用标签及其功能,并通过示例详细说明了如何在JSP页面中使用Java代码。 ... [详细]
  • 本文详细探讨了 HAProxy 的基本概念及其与 LVS(Linux Virtual Server)的比较,特别是在内核空间与用户空间的工作差异。文章还深入介绍了 HAProxy 独有的数据结构——弹性二叉树,以及其在高并发场景下的表现。 ... [详细]
  • 本文详细介绍了利用JavaScript实现的五种不同的网页弹出窗口技术,包括全屏窗口、全屏模式窗口、带收藏链接工具栏的窗口、网页对话框及HTA窗口。 ... [详细]
  • GCC(GNU Compiler Collection)是GNU项目下的一款功能全面且高效的多平台编译工具,广泛应用于Linux操作系统中。本文将详细介绍GCC的特点及其基本使用方法。 ... [详细]
  • electronvue使用electronupdater实现自动更新
    今天呢,给大家带来一篇干货满满的electron-vue自动升级的教程,话不多说,开始我的表演!配置文件package.jsonbu ... [详细]
  • Struts2框架构建指南
    本文详细介绍了如何使用Struts2(版本2.3.16.3)构建Web应用,包括必要的依赖库添加、配置文件设置以及简单的示例代码。Struts2是Apache软件基金会下的一个开源框架,用于简化Java Web应用程序的开发。 ... [详细]
  • 本文介绍了如何使用Workman框架构建一个功能全面的即时通讯系统,该系统不仅支持一对一聊天、群组聊天,还集成了视频会议和实时音视频通话功能,同时提供了红包发送等附加功能。 ... [详细]
  • BeautifulSoup4 是一个功能强大的HTML和XML解析库,它能够帮助开发者轻松地从网页中提取信息。本文将介绍BeautifulSoup4的基本功能、安装方法、与其他解析工具的对比以及简单的使用示例。 ... [详细]
  • 集群与负载均衡技术解析
    本文探讨了集群(Cluster)的概念,即通过网络连接的一组计算机系统,它们作为一个整体提供服务,实现分布式计算。文章还详细介绍了负载均衡技术,旨在提高网络服务的效率和可靠性。 ... [详细]
  • 本书《Pro Git》深入探讨了 Git 版本控制系统的核心概念与高级功能,旨在帮助开发者和团队有效管理代码变更。通过实例和最佳实践,读者将学习如何利用 Git 提升工作效率。 ... [详细]
  • 本文基于《Core Java Volume 2》的内容,深入探讨了网络编程中通过POST方法提交表单数据的技术细节,包括GET与POST方法的区别、POST提交的具体步骤及常见问题处理。 ... [详细]
  • Node.js模块化的优势及实践
    本文探讨Node.js模块化的重要性和具体实现方式,包括其带来的代码复用性增强、可维护性提升、以及如何有效避免命名冲突等问题。 ... [详细]
author-avatar
等号拖轮_496
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有