1.代理服務器原理
代理服務器接受到請求後,首先與訪問控制列表中的訪問規則相對照,如果滿足規則,則在緩存中查找是否存在需要的信息。
客戶端B向代理服務器提出相同的請求。代理服務器也首先與訪問控制列表中的訪問規則相對照。如果滿足規則,則將緩存中的信息傳送給客戶端B
2. Squid軟件的介紹
Squid是一種在Linux系統下使用的優秀的代理服務器軟件
Squid是一個緩存internet數據的一個軟件,它接收用戶的下載申請,並自動處理所下載的數據。也就是說,當一個用戶想要下載一個主頁時,它向Squid發出一個申請,要Squid替它下載,然後Squid 連接所申請網站並請求該主頁,接着把該主頁傳給用戶同時保留一個備份,當別的用戶申請同樣的頁面時,Squid把保存的備份立即傳給用戶,使用戶覺得速度相當快。
3. 案例利用squid實現代理服務器
(1).實驗所需設備 一臺裝有兩塊網卡linux操作系統的PC1,一個能連上internet的ip地址,一個局域網絡。
(2).PC1的外網卡ip地址設置爲能聯網的那個ip地址,內網卡ip地址設爲局域網的ip地址
4.CDN簡介
CDN的全稱是Content Delivery Network,即內容分發網絡。其基本思路是儘可能避開互聯網上有可能影響數據傳輸速度和穩定性的瓶頸和環節,使內容傳輸的更快、更穩定。通過在網絡各處放置節點服務器所構成的在現有的互聯網基礎之上的一層智能虛擬網絡,CDN系統能夠實時地根據網絡流量和各節點的連接、負載狀況以及到用戶的距離和響應時間等綜合信息將用戶的請求重新導向離用戶最近的服務節點上。其目的是使用戶可就近取得所需內容,解決 Internet網絡擁擠的狀況,提高用戶訪問網站的響應速度。
案例一(標準代理)
拓補圖:
squid服務器配置步驟:
1.[root@localhost Server]# rpm -ivh squid-2.6.STABLE21-3.el5.i386.rpm
2.vim /etc/resolv.conf //設置dns
文件內容增加:
2.vim /etc/resolv.conf //設置dns
文件內容增加:
1. nameserver 222.88.88.88
2. nameserver 222.85.85.85
3.vim /etc/squid/squid.conf //編輯配置文件
文件內容修改:
1. visible_hostname 192.168.2.100 //訪問不通時,地址反饋給客戶端
2. http_port 192.168.2.10:3128
3. http_access allow all //允許所有地址訪問
4.vim /etc/squid/squid.conf //控制部分修改
文件內容修改:
acl badip src 192.168.2.10/32
http_access deny badip //拒絕來源地址訪問
acl badip src 192.168.2.10/32
http_access deny badip //拒絕來源地址訪問
acl webip dst 192.168.101.254/32
http_access deny webip //拒絕訪問目的地址
http_access deny webip //拒絕訪問目的地址
acl webip dst 192.168.101.254/32
acl mangerip src 192.168.145.10/32
http_access deny !mangerip webip //只允許145.10訪問101.100
acl mangerip src 192.168.145.10/32
http_access deny !mangerip webip //只允許145.10訪問101.100
acl badweb dstdomain .sina.com.cn
http_access deny badweb //拒絕訪問域名爲sina.com.cn網址
http_access deny badweb //拒絕訪問域名爲sina.com.cn網址
acl worktime time MTWHF 08:00-18:00
http_access deny worktime(data 082918002012月日小時分年) //拒絕工作時間訪問
http_access deny worktime(data 082918002012月日小時分年) //拒絕工作時間訪問
acl worktime time MTWHF 08:00-18:00
acl badcontent urlpath_regex -i \.jpg$
http_access deny worktime badcontent //拒絕工作時間訪問不好的內容
acl badcontent urlpath_regex -i \.jpg$
http_access deny worktime badcontent //拒絕工作時間訪問不好的內容
acl badurl url_regex -i sina
http-access deny badurl //拒絕訪問網址內容帶有sina的網站
http-access deny badurl //拒絕訪問網址內容帶有sina的網站
5.重新啓動squid服務
service squid restart
客戶端配置:
內網地址不需要設置網關和dns,只需要打開代理服務器
如圖:
如圖:
客戶端測試:
客戶端能夠訪問到internet.
案例二(透明代理)
拓撲圖:
squid服務器配置步驟:
1.設置關於dns的nat轉換
[root@localhost ~]# iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -p udp --dport 53 -o eth1 -j MASQUERADE
命令說明:
-A :追加規則
-s :來源
--dport 53 :目標端口,DNS解析的協議端口是udp53 ,主服務器和備份服務器區域文件傳輸的協議端口是tcp53
-o :出口
-j :動作
MASQUERADE :地址僞裝
2.設置端口重定向
[root@localhost ~]# iptables -t nat -A PREROUTING -p tcp --dport 80 -i eth0 -j REDIRECT --to-ports 3128
3.vim /etc/squid/squid.conf //設置透明代理
[root@localhost ~]# iptables -t nat -A PREROUTING -p tcp --dport 80 -i eth0 -j REDIRECT --to-ports 3128
3.vim /etc/squid/squid.conf //設置透明代理
文件內容修改:
http_port 192.168.2.10:3128 transparent
4.vim /etc/sysctl.conf //打開數據包轉發能力
http_port 192.168.2.10:3128 transparent
4.vim /etc/sysctl.conf //打開數據包轉發能力
文件內容修改:
net.ipv4.ip_forward = 1
啓動轉發功能:
[root@localhost ~]#sysctl -p
net.ipv4.ip_forward = 1
啓動轉發功能:
[root@localhost ~]#sysctl -p
客戶端配置:
dns指向和網關參數:
客戶端測試:
C:\Documents and Settings\yang>ping www.baidu.com
C:\Documents and Settings\yang>ping www.baidu.com
Pinging www.a.shifen.com [119.75.217.56] with 32 bytes of
案例三(反向代理)
拓撲圖:
squid服務器配置步驟:
1.vim /etc/squid/squid.conf
文件內容修改:
1. http_access allow all
2. http_port 192.168.101.11:80 vhost
3. cache_peer 192.168.2.100 parent 80 0 originserver
linux的web服務器配置步驟:
1.[root@localhost Server]# rpm -ivh httpd-2.2.3-22.el5.i386.rpm
2.[root@localhost ~]# echo "hello" >/etc/www/html/index.html
3.[root@localhost Server]# rpm -ivh lynx-2.8.5-28.1.el5_2.1.i386.rpm
4.[root@localhost Server]# lynx http://127.0.0.1如圖:
網絡中客戶端配置:
外網客戶端測試:
外網訪問squid服務器的外端口地址
外網訪問squid服務器的外端口地址
見圖: