1.Squid代理服務器
Squid代理服務器(Squid proxy server)一般和原始文件一起安裝在單獨服務器而不是網絡服務器上。Squid通過追蹤網絡中的對象運用起作用。Squid最初擔當中介,僅僅是把客戶要求傳遞到服務器並存儲要求對象的拷貝。如果同一個客戶或同一批客戶在要求還在Squid緩存(cache)時要求相同的對象,Squid就可以立刻服務,加速下載並保存帶寬。
2.正向代理
2.1瞭解正向代理
現象: 客戶端無法直接連接Internet,可以通過代理服務器(一個跳板機),代理訪問外部資源,返回客戶端需要的數據!
客戶端已經明確知道要訪問的代理服務器,知道其ip地址,端口主動去鏈接。
2.2正向代理服務器
我是一個擁有合法ip的服務器,我不能訪問國外的某網站,但是我可以訪問某國內的代理服務器,這個服務器可以訪問此網站:
我在鏈接時告訴代理我要看什麼網站,他幫我查看且緩存,我再查看他的緩存。
只在代理服務器來取內容的時候有一次記錄,並不知道是用戶的請求,也隱藏了用戶的資料,這取決於代理告不告訴網站。
而訪問機無法鏈接百度
這時我們就可以開始正向代理操作
在訪問端我們做如下操作:
3.反向代理服務器
3.1什麼是反向代理
在正向代理中我們是客戶端主動填寫代理ip及端口,而反向代理中是客戶不需要做任何操作,即可上網。
反向代理,是指以代理服務器來接受internet上的連接請求,然後將請求轉發給內部網絡上的服務器,並將從服務器上得到的結果返回給internet上請求連接的客戶端,此時代理服務器對外就表現爲一個反向代理服務器;
反向代理服務器承擔了對原始WEB服務器的靜態頁面的請求,防止原始服務器過載。它位於WEB服務器和Internet之間,處理所有對WEB服務器的請求,組織了WEB服務器和Internet的直接通信。如果互聯網用戶請求的頁面在代理服務器上有緩衝的話,代理服務器直接將緩衝內容發送給用戶。如果沒有緩衝則先向WEB服務器發出請求,取回數據,本地緩存後再發給用戶。這種方式通過降低了WEB服務器的請求數從而降低了WEB服務器的負載。
反向代理有什麼用爲什麼要這麼做:
作用:用戶請求過多,服務器會有一個處理的極限。所以使用反向代理服務器接受請求,再用均衡負載將請求分佈給多個真實的服務器。既能提高效率還有一定的安全性。
用途:如果不採用代理,用戶的IP、端口號直接暴露在Internet(儘管地址轉換NAT),外部主機依然可以根據IP、端口號來開採主機安全漏洞,所以在企業網,一般都是採用代理服務器訪問互聯網。
舉例:
深圳這個服務器是原始web服務器,此時西安也有一個服務器,現在西安有一臺主機上面的網頁想要去向深圳發送一個請求,但是直接去訪問深圳的服務器會造成深圳服務器的繁忙,還有發送請求響應的速度緩慢(因爲要做的地址轉換比較多),此時西安這個服務器可以代替這個這個網頁去發送請求,因爲兩個服務器之間的速度比較快,並將請求的結果緩存下來,如果下一次有人問,西安就不用去發送請求,可以將緩存結果直接交付給它,這樣就緩解了深圳服務器的工作壓力。
具體客戶端操作如下:
yum install httpd -y
systemctl start httpd
cd /var/www/html
vim index.html 裏面隨便寫點什麼
systemctl stop firewalld
在服務端我們也要做一些 實驗:
vim /etc/squid/squid.conf
第五十九行:http_port 80 vhost vport
第六十行:cache_peer 172.25.254.106 parent 80 0 proxy-only
systemctl restart squid
4.web調度器的搭建
調度器:(調節負載均衡)
在企業中當站點的服務器負載過大時,我們可以使用輪循調度來降低負載——雖然訪問的IP不同,但是訪問內容是一致的。
配置兩個apache,在默認發佈文件隨便寫點什麼,爲了實驗效果,同一個域名對應的默認發佈內容最好寫的不一樣,在企業中默認發佈內容其實是一樣的。
一個apache我們在上個實驗都做好了,此時來搭建另一個apache(用真機):
第一步:配置好yum源
第二步安裝httpd軟件包
第三步:開啓服務,並編輯默認發佈文件
第四步:關閉防火牆
搭建web調度器(也可以用上個實驗的服務端server):
配置一個調度器:(主機ip是172.25.254.206)
yum install squid -y
systemctl start squid
vim /etc/squid/squid.conf 編輯配置文件
在裏面修改56-65
56 http_access allow all
57
58 # Squid normally listens to port 3128
59 http_port 80 vhost vport
60 cache_peer 172.25.254.106 parent 80 0 proxy-only no-query round-robin originserver name=web1
61 cache_peer 172.25.254.15 parent 80 0 proxy-only no-query round-robin originserver name=web2 weight=3
62 cache_peer_domain web1 web2 www.westos.com
63
64 # Uncomment and adjust the following to add a disk cache directory.
65 cache_dir ufs /var/spool/squiid 100 16 256
因爲我們這裏已經安裝過squid並且開啓過服務,所以不用安裝跟開啓服務
編輯配置文件
cache_peer 172.25.254.106 parent 80 0 proxy-only round-robin
originserver name=web1
80指連接瀏覽器的端口,0指當服務器掛掉後沒有備用的(通過進入目錄/usr/share/doc/squid-3.3.8/squid.conf.documented(可以查看到本機沒有備用服務器)
proxy-only指只能代理
name=web1是給呈現出ip爲172.25.25.106中的內容(共享目錄下/var/www/html/index.html的內容)起的別名
round-robin用的是輪循方式
originserver說明爲哪一個域名服務(本機爲www.westos.com),只有設置這個參數纔會去識別round-robin(輪循)
1systemctl restart squid 重啓服務
2systemctl stop firewalld 關閉火牆
測試:
在真機裏測試:
1 vim /etc/hosts
2 172.25.254.206 www.westos.com
然後在瀏覽器輸入www.westos.com測試,發現出來的內容不一樣,刷新頻率,兩個頁面出現的頻率爲:“我好喜歡你”頁面出現一次,“聲之形”頁面出現兩次
注意:
1.兩個http服務端的防火牆要關閉
2.調度器不要安裝httpd,可能會佔用端口
3.輪循調度都是爲一個站點所服務的
4.在調度器不要設置dns(本機不做解析),否則會佔用端口