squid代理服务器(包括正向代理服务器、反向代理服务器(cdn加速)、squid调度器:负载均衡(缓解企业服务器的压力))

1.什么是squid代理服务器?

  1. Squid是一个高性能的代理缓存服务器,Squid支持FTP、gopher、HTTPS和HTTP协议
  2. 和一般的代理缓存软件不同,Squid用一个单独的、非模块化的、I/O驱动的进程来处理所有的客户端请求
  3. Squid是一种用来缓冲Internet数据的软件,它是这样实现其功能的:接受来自人们需要下载的目标(object)的请求并适当地处理这些请求
  4. 也就是说,如果一个人想下载一web页面,他请求Squid为他取得这个页面
  5. Squid随之连接到远程服务器(比如:http://squid.nlanr.net/)并向这个页面发出请求
  6. 然后,Squid显式地聚集数据到客户端机器,而且同时复制一份
  7. 当下一次有人需要同一页面时,Squid可以简单地从磁盘中读到它,那样数据迅即就会传输到客户机上
  8. 当前的Squid可以处理HTTP,FTP,GOPHER,SSL和WAIS等协议
  9. 但它不能处理如POP,NNTP,RealAudio以及其它类型的东西

2.squid正向代理服务器的实现(客户自己主动设定代理服务器的信息)

(1)实验背景

中国的客户端主机想要访问国外的某一台服务器主机,由于中国政府不允许存在这样的网络环境使中国主机直接访问国外服务器
但是香港的主机可以直接访问国外的主机,香港的主机其实也是一个客户端主机
现在中国的客户端主机可以通过香港这个客户端主机去间接访问国外的服务器
中国的主机去给香港的主机说自己想要什么,然后香港的主机去问国外的服务器要东西
香港的主机拿到东西之后,先给自己缓存一份,然后去给中国的主机
其实我和香港的都属于客户端,国外的属于被访问的
香港这台主机相当于代购,叫做squid代理服务器
我想访问国外的主机,不可以
但是香港的主机可以访问国外的主机
我去问香港的主机,香港的主机去问国外的

(2)实验步骤

先连wifi使自己的真机可以上网,可以ping通百度,ping www.baidu.com

 

开启防火墙

开启地址伪装功能

开启两台虚拟机并配置好网络及yum源

配置desktop主机的网络,并且使他可以通过真机上网

网关设置为我自己的真机ip

重启网络

查看网关

关掉防火墙之后再次测试,发现依然不通

因为我没有写域名解析

我的Desktop虚拟机是一个squid代理服务器

打开真机防火墙

配置server主机的网络,它不能上网,ping不通 www.baidu.com

接下来我将把desktop虚拟机当作一个squid代理服务器,让我的server虚拟机通过desktop虚拟机去使用真机的网关上网
真机相当于国外的一台服务器
desktop虚拟机相当于香港的一台客户端
server虚拟机相当于中国的一台客户端
操作都在desktop上面

先给Desktop配置本地yum源

完成之后,直接安装squid软件,把desktop主机当成一个代理服务器

systemctl start squid开启squid服务
systemctl enable squid设置squid服务是开机启动

netstat -antlupe | grep squid查看squid服务使用的端口号

vim /etc/squid/squid.conf编辑squid配置文件
允许别人把我当作代理服务器,缓存100M,要定期自动清理,16个一级目录,256个二级目录

修改前:

修改后:改为所有的http连接,开启squid服务的缓存功能,使自己作为代理服务器具有缓存能力,缓存大小是100M,有16个一级目录,256个二级目录

systemctl restart squid

切换到缓存目录下,进入00这个以及目录下,可以看出有很多二级目录

在server虚拟机这个客户端进行测试:此时依然ping不通百度

 

现在的server主机不能上网

在server的浏览器里面设置代理主机的信息,使它在依然ping不通百度的情况下,但是可以神奇的上网,哈哈哈
在浏览器里面加入代理服务器desktop的信息,172.25.254.111和 3128端口
server客户端通过desktop客户端的3128端口去问114要东西

选择编辑----->选择参数设置选项

选择高级选项----->选择网络选项并且进行设置

写入代理服务器ip地址和代理服务的端口

此时server虚拟机在ping不通 baidu的情况下通过squid代理服务器可以上网了

3. squid反向代理服务器的实现(企业服务器自己主动设定代理服务器的信息)

(1)实验背景
squid反向代理也叫做cdn加速,利用squid代理服务器,此时属于反向代理

什么是CDN?
CDN的全称是Content Delivery Network,即内容分发网络。
CDN是构建在网络之上的内容分发网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,
使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。CDN的关键技术主要有内容存储和分发技术。

 

西安的客户访问西安和深圳的服务器,哪个更快?客户访问西安的更快,因为路由转发个数少,客户直接访问深圳企业总部的服务器很慢 那么深圳的企业在西安放置一个代理服务器(这个服务器没有资源,有需要就去深圳服务器缓存,西安这个服务器就是squid反向代理) 西安的用户直接访问西安的服务器,西安的服务器没有数据,去深圳的缓存 使深圳的服务器压力变小,而且也可以提高信息传输的速率 cdn网络资源分发cdn加速

(2)实验规划

  1. 这个实验用三台主机
  2. 我的真机是西安的客户
  3. 我的server服务端虚拟机(desktop)是深圳的企业放在西安的代理服务器,上面没有资源
  4. 我的client客户端虚拟机(serevr)是深圳的服务器,上面有资源,有apache服务
  5. 西安的客户直接问西安的代理服务器,西安的代理服务器去深圳的服务器上面缓存资源

(3)实验步骤

设置squid反向代理服务器,相当于位于西安的反向代理服务器
直接查看有没有apache服务:rpm -qa | grep httpd 它没有apache,有squid服务
1. netstat -antlupe | grep 80这个代理服务器没有apache服务 
2. vim /ect/squid/squid.conf编辑squid代理文件 
3. cd /usr/share/doc/squid-3.3.8/ 
4. ls 
5. less squid.conf.documentd在这个里面查看编写要求 
6. 写入: http_port 80 vhost vport 利用80端口访问apache的资源
7. 写入apache的虚拟主机和虚拟端口 cache_peer 172.25.254.215 parent(父级) 80(apache服务) 0(此台代理服务器没有合作伙伴) proxy-only systemctl restart squid

 

我的dekstop虚拟机具有squid服务,是一个反向代理服务器,相当于深圳放在西安的代理服务器

可以看到西安的代理服务器没有apache服务

编辑squid代理服务的配置文件

让squid代理服务器开启http服务的虚拟端口80

重启squid服务

设置深圳企业的总服务器

yum install httpd安装apache服务 
systemctl start httpd开启apache 
systemctl stop firewalld关闭防火墙 
cd /var/www/html 
ls 
vim index.html编辑发布文件 
<h1>shenzhen's page</h1>
 systemctl restart httpd重启apache服务

我已配置好yum源

给深圳的服务器安装apache服务

开启apache服务,关闭防火墙

切换到apache的默认目录下编辑默认发布文件,共享资源

编辑共享的内容

重启apache服务

设置西安客户的主机
在真机里面做解析:
vim /etc/hosts
172.25.254.215(写入代理服务器的ip)

在真机里面测试:
本地解析写215
vim /etc/hosts
172.25.254.215
我在真机ping www.westos.com(显示解析是由172.25.254.215给的)
或者在浏览器里面输入172.25.254.215直接可以看到172.25.254.115深圳服务器apache下面的东西,相当于西安的用户去访问西安的代理服务器
或者在浏览器直接输入172.25.254.115也可以,相当于西安的用户直接访问深圳的服务器
或者在浏览器直接输入www.westos.com也可以,看到的也是深圳的东西
因为www.westos.com对应172.25.254.215,215没有资源,215去问115要东西,因此直接显示115下面共享出来的东西

 

 

4.squid调度器的实现

(当企业中服务器的压力很大时,利用squid调度器来缓解负载均衡)

(1)实验背景

当多个客户访问一台服务器的时候,服务器压力很多,需要另外一台服务器来帮助它均衡一下
可是客户端只访问一个ip,两个服务端的ip不一样,怎样让客户毫无察觉的在两台服务器上面访问一个企业的同一个资源
这时候就需要一个squid调度器,当第一个客户访问时,去找apache1,当第二个客户来访问时,去找apache2
这个实验需要三台主机,两台apache主机,一台squid主机

(2)实验步骤

先重置我的两台虚拟机,并且配置网络,yum源,改主机名字
一个虚拟机是apache2(server虚拟机),一个是squid(desktop虚拟机)
真机是一个apache1
在apache1真机上面设置

把真机当作一个apache服务器,安装apache

切换到默认发布目录下

重启apache服务使共享目录下的资源共享出去

在浏览器里面输入apache1主机的ip看httpd服务是否配好

在server虚拟机apache2上面设置:

编辑server主机的默认发布目录

重启apache服务并关闭防火墙

在squid主机上设置:
yum install squid -y
vim /etc/squid/squid.conf

编辑调度器的配置文件

写入两个apache服务器信息

重启squid调度器服务

调度器没有apache,但是开启了80端口

测试:在哪测试就在哪做本地解析

我选择在真机测试:

写入调度器的ip

在浏览器中输入www.westos.com时,依次显示了apache1和apache2的默认发布内容

给定几率访问apache1,apache2

之前的访问时随机分配的,现在改变一下权重,apache2 : apache1 = 2 : 1

注意:实际在企业当中两个apache服务器共享的内容是一样的,做实验不一样是为了实验效果更明显
注意:这里的用户访问只能是通过域名访问,如果通过ip访问的话就没有通过调度器而是直接访问,没有起到负载均衡的作用

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值