作者 jypai@ns.tp.silkera.net ("Pai. Jin-Yuan"), 看板 WWW
標題 答: 什麼是proxy
時間 Computer Science & Information Engineering (Fri Apr 10 06:11:02 1998)
───────────────────────────────────────
幾乎每幾天就看到有人在問,"什麼是proxy", "我該用那一台proxy server",
"proxy有什麼用"...。
所以我寫了以下這個FAQ,每月定期投書。 希望新手不會一直重覆問這個問題,
也讓老手不需花時間回答這種入門問題,有時間去思考,回覆真正難的問題,進
而讓本區內容更加充實。這篇文章也歡迎有需要的人士引用,或收錄至精華區
(請註明出處)。
本文如有謬誤,歡迎來信或在網上討論。
原文摘錄自旗標出版社
"Internet進階書 --- 實務與理論" (http://www.flag.com.tw/new_book/#pi)
---------------------------------------------------------------------
4-5 Cache和Proxy server的原理及作用。
... (省略)
[區域網路proxy伺服器]
<<Proxy伺服器的角色>>
將cache的觀念再擴大,如果我們專門用一部電腦作為大家的快取區,
凡是要出去抓資料前,都先經過這部電腦檢查,真正沒有的資料才連線出去抓取,
那是不是會對加快速度和節省網路頻寬很有幫助呢?這部伺服器就稱作
proxy伺服器,其所處的地位如圖4-5所示。
《圖4-5 Proxy伺服器的角色》
抱歉,圖放不上來
圖4-5和4-3的差別在於多了一部proxy伺服器,
這部伺服器通常位於(網路位置上)離client很近的地方。任何由client出去的要求,
都會先經過proxy伺服器檢查。實際的流程如下:
步驟1: client告訴proxy,"我要foo.htm"。
步驟2: proxy檢查後,確定自己的快取區中的確沒有foo.htm,
於是真正連線到伺服器抓取foo.htm。如果發現自己的快取區中已有foo.htm,
就不連出去,同時直接跳至步驟4。
步驟3: WWW伺服器傳回foo.htm給proxy。
步驟4: proxy傳回foo.htm給client。
----------------------------------------------------------------------------
| 常見疑惑解答 |
+--------------+
Proxy伺服器究竟是什麼?
Proxy這個字的原意是代理,所以廣義來說,任何有代理身份的伺服器,
都可以稱作Proxy伺服器,而不僅限於HTTP proxy﹑FTP proxy...這些常見的用途。
但現在因為proxy伺服器最普遍的用途是HTTP proxy,用來加快使用者讀取WWW的速度,
所以變成一般人以為proxy伺服器是WWW專用的。
----------------------------------------------------------------------------
<<proxy可以省頻寬>>
如果proxy伺服器的快取區夠大(至少數百MB),使用者也多,
的確可以有效地減少圖4-5中步驟2和步驟3所造成的網路交通。節省下來的頻寬一般均在
40%~55%之譜,也就是說,每讀100MB的資料,就可以省下50MB的網路交通。
長期下來,可以省掉許多專線費用。例如若是不用proxy,公司現有的
128K專線就要昇級到256K才夠;但因為大家都用proxy,所以不需昇級。
這樣一年省下的費用可達24萬~80萬不等。
<<Proxy可以加速傳輸速度>>
Proxy另一個好處是速度快!因為proxy伺服器距離近,
所以傳輸速度快,可以避開要連到遠端網路所造成的網路塞車現象。
(請參考第二章關於網路速度方面的討論。)
既然proxy是為了要避開連到遠端網路所帶來的網路塞車,
那您選用proxy一定要選一個離自己近的伺服器,才能真正達到效益。
這個道理雖然很簡單,但在USENET討論區上仍經常可見到有人不分清紅皂白,
也不管自己所在的網路位置,就想用台灣大學的proxy伺服器。
正確的作法是使用自己所在單位或是所用ISP的proxy伺服器。
例如台大學生用台大內部的伺服器(如proxy.ntu.edu.tw);
HiNet用戶用HiNet的伺服器(proxy.hinet.net);
新絲路用戶用新絲路的伺服器(如proxy.tp.silkera.net)。
選錯伺服器,可能比不用proxy還要慢。除了因為路徑遙遠之外
(例如新絲路的用戶使用台大的proxy),另一個可能是用到負擔很重的伺服器。
有的大ISP在擴線的同時,忽略同時擴充proxy伺服器的效能,
造成數千人共用一部伺服器,速度之慢,可想而知。這種時候,您的正確做法是
關掉瀏覽器中proxy功能(還有順便抱怨一下 :))。
<<Proxy可能產生的問題>>
在上面的敘述中,proxy最主要的作用就是作為快取。
因此它和您瀏覽器中的快取功能同樣會遇到一個問題,
就是要確保資料的一致性。
一般default設定中,proxy伺服器都會連線至WWW伺服器,
確定快取區中的資料是最新的,再將資料送給client。但proxy伺服器通常也可以設定為
"只要是xx小時內才新抓的資料,就不必去WWW伺服器確認,直接傳回給client。"
這樣做,連圖4-5的步驟2所花的時間也省下來了。同樣地,
瀏覽器端只要按[Reload],仍然可以強制要求取得最新資料。
使用proxy還有另一個特點:即使您要求verify document every time,
但是當proxy無法對外連線時(如ISP整個對外的專線全部中斷),
它還是會傳回存在快取中的資料(如果有的話),而不給予錯誤訊息(例如告訴client
取不到最新的資料)。這是大部份proxy伺服器default的反應方式。
其實這對大部份的使用是很方便的,理由就如同上面所述,
大部份時間,我並不在乎取到的資料是不是絕對是最新的。可能很多時候,
大家並不想知道網路其實斷了;proxy 能給他一份資料(而不是回一個錯誤訊息),
雖然可能過期了,使用者反而比較高興。
<<我該使用那部proxy伺服器?>>
答案是,離您最近的那部proxy伺服器!
如果您是ISP的用戶,就使用該ISP所提供的伺服器。現在proxy伺服器已經成了必要配備A
所以每一家ISP都會提供,例如HiNet使用者用proxy.hinet.net﹑
SEEDNET使用者用proxy.seed.net.tw。
新絲路的作法則有些不同,
在每一個撥接點均有一部proxy伺服器(讓proxy伺服器儘量靠近使用者),
您應該使用這部伺服器。
例如台北使用者,他的電子郵件地址是foo@tp.silkera.net,
那他該用的伺服器就是proxy.tp.silkera.net;
高雄使用者的電子郵件地址是foo@ks.silkera.net,
那他所該用的伺服器就是proxy.ks.silkera.net...依此類推。
如果是學校的使用者,則使用學校的伺服器,
例如台大(ntu.edu.tw)使用者用台大的伺服器proxy.ntu.edu.tw,
交大(nctu.edu.tw)使用者用交大的伺服器proxy.nctu.edu.tw...。
說到這裡,您可能已經注意到了proxy伺服器的命名慣例,
就是
proxy + 該機構的domain-name
所以應該是很好記的。唯一要注意的是各家的伺服器用的port都不儘相同,
如HiNet用80﹑新絲路用8000...,因為這個值沒有一個統一的規定,
您必須問該機構的服務中心或管理者
"proxy.xxx.yyy所用的port是多少?"
才能得到肯定的答案。
很多初學者對proxy一知半解,只知道proxy有助於增加速度,
卻不知道挑錯伺服器反而適得其反。
例如網路上常有xxx ISP的使用者問台大proxy伺服器是那一部,
以為使用後可以幫他加快上網速度。
如果您用的ISP無法提供您滿意的proxy服務,您應該向ISP要求﹑
換一家ISP﹑或是關掉瀏覽器中proxy設定,而不是用一個遠端網路的proxy,
反而減慢存取速度,增加網路上的交通。
在TWNIC(TaiWan Network Information Center)有一個台灣proxy伺服器
的整理表,希望籍由proxy的使用,有效地降低網路交通流量。
有興趣的讀者可參考下面4個URL:
http://www.twnic.net/proxy.html
http://www.twnic.net/proxy/tanet.html
http://www.twnic.net/proxy/hinet.html
http://www.twnic.net/proxy/seednet.html
--
歡迎光臨 歡迎光臨 歡迎光臨 歡迎光臨 歡迎光臨 歡迎光臨 歡迎光臨
歡迎光臨 歡迎光臨 歡迎光臨 歡迎光臨 歡迎光臨 歡迎光臨 歡迎光臨
玫瑰園玫瑰園 玫瑰園 玫瑰園 玫瑰園 玫瑰園 玫瑰園 玫瑰園 玫瑰園
玫瑰園 玫瑰園 玫瑰園 玫瑰園 玫瑰園 玫瑰園 玫瑰園 玫瑰園
Writen byYES YES YES YESTER TER TER TERDAY DAY DAY DAY
※ 來源:‧玫瑰園資訊站 bbs2.ltc.edu.tw‧[FROM: h181.s11.ts32.hinet.]