腾讯的web页面使用的加速技术----->squid代理
squid---->代理软件
Squid是一种用来缓冲Internet数据的软件。它是这样实现其功能的,接受来自人们需要下载的目标(object)的请求并适当地处理这些请求。也就是说,如果一个人想下载一web页面,他请求Squid为他取得这个页面。Squid随之连接到远程服务器并向这个页面发出请求。然后,Squid显式地聚集页面数据到客户端机器,而且同时复制一份到squid服务器。当下一次有人需要同一页面时,Squid可以简单地从磁盘中读到它,那样数据迅即就会传输到客户机上。当前的Squid可以处理HTTP,FTP,GOPHER,SSL和WAIS等协议。但它不能处理如POP,NNTP,RealAudio以及其它类型的东西。
VPN的概念
虚拟专网(VPN-Virtual Private Network)指的是在公用网络上建立专用网络的技术。之所以称为虚拟网主要是因为整个VPN网络的任意两个节点之间的连接并没有传统专网所需的端到端的物理链路,而是架构在公用网络服务商所提供的网络平台之上的逻辑网络,用户数据在逻辑链路中传输。
代理的概念
代理,也称网络代理,是一种特殊的网络服务,允许一个网络终端(一般为客户端)通过这个服务与另一个网络终端(一般为服务器)进行非直接的连接。一些网关、路由器等网络设备具备网络代理功能。一般认为代理服务有利于保障网络终端的隐私或安全,防止攻击。
一个完整的代理请求过程为:客户端首先与代理服务器创建连接,接着根据代理服务器所使用的代理协议,请求对目标服务器创建连接、或者获得目标服务器的指定资源(如:文件)。在后一种情况中,代理服务器可能对目标服务器的资源下载至本地缓存,如果客户端所要获取的资源在代理服务器的缓存之中,则代理服务器并不会向目标服务器发送请求,而是直接返回缓存了的资源。一些代理协议允许代理服务器改变客户端的原始请求、目标服务器的原始响应,以满足代理协议的需要。
1.正向squid代理
让客户端通过服务端上网
服务端设置:
(1)设置让虚拟机上网的步骤
服务端主机:
vim /etc/resolv.conf
3 nameserver 114.114.114.114
vim /etc/sysconfig/network-scripts/ifcfg-eth0
GATEWAY0=172.25.254.26
systemctl restart network
主机设置:
sysctl -a |grep ip_forward ##先查看是否开启内核路由功能
vim /etc/sysctl.conf ##如果ip_forward为0则需要修改为1
sysctl -p ##重启生效
firewall-cmd --add-masquerade ##给防火墙开启地址伪装功能(临时开启)
(2)设置squid
yum install squid -y
vim /etc/squid/squid.conf
56 http_access allow all ##为所有人开启代理功能
62 cache_dir ufs /var/spool/squid 100 16 256 ##指定代理的缓存地址,100M缓存空间
有16个一级目录各有256个二级目录可供缓存
systemctl stop firewalld
systemctl restart squid
客户端设置:
在客户端浏览器中设置代理服务器地址和端口
选择settings
测试:
可见客户端无法ping通 ,114.114.114.114和www.baidu.com但却可以在浏览器访问
2.squid的反向代理
目的:通过访问服务端ip地址转跳到客户端的地址
服务端设置:
systemctl stop httpd
systemctl stop firewalld
vim /etc/squid/squid.conf
59 http_port 80 vhost vport
60 cache_peer 172.25.254.226 parent 80 0 proxy-only ##proxy-only表示只缓存
systemctl restart squid
客户端设置:
yum install httpd -y
systemctl start httpd
systemctl stop firewalld
vim /var/www/html/index.html
<h1>客户端ip</h1>
测试:
在一台主机上访问服务端ip ,显示的内容为客户端ip
2.squid反向代理的轮询访问
服务端设置:
vim /etc/squid/squid.conf
59 http_port 80 vhost vport
60 cache_peer 172.25.254.226 parent 80 0 proxy-only name=web1 originserver round-robin weight=2 ##weight的值表示轮询的次数
61 cache_peer 172.25.254.26 parent 80 0 proxy-only name=web2 originserver round-robin
62 cache_peer_domain web1 web2 www.westos.com##因为只有域名可以支持轮询,不能设置成ip地址
确保客户端226和26主机上都开启了httpd且有默认文件
systemctl restart squid
netstat -antlupe | grep squid ##查看squid的端口
测试:
设置访问主机的解析后,主机访问浏览器输入域名:
vim /etc/hosts 172.25.254.126 www.westos.com
在浏览器中访问squid配置文件中的域名(www.westos.com)