1. 程式人生 > >linux之正向代理,反向代理

linux之正向代理,反向代理

squid是什麼?
代理快取伺服器:接收到使用者請求後,自動下載指定資源並存儲到本地伺服器,以後使用者請求相同資源時,直接把儲存在本地伺服器的資源直接傳給使用者。
1.正向代理:
#####標準代理模式#####
客戶端請求訪問一個web頁面,訪問代理伺服器,若代理伺服器有快取資料,則直接從代理伺服器下載資料,若代理伺服器沒有快取,則會請求原站點資料,從原站點拿到資料後給客戶端,這就提高了訪問速度。但是,要想實現這種方式,必須在每一個內部主機的瀏覽器上明確指名代理伺服器的IP地址和埠號。
#####透明代理模式#####
透明代理緩衝伺服器和正向代理伺服器的功能完全相同。但是,代理操作對客戶端的瀏覽器是透明的(即不需指明代理伺服器的IP和埠)。
2.反向代理:
  反向代理(Reverse Proxy)方式是指以代理伺服器來接受internet上的連線請求,然後將請求轉發給內部網路上的伺服器,並將從伺服器上得到的結果返回給internet上請求連線的客戶端,此時代理伺服器對外就表現為一個節點伺服器

一.正向代理
配置squid客戶端(可以上網)
1.設定網路 

vim /etc/sysconfig/network-scripts/ifcfg=eth0
DEVICE=eth0
BOOTPROTO=none
IPADDR=172.25.254.147
NETMASK=255.255.255.0
GATEWAY=172.25.254.78
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 cache_dir ufs /var/spool/squid 100 16 256	##註釋去掉
						##快取目錄:100-->100M;
						##16:16個目錄;
				##256-->在16個目錄下每個目錄都包含256個子目錄

 

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
----->Manual proxy coonfiguration----->HTTP Proxy:172.25.254.147 Port:3128
測試:
瀏覽器輸入www.baidu.com ##可以瀏覽百度

ping www.baidu.com ##但是依然ping不通,只是用另外一臺虛擬機器做了快取

二.反向代理

vim /etc/squid/squid.conf 
59 http_port 80 vhost vport 
60 cache_peer 172.25.254.147 parent 80 0 proxy-only 
		##172.25.254.147 代理主機的ip
		##型別:parent:沒有備用的代理
		##80:服務埠號
		##0:沒有備用的埠
		##proxy-only:只是代理

rpm -qa | grep httpd 
systemctl restart squid

真機測試:
172.25.254.147這臺虛擬機器配置了apache,而172.25.254.247這臺主機沒有安裝配置apache,可以通過反向代理,使用者訪問172.25.254.247時可以看到配置apache的主機的內容
vim /etc/hosts


把172.25.254.147修改成172.25.254.247