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