squid服务部署与实践

1.Squid是什么? 

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

2.squid代理的作用

相当于代理,在真实页面加一层代理层:

squid服务部署与实践_第1张图片

正向代理

1 标准的代理缓冲服务器

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

2 透明代理缓冲服务器

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

反向代理:

1 反向代理缓冲服务器

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

实验:

环境配置,使虚拟机可以上网:

squid服务部署与实践_第2张图片

正向代理:
server虚拟机可以上网(改网关),写vim /etc/resolv.conf解析
用它来做正向代理:
yum install squid -y
systemctl start squid
netstat -antlupe | grep squid
vim /etc/squid/squid.conf
http_access allow all
catch_dir 那行注释删掉
systemctl restart squid

利用代理的浏览器上选择perferencrs--->advanced--->network---> Http proxy 172.25.60.100 port 3128
在desktop虚拟机仍然不能ping通,但是可以浏览器访问了 相当于直接访问的100 3128端口 

squid服务部署与实践_第3张图片

修改配置文件:

squid服务部署与实践_第4张图片

浏览器设置,实现代理功能:

squid服务部署与实践_第5张图片

squid服务部署与实践_第6张图片

测试:

squid服务部署与实践_第7张图片

############cdn:内容分发网络############
假设企业在深圳有一台主服务器,企业在西安设置一台代理服务器,当西安的客户访问深圳的服务器时,带它去访西安的服务器,若西安的服务器中有需要的缓存直接访问,没有西安先去深圳然后提供给客户

西安主服务器(100):
		写squid的配置文件   
                不能有http,不然httpd使用80端口,和配置会冲突
                vim /etc/squid/squid.conf
                http_port 80 vhost vpost
	        cache_peer 172.25.60.200  parent 80 0 proxy-only
           
                systemctl restart squid
                systemctl stop firewalld
深圳服务器(200):
		yum install httpd -y
            systemctl start httpd
	        systemctl stop firewalld
                cd /var/www/html   vim index.html
客户端(250):
                vim /etc/hosts
                172.25.254.200 www.westos.com



测试:在客户端浏览器www.westos.com 可以看到深圳服务器测试页面

##########squid轮询服务###############

apache服务器1(200):
		yum install httpd -y
            systemctl start httpd
	        systemctl stop firewalld
                cd /var/www/html   vim index.html
apache服务器2(50):
		yum install httpd -y
            systemctl start httpd
	        systemctl stop firewalld
                cd /var/www/html   vim index.html
主服务器(100):
		写squid的配置文件   
                不能有http,不然httpd使用80端口,和配置会冲突
                vim /etc/squid/squid.conf
                http_port 80 vhost vpost
	        cache_peer 172.25.60.200  parent 80 0 proxy-only
            cache_peer 172.25.60.50  parent 80 0 proxy-only weight=2
                systemctl restart squid
                systemctl stop firewalld
客户端(250):
                vim /etc/hosts
                172.25.254.200 www.westos.com

                172.25.254.50 www.westos.com
测试:在客户端浏览器www.westos.com 可以按权值轮询看到200/50主机上的页面

 

squid服务部署与实践_第8张图片

squid服务部署与实践_第9张图片

设置两台后台服务器的网页,以验证轮询方式:

squid服务部署与实践_第10张图片

squid服务部署与实践_第11张图片squid服务部署与实践_第12张图片

squid服务部署与实践_第13张图片

 反向代理完成,负载均衡实现。

你可能感兴趣的:(Linux系统服务)