亚洲韩日午夜视频,欧美日韩在线精品一区二区三区,韩国超清无码一区二区三区,亚洲国产成人影院播放,久草新在线,在线看片AV色

您好,歡迎來到思海網絡,我們將竭誠為您提供優質的服務! 誠征網絡推廣 | 網站備案 | 幫助中心 | 軟件下載 | 購買流程 | 付款方式 | 聯系我們 [ 會員登錄/注冊 ]
促銷推廣
客服中心
業務咨詢
有事點擊這里…  531199185
有事點擊這里…  61352289
點擊這里給我發消息  81721488
有事點擊這里…  376585780
有事點擊這里…  872642803
有事點擊這里…  459248018
有事點擊這里…  61352288
有事點擊這里…  380791050
技術支持
有事點擊這里…  714236853
有事點擊這里…  719304487
有事點擊這里…  1208894568
有事點擊這里…  61352289
在線客服
有事點擊這里…  531199185
有事點擊這里…  61352288
有事點擊這里…  983054746
有事點擊這里…  893984210
當前位置:首頁 >> 技術文章 >> 文章瀏覽
技術文章

Linux系統中Squid代理服務器配置

添加時間:2016-2-2 19:18:21  添加: 思海網絡 
Linux系統中Squid代理服務器配置


什么是squid?

Squid是一個緩存internet數據的一個軟件,它接收用戶的下載申請,并自動處理所下載的數據。也就是說,當一個用戶象要下載一個主頁時,它向Squid發出一個申請,要Squid替它下載,然后Squid連接所申請網站并請求該主頁,接著把該主頁傳給用戶同時保留一個備份,當別的用戶申請同樣的頁面時,Squid把保存的備份立即傳給用戶,使用戶覺得速度相當快。目前,Squid 可以代理HTTP, FTP, GOPHER, SSL 和 WAIS 協議.

使用squid的好處:快速響應,減少網絡阻塞,增強訪問控制,提高安全性.可以針對特定的網站,用戶,網絡,數據類型實施訪問控制.

squid有3種代理方式:普通代理模式,透明代理模式,反向代理模式

1.普通代理模式

   一個標準的代理緩沖服務被用于緩存靜態的網頁(例如:html文件和圖片文件等)到本地網絡上的一臺主機上(即代理服務器)。當被緩存的頁面被第二次訪問的時候,瀏覽器將直接從本地代理服務器那里獲取請求數據而不再向原web站點請求數據。這樣就節省了寶貴的網絡帶寬,而且提高了訪問速度。但是,要想實現這種方式,必須在每一個內部主機的瀏覽器上明確指明代理服務器的IP地址和端口號。客戶端上網時,每次都把請求送給代理服務器處理,代理服務器根據請求確定是否連接到遠程web服務器獲取數據。如果在本地緩沖區有目標文件,則直接將文件傳給用戶即可。如果沒有的話則先取回文件,先在本地保存一份緩沖,然后將文件發給客戶端瀏覽器。


2.透明代理模式

   透明代理緩沖服務和標準代理服務器的功能完全相同。但是,代理操作對客戶端的瀏覽器是透明的(即不需指明代理服務器的IP和端口)。透明代理服務器阻斷網絡通信,并且過濾出訪問外部的HTTP(80端口)流量。如果客戶端的請求在本地有緩沖則將緩沖的數據直接發給用戶,如果在本地沒有緩沖則向遠程web服務器發出請求,其余操作和標準的代理服務器完全相同。對于Linux操作系統來說,透明代理使用Iptables或者Ipchains實現。因為不需要對瀏覽器作任何設置,所以,透明代理對于ISP(Internet服務器提供商)特別有用。

3.反向代理模式

    反向代理是和前兩種代理完全不同的一種代理服務。使用它可以降低原始WEB服務器的負載,又稱HTTP加速器。反向代理服務器承擔了對原始WEB服務器的靜態頁面的請求,它是一種通過在繁忙的WEB服務器和Internet之間增加一個高速的WEB緩沖服務器(即:WEB反向代理服務器)來降低實際的WEB服務器的負載.Web服務器加速(反向代理)是針對Web服務器提供加速功能的。它作為代理Cache,但并不針對瀏覽器用戶,而針對一臺或多臺特定Web服務器。只要將Reverse Proxy Cache設備放置在一臺或多臺Web服務器前端即可。當互聯網用戶訪問某個WEB服務器時,通過DNS服務器解析后的IP地址是Reverse Proxy Server的IP地址,而非原始Web服務器的IP地址,這時Reverse Proxy Server設備充當Web服務器,瀏覽器可以與它連接,無需再直接與Web服務器相連。因此,大量Web服務工作量被卸載到反向代理服務上。不但能夠防止外部網主機直接和web服務器直接通信帶來的安全隱患,而且能夠很大程度上減輕web服務器的負擔,提高訪問速度。


以下是squid反向代理實驗

有2臺服務器,1臺HTTP Server 10.1.1.200,端口80,有2個虛擬機主機www.testone.com www.testtwo.com提供服務

另一臺Squid Server為反向代理服務器,10.1.6.200

客戶機ip:10.1.6.173

測試: 客戶機訪問通過Squid Server 訪問HTTP Server. 這里需要在客戶機上修改/etc/hosts,添加二行10.1.6.200 www.testone.com
10.1.6.200 www.testtwo.com(為了讓客戶機能夠解析這2個域名對應ip為10.1.6.200 squid反向代理服務器的ip,監聽端口默認是3128)

Squid Server 修改/etc/hosts,添加二行10.1.1.200 www.testone.com
10.1.1.200 www.testtwo.com


安裝squid

代碼如下:
root@10.1.6.200:~# apt-get install squid

配置squid


代碼如下:
root@10.1.6.200:~# vim /etc/squid/squid.conf
http_port 3128 #http_port告訴squid在哪個端口監聽http請求,默認3128
http_port 10.1.6.200:80 vhost #這里vhost支持虛擬主機
cache_dir aufs /opt/squid/cache 200 16 256 #緩存目錄的設置,語法:<目錄> <MB大小> <dir1> <dir2>


代碼如下:
#定義acl(訪問控制列表),語法為:acl <acl 名稱> <acl類型> <配置的內容>
acl all src all
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8
acl localnet src 10.0.0.0/8 # RFC1918 possible internal network
acl localnet src 172.16.0.0/12 # RFC1918 possible internal network
acl localnet src 192.168.0.0/16 # RFC1918 possible internal network


代碼如下:
acl Safe_ports port 80
acl purge method PURGE
acl CONNECT method CONNECT
acl manager proto cache_object


代碼如下:
#利用前面定義的acl,定義訪問控制規則
http_access allow manager localhost
http_access deny manager
http_access allow purge localhost
http_access deny purge
http_access deny !Safe_ports
http_access allow all


代碼如下:
cache_mem 200 MB #如果物理內存很大,盡量設置大些
maximum_object_size 20 MB #最大緩存塊
maximum_object_size_in_memory 5 MB #與內存保存資料有關的配置


代碼如下:
#虛擬機主機代理配置,如從客戶端訪問www.testone.com,則Squid向www.testone.com的80端口發送請求.
cache_peer www.testone.com parent 80 0 no-query originserver name=one
cache_peer www.testtwo.com parent 80 0 no-query originserver name=two
cache_peer_domain one www.testone.com
cache_peer_domain two www.testtwo.com

代碼如下:
#設置squid用戶及用戶組
cache_effective_user proxy
cache_effective_group proxy

代碼如下:
#下面是關于日志文件
access_log /var/log/squid/access.log squid
cache_log /var/log/squid/cache.log
cache_store_log none

代碼如下:
mime_table /usr/share/squid/mime.conf
pid_filename /var/log/squid/squid.pid


代碼如下:
coredump_dir /var/spool/squid

設置緩存目錄權限為proxy,否則啟動會提示沒有權限

代碼如下:
root@10.1.6.200:opt# chown -R proxy:proxy squid/
root@10.1.6.200:opt# ll
total 8
drwxr-xr-x 3 proxy proxy 4096 2013-02-21 22:42 squid

在開啟squid服務之前,先檢查配置文件是否正確:(假如看不輸出,配置文件有效)

root@10.1.6.200:opt# squid -k parse

初始化cache目錄,即建立緩存目錄的存儲格式(在初次運行squid之前,或者增加了新的cache_dir,必須初始化cache目錄),cache目錄初始化可能花費一些時間,依賴cache目錄的大小和數量,要觀察詳細過程可以加-X選項.

代碼如下:
root@10.1.6.200:squid# squid -z
2013/02/22 20:31:10| Creating Swap Directories

啟動squid服務

代碼如下:
root@10.1.6.200:squid# /etc/init.d/squid start
Starting Squid HTTP proxy: squid.
root@10.1.6.200:squid# netstat -tunlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:39360 0.0.0.0:* LISTEN 1383/rpc.statd 
tcp 0 0 127.0.0.1:833 0.0.0.0:* LISTEN 1929/famd 
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1372/portmap 
tcp 0 0 10.1.6.200:80 0.0.0.0:* LISTEN 2491/(squid) 
tcp 0 0 0.0.0.0:22000 0.0.0.0:* LISTEN 1623/sshd 
tcp 0 0 0.0.0.0:3128 0.0.0.0:* LISTEN 2491/(squid) 
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1890/exim4 
udp 0 0 0.0.0.0:58152 0.0.0.0:* 2491/(squid) 
udp 0 0 0.0.0.0:3130 0.0.0.0:* 2491/(squid) 
udp 0 0 0.0.0.0:711 0.0.0.0:* 1383/rpc.statd 
udp 0 0 0.0.0.0:111 0.0.0.0:* 1372/portmap 
udp 0 0 0.0.0.0:59518 0.0.0.0:* 1383/rpc.statd 

這里不詳細講解HTTP Server 10.1.1.200配置虛擬主機過程,已分別配置好www.testone.com,www.testtwo.com虛擬主機


查看HTTP Server日志,會發現是Squid Server ip 請求數據.

代碼如下:
root@10.1.1.200:apache2# tail -f www.testone.com_access.log 
10.1.6.200 - - [22/Feb/2013:20:47:17 +0800] "GET / HTTP/1.0" 304 - "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; QQDownload 734; .NET4.0C; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)"

代碼如下:
root@10.1.1.200:apache2# tail -f www.testtwo.com_access.log 
10.1.6.200 - - [22/Feb/2013:20:49:07 +0800] "GET / HTTP/1.0" 304 - "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; QQDownload 734; .NET4.0C; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)"

以下是整個訪問原理過程:

     1.當客戶端在瀏覽器輸入:www.testone.com 通過本地/etc/hosts解析,域名www.testone.com對應的ip是10.1.6.200(Squid反向代理服務器),于是客戶端向Squid反向代理服務器默認3128端口發送請求,注意:在客戶端輸入www.testone.com和http://10.1.6.200是不一樣的,如果是通過ip請求,則不能實現讓Squid服務器對內部網絡多個服務器代理,需要使用域名方式.在 配置 Squid 時,有兩個選項,cache_peer 和 cache_peer_domain,這兩個配置項讓 Squid 有能力知道www.testone.com這個請求最終是想訪問HTTP服務器10.1.1.200的80端口,從而實現了 Squid 對內部多個服務器作代理的功能需求。

     2.Squid服務器收到客戶端發來的請求,一看是www.testone.com,從配置它知道請求HTTP服務器10.1.1.200的80端口.

     3.HTTP服務器提供服務監聽80端口,收到Squid發送來的請求,于是根據請求發送相應數據給Squid服務器.

     4.Squid收到HTTP服務器從80端口發送過來的數據后,會將該數據在本地緩存,同時將數據從自己的3128發送給客戶端10.1.6.173.

關鍵字:Linux、系統、Squid、服務器
分享到:

頂部 】 【 關閉
版權所有:佛山思海電腦網絡有限公司 ©1998-2024 All Rights Reserved.
聯系電話:(0757)22630313、22633833
中華人民共和國增值電信業務經營許可證: 粵B1.B2-20030321 備案號:粵B2-20030321-1
網站公安備案編號:44060602000007 交互式欄目專項備案編號:200303DD003  
察察 工商 網安 舉報有獎  警警  手機打開網站