1. 程式人生 > >正向代理 反向代理 CDN加速

正向代理 反向代理 CDN加速

思考:
西安的QQ使用者登陸訪問騰訊伺服器。西安使用者的客戶端到達騰訊深圳伺服器快還是西安客戶端到達西安的騰訊伺服器快?
如今光纖寬頻傳輸,地理的距離微乎其微,但是西安客戶端到深圳伺服器要比到西安伺服器,設定的閘道器多,經過的路由越多,速度越慢。
騰訊西安伺服器和深圳伺服器之間是有專線速度比較快 西安客戶端---->西安伺服器---->深圳伺服器 squid
作用:把客戶要的資料直接快取到西安的伺服器。squid原來是用來翻牆的。

一.正向代理

定義:正向代理,意思是一個位於客戶端和原始伺服器(origin server)之間的伺服器,為了從原始伺服器取得內容,客戶端向代理髮送一個請求並指定目標(原始伺服器),然後代理向原始伺服器轉交請求並將獲得的內容返回給客戶端。客戶端才能使用正向代理。

理解正向代理:
中國客戶端無法直接訪問到youtube伺服器,可以把中國客戶端要的資訊快取到美國客戶端,美國客戶端可以直接連線youtube伺服器

1.配置squid客戶端(可以上網)
1.設定網路

vim /etc/sysconfig/network-scripts/ifcfg=eth0
DEVICE=eth0
BOOTPROTO=none
IPADDR=172.25.254.217
NETMASK=255.255.255.0
GATEWAY=172.25.254.77
DNS1=114.114.114.114
systemctl restart network
ping www.baidu.com ##可以ping通百度

這臺主機是可以上網的
在這裡插入圖片描述
2.設定主機名

hostnamectl set-hostname squid.westos.com

3.配置yum源

cd /etc/yum.repos.d/
vim yum.repo 
yum repolist 

4.安裝squid服務

yum install squid -y
systemctl start squid

5.修改配值檔案

vim /etc/squid/squid.conf
56 http_access deny all修改成 http_access allow all
62 把註釋去掉

在這裡插入圖片描述
6.關閉火牆

systemctl stop firewalld.service 

7.開啟服務

ls /var/spool/squid/ 	##開啟之前沒東西
systemctl restart squid ##開啟服務
ls /var/spool/squid/  	##會生成快取目錄,16個父目錄,每個父目錄下有256個子目錄
ls | wc -l  ##256個

在這裡插入圖片描述
在另外一個客戶端(不可以上網)
關閉火牆
在這裡插入圖片描述
ping www.baidu.com ##ping不通
在這裡插入圖片描述
在網頁設定Edit---->Preferences----->Advanced—>Network---->Settings
----->HTTP Proxy:172.25.254.217 Port:3128
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述

測試
www.baidu.com ##可以登陸上百度
在這裡插入圖片描述
ping www.baidu.com ##但是依然ping不通,只是用另外一臺虛擬機器做了快取
在這裡插入圖片描述

二.反向代理

定義:
反向代理(Reverse Proxy)方式是指以代理伺服器來接受internet上的連線請求,然後將請求轉發給內部網路上的伺服器,並將從伺服器上得到的結果返回給internet上請求連線的客戶端,此時代理伺服器對外就表現為一個節點伺服器

vim /etc/squid/squid.conf
 59 http_port 80 vhost vport
 60 cache_peer 172.25.254.117 parent 80 0 proxy-only
rpm -qa | grep httpd
systemctl restart squid

在這裡插入圖片描述
在這裡插入圖片描述
真機測試:
172.25.254.117這臺虛擬機器配置了apache,而172.25.254.217這臺主機沒有安裝配置apache,通過反向代理,使用者訪問172.25.254.217時可以看到配置apache的主機的內容

 vim /etc/hosts

把117修改成217
在這裡插入圖片描述
在這裡插入圖片描述

三.CDN加速

1.定義:

CDN的全稱是Content Delivery Network,即內容分發網路。其基本思路是儘可能避開網際網路上有可能影響資料傳輸速度和穩定性的瓶頸和環節,使內容傳輸得更快、更穩定。通過在網路各處放置節點伺服器所構成的在現有的網際網路基礎之上的一層智慧虛擬網路,CDN系統能夠實時地根據網路流量和各節點的連線、負載狀況以及到使用者的距離和響應時間等綜合資訊將使用者的請求重新導向離使用者最近的服務節點上。其目的是使使用者可就近取得所需內容,解決
Internet網路擁擠的狀況,提高使用者訪問網站的響應速度。

vim /etc/squid/squid.conf
cache_peer 172.25.254.117 parent 80 0 proxy-only name=web1 round-robin     ##proxy-only 只做代理
cache_peer 172.25.254.245 parent 80 0 proxy-only name=web2 round-robin
cache_peer_domain web1 web2 www.westos.com
systemctl restart squid

測試:
www.westos.com
輪詢方式一次一輪詢

vim /etc/squid/squid.conf
cache_peer 172.25.254.117 parent 80 0 proxy-only name=web1 round-robin weight=2
cache_peer 172.25.254.245 parent 80 0 proxy-only name=web2 round-robin
cache_peer_domain web1 web2 www.westos.com
systemctl restart squid

測試:
www.westos.com
輪詢方式 web1兩次web2一次