亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用Squid部署代理緩存服務

發布時間:2020-07-23 08:58:28 來源:網絡 閱讀:569 作者:Joshua1013 欄目:系統運維

1,工作原理及作用:
Squid 是 Linux 系統中最為流行的一款高性能代理服務軟件,通常用作 Web 網站的前置緩存服務,能夠代替用戶向網站服務器請求頁面數據并進行緩存。
簡單來說,Squid 服務程序會按照收到的用戶請求向網站源服務器請求頁面、圖片等所需的數據,并將服務器返回的數據存儲在運行 Squid 服務程序的服務器上。
當有用戶再請求相同的數據時,則可以直接將存儲服務器本地的數據交付給用戶,這樣不僅減少了用戶的等待時間,還緩解了網站服務器的負載壓力。
Squid 服務程序具有配置簡單、效率高、功能豐富等特點,它能支持 HTTP、FTP、SSL等多種協議的數據緩存,
可以基于訪問控制列表(ACL)和訪問權限列表(ARL)執行內容過濾與權限管理功能,還可以基于多種條件禁止用戶訪問存在威脅或不適宜的網站資源,
因此可以保護企業內網的安全,提升用戶的網絡體驗,幫助節省網絡帶寬.
由于緩存代理服務不但會消耗服務器較多的 CPU 計算性能、內存以及硬盤等硬件資源,同時還需要較大的網絡帶寬來保障數據的傳輸效率,由此會造成較大的網絡帶寬開銷。
因此國內很多 IDC 或 CDN 服務提供商會將緩存代理節點服務器放置在二三線城市以降低運營成本.
工作模式:
Squid 服務程序為用戶提供緩存代理服務時,具有正向代理模式和反向代理模式之分。
正向代理模式,是指用戶通過Squid 服務程序獲取網站頁面等資源,以及基于訪問控制列表(ACL)功能對用戶訪問網站行為進行限制;在具體的服務方式上又分為標準代理模式和透明代理模式.
標準正向代理模式是把網站數據緩存到服務器本地,提高數據資源再次訪問時的效率,但是用戶在上網時必須在瀏覽器等軟件中填寫代理服務器的IP地址與端口號等信息,否則默認不使用代理服務器;
透明正向代理模式的作用和標準正向代理模式基本相同,區別是用戶不需要手動代理服務的IP地址和端口號,所以這種代理服務對于用戶是相對透明的.
反向代理模式是指讓多臺節點主機反向緩存網站數據,從而加快用戶訪問速度。因為一般來講,網站中會普遍加載大量的文字、圖片等靜態資源,
而且它們相對來說都是比較穩定的數據信息,當用戶發起網站頁面中這些靜態資源的訪問請求時,我們可以使用 Squid 服務程序提供的反向代理模式來進行響應。
而且,如果反向代理服務器中恰巧已經有了用戶要訪問的靜態資源,則直接將緩存的這些靜態資源發送給用戶,這不僅可以加快用戶的網站訪問速度,還在一定程度上降低了網站服務器的負載壓力.
總結來說,正向代理模式一般用于企業局域網之中,讓企業用戶統一地通過 Squid 服務訪問互聯網資源,這樣不僅可以在一定程度上減少公網帶寬的開銷,而且還能對用戶訪問的網站內容進行監管限制,一旦內網用戶訪問的網站內容與禁止規則相匹配,就會自動屏蔽網站。
反向代理模式一般是為大中型網站提供緩存服務的,它把網站中的靜態資源保存在國內多個節點機房中,當有用戶發起靜態資源的訪問請求時,可以就近為用戶分配節點并傳輸資源,因此在大中型網站中得到了普遍應用。
2,配置Squid服務程序
2-1,準備兩臺虛擬機,一臺作為Squid服務器,另一臺作用Squid客戶端(windows和linux都可用),兩臺虛擬機的網絡必須設置成僅主機模式(Hostonly),然后關閉Squid服務器,添加新網卡設置成橋接模式,用于訪問外網.
如果沒有物理網絡則使用NAT模式,共享主機上的WiFi,在本地WLAN中打開屬性,連接旁邊有個共享,勾選Internet連接共享,單擊家庭網絡連接,選擇你想通過那個虛擬網卡上網,點擊即可.
我們需要把Squid 服務程序部署在這臺虛擬機上,然后讓另外一臺原本只能訪問內網的虛擬機(即Squid 客戶端)通過 Squid 服務器進行代理上網,從而使得 Squid 客戶端也能訪問外部網站。
2-2,網絡模式配置好后,檢測是否可以訪問外網
ping www.baidu.com ping 百度的IP地址,出現反饋包即網絡暢通
2-3,yum -y install squid 安裝Squid服務程序包
出現Complete! 字樣安裝成功.
systemctl restart squid 重啟服務
systemctl enable squid 設置為開機啟動
2-4,Squid服務程序的配置文件也是放在/etc目錄下一個以服務名稱命名的目錄中.
常用的 Squid 服務程序配置參數以及作用
http_port 3128 監聽的端口號
cache_mem 64MB 內存緩沖區的大小
cache_dir ufs /var/spool/squid 2000 16 256 硬盤緩沖區的大小
cache_effective_user squid 設置緩存的有效用戶
cache_effective_group squid 設置緩存的有效用戶組
dns_nameservers [IP 地址] 一般不設置,而是用服務器默認的DNS 地址
cache_access_log /var/log/squid/access.log 訪問日志文件的保存路徑
cache_log /var/log/squid/cache.log 緩存日志文件的保存路徑
visible_hostname RHEL7 設置 Squid 服務器的名稱
3,正向代理
3-1,標準正向代理
Squid 服務程序軟件包在正確安裝并啟動后,默認就已經可以為用戶提供標準正向代理模式服務了,不需要單獨修改配置文件或者進行其他操作。
打開Windows10上的任意瀏覽器,找到工具,然后單擊"Internet 選項",找到"連接"選項卡,單擊"局域網設置",勾選自動減則配置,填寫代理服務起的IP地址和端口號.
設置完成后單擊確認,重新打開新網頁,成功訪問www.baidu.com.
如果訪問失敗,查看syslinux安全子系統,是否有監聽的端口號.
semanage port -l | grep squid_port_t 查看squid程序的端口號
3-2,ACL訪問控制
Squid 服務程序的 ACL 是由多個策略規則組成的,它可以根據指定的策略規則來允許或限制訪問請求,而且策略規則的匹配順序與防火墻策略規則一樣都是由上至下;在一旦形成匹配之后,則立即執行相應操作并結束匹配過程。
為了避免 ACL 將所有流量全部禁止或全部放行,起不到預期的訪問控制效果,運維人員通常會在 ACL 的最下面寫上 deny all 或者 allow all 語句,以避免安全隱患.
實驗1,只允許192.168.13.129的客戶端使用服務器上的Squid代理服務程序提供的代理服務,禁止其余所有的主機代理請求.
下面修改其主配置文件
vim /etc/squid/squid.conf
acl client src 192.168.13.129 在25行左右新起一行添加內容
http_access allow client 只允許client訪問
http_access deny all 禁止所有
修改客戶端的IP為192.168.13.130(只要不是129即可,我們需要作出錯誤的提示,即為實驗成功),可以看到網頁訪問失敗即為成功.
實驗2,禁止所有客戶端訪問網址中包含linux關鍵字的網站
vim /etc/squid/squid.conf
acl deny_keyword url_regex -i linux 在30行左右添加內容
http_access deny deny_keyword 拒絕訪問含有關鍵字
訪問www.linuxprobe.com 類似帶有linux的網站,含有關鍵字被拒絕訪問
實驗3,禁止所有客戶端訪問某個特定的網站
acl deny_url url_regex http://www.linuxcool.com 在33行左右添加內容
http_access deny deny_url 拒絕網站
訪問http://www.linuxcool.com 查看是否可以出現內容,報錯即為成功.
實驗4,禁止員工在企業網內下載帶有特定后綴的文件.
acl badfile urlpath_regex -i .rar$ .avi$ 在35行添加內容
http_access deny badfile 拒絕訪問
隨機找一個地址下載一個帶有rar后綴的文件,看是否可以下載,無法下載即為成功.
4,透明正向代理
透明代理模式中,用戶無須在瀏覽器或其他軟件中配置代理服務器地址、端口號等信息,而是由 DHCP 服務器將網絡配置信息分配給客戶端主機,這樣只要用戶打開瀏覽器便會自動使用代理服務了.
“透明”二字指的是讓用戶在沒有感知的情況下使用代理服務,這樣的好處是一方面不需要用戶手動配置代理服務器的信息,進而降低了代理服務的使用門檻;另一方面也可以更隱秘地監督員工的上網行為。
既然要讓用戶在無需過多配置系統的情況下就能使用代理服務,作為運維人員就必須提前將網絡配置信息與數據轉發功能配置好。
前面已經配置好的網絡參數,使用SNAT 技術完成數據的轉發,讓客戶端主機將數據交給 Squid 代理服務器,再由后者轉發到外網中。
簡單來說,就是讓 Squid 服務器作為一個中間人,實現內網客戶端主機與外部網絡之間的數據傳輸。
當前主機沒有配置SNAT功能,不能訪問外網.
要想讓內網中的客戶端主機能夠訪問外網,客戶端主機首先要能獲取到 DNS 地址解析服務的數據,這樣才能在互聯網中找到對應網站的 IP 地址。
下面通過 iptables 命令實現 DNS 地址解析服務 53 端口的數據轉發功能,并且允許 Squid 服務器轉發 IPv4 數據包。
sysctl -p 命令的作用是讓轉發參數立即生效:
iptables -F 清空當前防火墻策略表
iptables -t nat -A POSTROUTING -p udp --dport 53 -o eno33554952 -j MASQUERADE
vim /usr/lib/sysctl.d/00-system.conf 修改端口轉發配置文件
net.ipv4.ip_forward = 1 另起一行添加內容
sysctl -p 使配置文件生效
現在回到客戶端主機,再次 ping 某個外網地址。此時可以發現,雖然不能連通網站,但是此時已經能夠獲取到外網 DNS 服務的域名解析數據。
與配置 DNS 和 SNAT 技術轉發相比,Squid 服務程序透明代理模式的配置過程就十分簡單了,只需要在主配置文件中服務器端口號后面追加上 transparent 單詞(意思為“透明的”)
然后把第 62 行的井號(#)注釋符刪除,設置緩存的保存路徑就可以了。保存主配置文件并退出后再使用 squid -k parse 命令檢查主配置文件是否有錯誤
以及使用 squid -z 命令對 Squid服務程序的透明代理技術進行初始化
vim /etc/squid/squid.conf
httpport 3128 transparent
cache
dir ufs /var/spool/squid 100 16 256
squid -k parse 檢查主配置文件是否有錯誤
squid -z 初始化透明代理技術
下面就可以完成 SNAT數據轉發功能了。原理很簡單,使用 iptables 防火墻管理命令把所有客戶端主機對網站 80 端口的請求轉發至 Squid 服務器本地的 3128 端口上。
SNAT 數據轉發功能的具體配置參數如下。
iptables -t nat -A PREROUTING -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3218
iptables -t nat -A POSTROUTING -s 192.168.10.0/24 –o eno33554952 -j SNAT --to 您的橋接網卡 IP 地址
service iptables save 保存防火墻策略
使用客戶端刷新瀏覽器,就可以訪問了
5,反向代理
網站頁面是由靜態資源和動態資源一起組成的,其中靜態資源包括網站架構 CSS 文件、大量的圖片、視頻等數據,這些數據相對于動態資源來說更加穩定,一般不會經常發生改變。
但是,隨著建站技術的更新換代,外加人們不斷提升的審美能力,這些靜態資源占據的網站空間越來越多。
如果能夠把這些靜態資源從網站頁面中抽離出去,然后在全國各地部署靜態資源的緩存節點,這樣不僅可以提升用戶訪問網站的速度,而且網站源服務器也會因為這些緩存節點的存在而降低負載。
反向代理是 Squid 服務程序的一種重要模式,其原理是把一部分原本向網站源服務器發起的用戶請求交給 Squid 服務器緩存節點來處理。
但是這種技術的弊端也很明顯,如果有心懷不軌之徒將自己的域名和服務器反向代理到某個知名的網站上面,從理論上來講,當用戶訪問到這個域名時,也會看到與那個知名網站一樣的內容(有些詐騙網站就是這樣騙取用戶信任的)。
因此,當前許多網站都默認禁止了反向代理功能。開啟了 CDN(內容分發網絡)服務的網站也可以避免這種竊取行為。
如果開啟了防護功能的網站,就會出現網頁報錯(Internal Server Error).
使用 Squid 服務程序來配置反向代理服務非常簡單。首先找到一個網站源服務器的 IP 地址,然后編輯 Squid 服務程序的主配置文件,把端口號 3128 修改為網站源服務器的地址和端口號,此時正向解析服務會被暫停(它不能與反向代理服務同時使用)。
然后按照下面的參數形式寫入需要反向代理的網站源服務器的 IP 地址信息,保存退出后重啟 Squid 服務程序。
vim/etc/squid/squid.conf
http
port 你的橋接網卡IP地址:80 vhost
cache
_peer 你的橋接網卡IP地址 IP parent 80 0 originserver
systemctl restart squid
systemctl enable squid
訪問網頁成功.

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

富顺县| 怀化市| 绥棱县| 卢湾区| 天峻县| 铅山县| 营山县| 娄烦县| 赣榆县| 隆昌县| 察雅县| 正蓝旗| 牙克石市| 绍兴市| 会同县| 峡江县| 连平县| 揭西县| 高青县| 上饶县| 大同县| 中江县| 仙桃市| 五台县| 白河县| 临武县| 克什克腾旗| 寻乌县| 乌恰县| 三明市| 咸阳市| 阜宁县| 万盛区| 贡山| 磴口县| 台前县| 丹巴县| 青铜峡市| 全椒县| 红原县| 三都|