- ·上一篇教程:給阿骁兄的賀禮二: DNS 流量統計~超強版
- ·下一篇教程:[原创]AIX的域名服务
一个疑问:为何某些门户网站直接输入IP地址却无法访问
为什么我直接在浏览器中输入http://www.sina.com.cn就可以打开新浪,而输入
http://218.30.108.59就显示如下错误信息呢
ERROR
The requested URL could not be retrieved
--------------------------------------------------------------------------------
While trying to retrieve the URL: http://218.30.108.59/
The following error was encountered:
Access Denied.
Access control configuration prevents your request from being allowed at this
time. Please contact your service provider if you feel this is incorrect.
Your cache administrator is webmaster.
--------------------------------------------------------------------------------
Generated Wed, 20 Oct 2004 00:35:04 GMT by 108-59.sina.com.cn (squid/2.5.STABLE5)
218.30.108.59是我执行ping www.sina.com.cn得到的一个对应IP地址,我试了试其他的一些
门户网站,结果都是这样。请问这是什么原因?
| ricky7849 回复于:2004-10-20 08:50:49 |
| 其实可能和sina的网络架构有关,我ping www.sina.com.cn 后61.172.201.233,我估计可能有转NAT地址映射的问题,不过具体怎么做我也不是很清楚,也可能是sina.com做的小技巧来防止别人通过ip直接访问,还是希望有高手来指点 :) |
| tjyihui 回复于:2004-10-20 09:18:56 |
| 不只sina,向sohu,163等等都是如此,这些网站的共同点就是采用了集群技术,就是有许多web服务器同时提供web服务,一个服务器对应一个IP地址,不管是218.30.108.59还是61.172.201.233都只是其中的一台服务器而已。但具体网站是如何设置的还真不清楚。 |
| abel 回复于:2004-10-20 10:49:35 |
| 可以猜測是反向代理(R-Proxy) .. 由 R-Proxy (你寫的那個 IP) ,看到 www 時,根據 Request URI 導到適當位置. |
| coolgg 回复于:2004-10-20 12:37:30 |
| 这个应该还与web服务器设置有关,web服务器如果运行在虚拟主机状态下,看到请求的url里面域名的位置是ip地址而不是域名时就不知道用户到底请求的内容是什么了。 关于集群,曾经有一家门户网站来和我们推荐过他们一种技术,就是把本来应该是根据用户请求动态生成的网页先抓成静态页面然后放在多台服务器上,用Layer4-7层交换机根据url的特征来进行负载均衡。每台服务器只负责其中一部分网页的服务(实际上就象cache一样)。 在这种架构下,更加不可能靠输入ip地址来打开网页了。 |
| abel 回复于:2004-10-20 13:05:26 |
| 嗯~商業版有商業版的 Solution ..但價值有待商確... Open Source 的東西基本上就可以解決了 sina.com.cn 跑的是 Squid 反向代理,根據我的經驗 及樓主的訊息來看 [quote:17abc3e7c8]Generated Wed, 20 Oct 2004 00:35:04 GMT by 108-59.sina.com.cn (squid/2.5.STABLE5) [/quote:17abc3e7c8] 可以用下面來測試: [code:1:17abc3e7c8] telnet 218.30.108.59 80 Trying 218.30.108.59... Connected to 218.30.108.59. Escape character is '^]'. GET http://www.sina.com.cn HTTP/1.1[/code:1:17abc3e7c8] 你就會看到 sina 的網頁.但這個command 是一般代理的命令 [code:1:17abc3e7c8] telnet 218.30.108.59 80 Trying 218.30.108.59... Connected to 218.30.108.59. Escape character is '^]'. GET / HTTP/1.0 Host: www.sina.com.cn[/code:1:17abc3e7c8] 這個 command 則是一般 HTTP Request 他也會導出相同頁面,但這個業面根據上一個例子,我們可以猜測 是運行反向代理 (也就是 www.sina.com.cn 的 A 記錄指向是 Proxy Server, 非 Web Server) 至於樓主的例子會變成這樣的 command (不懂的話要先研究 HTTP Protocol) [code:1:17abc3e7c8] telnet 218.30.108.59 80 Trying 218.30.108.59... Connected to 218.30.108.59. Escape character is '^]'. GET / HTTP/1.0 Host: 218.30.108.59[/code:1:17abc3e7c8] 不同的 Http Request 有不同的回應 我們再試一個代理測試: [code:1:17abc3e7c8]telnet 218.30.108.59 80 Trying 218.30.108.59... Connected to 218.30.108.59. Escape character is '^]'. GET http://www.kimo.com.tw HTTP/1.0[/code:1:17abc3e7c8] 上述是 HTTP/1.0 會出現 Access Deny 下面是 HTTP/1.1 Squid 回應 302 (就是要你自己去找目的,他不代理) [code:1:17abc3e7c8]telnet 218.30.108.59 80 Trying 218.30.108.59... Connected to 218.30.108.59. Escape character is '^]'. GET http://www.kimo.com.tw HTTP/1.1[/code:1:17abc3e7c8] 同樣的功能 Apache 本身也有,就在 mod_proxy* 這個 DSO 中 不然也可以找 Pound: http://www.apsis.ch/pound 原理都一樣,用 Layer 4+ Switch 技術的話,也有 L4 以上的做法 但價錢恐怕就不便宜了 |
| coolgg 回复于:2004-10-20 14:05:19 |
| 新浪也真够节约的,用squid来做,不错不错。 自己有技术能力可以省下很多成本呀。 估计论坛里面也有sina的技术人员出没,不知道他们会不会看到这个帖子。 |
| wingger 回复于:2004-10-20 16:57:25 |
| 这个和WEB服务器的设置有关,和DNS没有关系 一个IP可以对应N个虚拟主机 可以IP没有作为主机名,就不能用IP访问,而只能用域名访问啦 前提是你的域名已注册,并正确解析了 |
| abel 回复于:2004-10-20 17:16:12 |
| 這是用 新網 DNS 解到的 www.sina.com.cn 資料: [code:1:c02d5b1585] www.sina.com.cn. 60 IN CNAME jupiter.sina.com.cn. jupiter.sina.com.cn. 60 IN CNAME pavo.sina.com.cn. pavo.sina.com.cn. 60 IN A 210.51.179.88 pavo.sina.com.cn. 60 IN A 210.51.179.89 pavo.sina.com.cn. 60 IN A 210.51.179.90 pavo.sina.com.cn. 60 IN A 210.51.179.91 [/code:1:c02d5b1585] 這個是用 台灣的DNS 解到的 www.sina.com.cn 資料: [code:1:c02d5b1585] ;; ANSWER SECTION: www.sina.com.cn. 43 IN CNAME jupiter.sina.com.cn. jupiter.sina.com.cn. 43 IN CNAME libra.sina.com.cn. libra.sina.com.cn. 44 IN A 61.135.153.184 libra.sina.com.cn. 44 IN A 61.135.152.65 libra.sina.com.cn. 44 IN A 61.135.152.66 libra.sina.com.cn. 44 IN A 61.135.152.67 libra.sina.com.cn. 44 IN A 61.135.152.68 libra.sina.com.cn. 44 IN A 61.135.152.69 libra.sina.com.cn. 44 IN A 61.135.152.70 libra.sina.com.cn. 44 IN A 61.135.152.71 libra.sina.com.cn. 44 IN A 61.135.152.72 libra.sina.com.cn. 44 IN A 61.135.152.73 libra.sina.com.cn. 44 IN A 61.135.153.178 libra.sina.com.cn. 44 IN A 61.135.153.179 libra.sina.com.cn. 44 IN A 61.135.153.180 libra.sina.com.cn. 44 IN A 61.135.153.181 libra.sina.com.cn. 44 IN A 61.135.153.182 libra.sina.com.cn. 44 IN A 61.135.153.183 [/code:1:c02d5b1585] 很顯然的, sina.com.cn 使用 view 來分流... 另外,上述 IP 我都測了幾個,都是 squid , 所以它還用了反向代理功能 反向代理通常也會有 Load Balance/redundancy 的效果在 至於有沒有用 L4+ Switch 從這邊我們無法知道. 但若我們看 sina.com.cn 的 MX ,我估計是有的,因為把那些 MX 的IP ,各加幾碼或減幾碼拿來試 ,跑的都是 qmail 所以,Web 有沒有用L4 我們不知道, MX 估計是有的 |
| coolgg 回复于:2004-10-20 20:07:06 |
| 我记得缓存服务器间好像还有一个ICP协议,可以用来定位请求的object在什么位置,可以帮助负载均衡. squid好像实现了ICP的. |
| wingger 回复于:2004-10-20 20:10:09 |
| 大的门户网站一般都有分流 |
| tjyihui 回复于:2004-10-20 20:39:35 |
| 真是开眼界呀,看来要学的东西还不少呀。 |
| abel 回复于:2004-10-20 20:51:15 |
| 您可以多看看, 不懂可以來問, 這些東西或概念有時都是 點-線-面,慢慢累積的,不太可能一下就能到了 另外,就 HTTP Request Command 或 proxy 或 ICP 等 這些有時候除了看教學外,最重要的是要看懂 "標準" 不是看懂使用 |
| tjyihui 回复于:2004-10-20 22:29:22 |
| 晚上在一个BLOG上看到一篇好文章,分析的很棒 中国顶级门户网站架构分析1、2 http://blog.csdn.net/marcolu/archive/2004/07/27/53890.aspx http://blog.csdn.net/marcolu/archive/2004/07/30/56461.aspx |
| abel 回复于:2004-10-21 03:11:38 |
| [quote:fbdfdec936] HTTP/1.0 200 OK Date: Fri, 30 Jul 2004 05:49:47 GMT Server: Apache/2.0.49 (Unix) Last-Modified: Fri, 30 Jul 2004 05:48:16 GMT Accept-Ranges: bytes Vary: Accept-Encoding Cache-Control: max-age=60 Expires: Fri, 30 Jul 2004 05:50:47 GMT Content-Length: 180747 Content-Type: text/html Age: 37 X-Cache: HIT from sqsh-230.sina.com.cn Connection: close [/quote:fbdfdec936] 嗯,上面的 Link 感覺沒有交特清楚,或不太對的觀念,原作者的說明: [quote:fbdfdec936] 上面是sina的http头的反馈信息。里面有很多有价值的东东哦:)譬如,它后面的apache是用2.0.49,还设了过期时间为2分钟。最后修改时间。这些都是要在编译apache的时候载入的,特别是Last-Modified还需要小小的改一把源码--至少我是这样做的。 [/quote:fbdfdec936] HTTP/1.0 200 OK 這大家都知道 Date: 代表 Web 的 Response 時間,若這個時間不變,基本上可以猜測是 Proxy Server 回應的,也就是 Proxy Server 真正去 sina 後台抓這一頁的時間點 Server: 後台被代理的 Web 版本 Last-Modified: Request 的檔案最後修改時間,也就是你 ls -l 看到的時間,不懂該篇所提的含意 Vary: 這個欄位我不懂,沒有特別研究,但覺得 RFC 2616 有交待不明確的感覺 Cache-Control: max-age=60 每60秒後的 Request 檢查後面的 Web 本頁有無更新,會和 Age: 有關 Expires: 本頁過期時間. Expires 和 Cache-Control 同時存在時,將以 Cache-Control 為運作機制) Content-Length: 180747 Content-Type: text/html 這兩個大家都知道,但有時要多注意 1.1 中的 Transfer-Encoding: chunked 狀況 Ex: http://bbs.chinaunix.net/forum/viewtopic.php?t=417548 Age: 現在 Cache 的秒數,依本例若超過 60 頁面更新查詢,若 Last-Modified 有異則更新頁面的 Cache,並從0起記 X-Cache: 表示是由 Cache 回應,有 Age 值即有此欄為 HIT,不然為 MISS xxxx..... Connection: close 由於這是 Proxy 回的,所以通常為 Close,也就是 Server 丟出 Response 後就會 Close Connection. 每一次 HTTP 的請求及回應都會一個新的 Connection. 另外一種狀況為 Keep-Alive,通常會由 Keep-Alive: Header 說明其連線時間,ex: timeout=20, max=99 ,IDLE timeout 為20秒 最多使用 99 秒在同一個 http connection 中 其他欄位...有看到再說囉,當然,我的認知也可能有錯,若有錯希望您能告訴我. 熟知原理,標準,你就可以知道作法,只是外面的套子有點不同而以. 至於原貼提到的 Raid 或 NFS,這個重遠端並無法知道,只能用猜. 是不是二層反向代理,我個人猜測是沒有的,原因是你對 www.sina.com.cn 做 HTTP Protocol 實驗即知: [code:1:fbdfdec936] for ip in `dig @168.95.1.1 www.sina.com.cn|grep '^libra' | awk '{print $5}'` do echo $ip;echo -e "GET / HTTP/1.1\nHost: www.sina.com.cn\n\n"| nc $ip 80 | sed -n '1,20p'|grep -E 'Date|Last-|Expire' done [/code:1:fbdfdec936] 結果: [code:1:fbdfdec936] 61.135.153.183 Date: Wed, 20 Oct 2004 18:42:30 GMT Last-Modified: Wed, 20 Oct 2004 18:41:47 GMT Expires: Wed, 20 Oct 2004 18:43:30 GMT 61.135.153.184 Date: Wed, 20 Oct 2004 18:42:54 GMT Last-Modified: Wed, 20 Oct 2004 18:41:47 GMT Expires: Wed, 20 Oct 2004 18:43:54 GMT 61.135.152.65 Date: Wed, 20 Oct 2004 18:42:04 GMT Last-Modified: Wed, 20 Oct 2004 18:41:47 GMT Expires: Wed, 20 Oct 2004 18:43:04 GMT 61.135.152.66 Date: Wed, 20 Oct 2004 18:42:12 GMT Last-Modified: Wed, 20 Oct 2004 18:41:47 GMT Expires: Wed, 20 Oct 2004 18:43:12 GMT 61.135.152.67 Date: Wed, 20 Oct 2004 18:43:54 GMT Last-Modified: Wed, 20 Oct 2004 18:41:47 GMT Expires: Wed, 20 Oct 2004 18:44:54 GMT 61.135.152.68 Date: Wed, 20 Oct 2004 18:42:15 GMT Last-Modified: Wed, 20 Oct 2004 18:41:47 GMT Expires: Wed, 20 Oct 2004 18:43:15 GMT 61.135.152.69 Date: Wed, 20 Oct 2004 18:42:05 GMT Last-Modified: Wed, 20 Oct 2004 18:41:47 GMT Expires: Wed, 20 Oct 2004 18:43:05 GMT 61.135.152.70 Date: Wed, 20 Oct 2004 18:44:41 GMT Last-Modified: Wed, 20 Oct 2004 18:41:47 GMT Expires: Wed, 20 Oct 2004 18:45:41 GMT 61.135.152.71 Date: Wed, 20 Oct 2004 18:42:41 GMT Last-Modified: Wed, 20 Oct 2004 18:41:47 GMT Expires: Wed, 20 Oct 2004 18:43:41 GMT 61.135.152.72 Date: Wed, 20 Oct 2004 18:42:34 GMT Last-Modified: Wed, 20 Oct 2004 18:41:47 GMT Expires: Wed, 20 Oct 2004 18:43:34 GMT 61.135.152.73 Date: Wed, 20 Oct 2004 18:43:50 GMT Last-Modified: Wed, 20 Oct 2004 18:41:47 GMT Expires: Wed, 20 Oct 2004 18:44:50 GMT 61.135.152.74 Date: Wed, 20 Oct 2004 18:42:34 GMT Last-Modified: Wed, 20 Oct 2004 18:41:47 GMT Expires: Wed, 20 Oct 2004 18:43:34 GMT 61.135.152.75 Date: Wed, 20 Oct 2004 18:44:49 GMT Last-Modified: Wed, 20 Oct 2004 18:41:47 GMT Expires: Wed, 20 Oct 2004 18:45:49 GMT 61.135.153.180 Date: Wed, 20 Oct 2004 18:42:53 GMT Last-Modified: Wed, 20 Oct 2004 18:41:47 GMT Expires: Wed, 20 Oct 2004 18:43:53 GMT 61.135.153.181 Date: Wed, 20 Oct 2004 18:42:10 GMT Last-Modified: Wed, 20 Oct 2004 18:41:47 GMT Expires: Wed, 20 Oct 2004 18:43:10 GMT 61.135.153.182 Date: Wed, 20 Oct 2004 18:42:06 GMT Last-Modified: Wed, 20 Oct 2004 18:41:47 GMT Expires: Wed, 20 Oct 2004 18:43:06 GMT [/code:1:fbdfdec936] 這個 IP List (www.sina.com.cn) 不見得和你一樣,但你可以發現 Date 多不同,若有兩次反向代理,應該會分成幾個群才是 Last-Modified 可以看出大概是同一來源,所以理論上,用戶最多全 touch 到最 Fresh 的最新的首頁(後台),一天最多不過 1440 次(MISS), 就算跑個 100 台 squid,144000 次對一般的 Apache Server 而言,並不算什麼,尤其又平均拆到一分鐘去算 至於動態頁面的 Cache 估計也是有做(如搜尋功能),且 Cache 時間應會遠比首頁來的長很多,主要即是看頁面更新頻率,來決定 Cache-Control 時間 用新網來試的例子: [code:1:fbdfdec936] for ip in `dig @210.51.170.66 www.sina.com.cn|grep '^pavo' | awk '{print $5}'` do echo $ip;echo -e "GET / HTTP/1.1\nHost: www.sina.com.cn\n\n"| nc $ip 80 | sed -n '1,20p'|grep -E 'Date|Last-|Expire|Age|Cache-'; done [/code:1:fbdfdec936] [code:1:fbdfdec936] 210.51.179.89 Date: Wed, 20 Oct 2004 19:04:15 GMT Last-Modified: Wed, 20 Oct 2004 18:41:47 GMT Cache-Control: max-age=60 Expires: Wed, 20 Oct 2004 19:07:21 GMT Age: 89 210.51.179.90 Age: 125 Date: Wed, 20 Oct 2004 19:05:23 GMT Expires: Wed, 20 Oct 2004 19:06:23 GMT Cache-Control: max-age=60 Last-Modified: Wed, 20 Oct 2004 18:41:47 GMT 210.51.179.91 Date: Wed, 20 Oct 2004 18:53:55 GMT Last-Modified: Wed, 20 Oct 2004 18:41:47 GMT Cache-Control: max-age=60 Expires: Wed, 20 Oct 2004 18:57:09 GMT Age: 9 210.51.179.88 Date: Wed, 20 Oct 2004 19:04:43 GMT Last-Modified: Wed, 20 Oct 2004 18:41:47 GMT [/code:1:fbdfdec936] 發現有什麼狀況嗎 ? |
| dingjeff 回复于:2004-10-23 15:50:13 |
| sina.com.cn 跑的是 Squid 反向代理 前面有人将过负载的问题。 |
| temin 回复于:2004-10-25 16:42:16 |
| 好贴,顶 留念 |
| moomoon 回复于:2004-10-28 08:52:38 |
| 虚拟主机拉。看看www.036.com.cn和211.98.28.1同样的拉。 |
| abel 回复于:2004-10-28 11:50:09 |
| [quote:6535cc4fa5="moomoon"]虚拟主机拉。看看www.036.com.cn和211.98.28.1同样的拉。[/quote:6535cc4fa5] 請教,您如何證明 www.sina.com.cn 是 VirtualHost 呢 !? |
| wingger 回复于:2004-10-28 19:35:59 |
| VirtualHos可以做成只有域名才能访问, 当然也有可能是因为代理 |
| judi 回复于:2004-10-29 12:08:04 |
| 楼上的说的很好! :P |
| judi 回复于:2004-10-29 12:09:12 |
| 多IP对应一个域名,一个IP有多个域名,还是不太懂! |
| abel 回复于:2004-10-29 13:54:19 |
| [quote:05cad1cf9e] VirtualHos可以做成只有域名才能访问, 当然也有可能是因为代理 [/quote:05cad1cf9e] 是的,但是重點是如何驗證這個站是 VH 或是代理 這種狀況要懂 Protocol ,才有辨法驗證,透過 HTTP header 就可以知道了 [quote:05cad1cf9e]多IP对应一个域名,一个IP有多个域名,还是不太懂! [/quote:05cad1cf9e] www IN A 1.2.3.4 www IN A 1.2.3.5 www IN A 1.2.3.6 www1 IN A 1.2.3.4 www2 IN A 1.2.3.4 這樣您可以理解嗎 ? |
| wingger 回复于:2004-10-29 22:18:16 |
| [quote:1618b0a7ca="abel"] 同樣的功能 Apache 本身也有,就在 mod_proxy* 這個 DSO 中 不然也可以找 Pound: http://www.apsis.ch/pound 原理都一樣,用 Layer 4+ Switch 技術的話,也有 L4 以上的做法 但價錢恐怕就不便宜了[/quote:1618b0a7ca] 不好意思, :oops: :oops: :oops: 你这几个命令都一样, 结果 [code:1:1618b0a7ca]GET http://www.sina.com.cn HTTP/1.1 GET / HTTP/1.0 Host: www.sina.com.cn GET / HTTP/1.0 Host: 218.30.108.59 GET http://www.kimo.com.tw HTTP/1.1[/code:1:1618b0a7ca] 为啥呢??? |
| abel 回复于:2004-10-30 00:31:43 |
| [quote:7e17898f76]你这几个命令都一样, 结果 代码: GET http://www.sina.com.cn HTTP/1.1 GET / HTTP/1.0 Host: www.sina.com.cn GET / HTTP/1.0 Host: 218.30.108.59 GET http://www.kimo.com.tw HTTP/1.1 为啥呢???[/quote:7e17898f76] 看不懂你的問題,是說你 telnet 218.30.108.59 80 後送這些 http command 後,結果都一樣嗎 ? 不可能吧 [code:1:7e17898f76] $>echo -e "GET / HTTP/1.0\nHost: 218.30.108.59\n\n" | nc 218.30.108.59 80 | sed -n '1,30p' HTTP/1.0 403 Forbidden Server: squid/2.5.STABLE5 Mime-Version: 1.0 Date: Fri, 29 Oct 2004 16:15:30 GMT Content-Type: text/html Content-Length: 1052 Expires: Fri, 29 Oct 2004 16:15:30 GMT X-Squid-Error: ERR_ACCESS_DENIED 0 X-Cache: MISS from 108-59.sina.com.cn Proxy-Connection: close[/code:1:7e17898f76] 不從結果看,為什麼用上述 "GET ...HOST: IP" 您了解嗎 ? 把 IP 改成名稱又代表什麼意義呢 ? GET http://www.sina.com.cn HTTP/1.1 在 HTTP 來看代表什麼意義? 當然,大家都可以理所當然的想 "大站會有分流" "可能是反向代理" "可能是 VH" .....一直的理所當然下去 |
| coolgg 回复于:2004-10-30 13:09:21 |
| 我感觉这个问题目前abel先生已经分析得非常清楚了。 说“可能是虚拟主机”的朋友可以从头看起慢慢把abel的分析看完再发表意见不迟。 如果想要更进一步的信息,就需要sina的技术人员出来说说了。不过估计他们会认为是商业秘密吧:) |
| wingger 回复于:2004-10-30 18:42:26 |
| 呵呵,现在明白了 :lol: :lol: :lol: 谢谢 |
| china_cnpp 回复于:2004-11-02 16:15:49 |
| 我公司的网站也是如此做的,不是什么dns与IP的关系,是交换机的问题 |
| abel 回复于:2004-11-03 11:40:56 |
| [quote:560f9a1893="china_cnpp"]我公司的网站也是如此做的,不是什么dns与IP的关系,是交换机的问题[/quote:560f9a1893] 若純粹以交換機來做 WWW 的分流,我相信貴公司一定很有錢 一般來說,WWW 負載平衡有幾種做法: 1. 交換機做法,依請求來分流,發佈的 IP 只有一個或少數幾個,但透過交換機的功能,導到交換 機下的某些其他主機 2. 透過 DNS 的 Round Robin 機制,隨機選取 IP 進行連接,意義等同於 (1),但可跨物理區隔 3. 透過 DNS 的 Round Robin + View 功能,達到同 (1)(2) 效果,並且具有依 Source IP 不同, 連接到不同 WWW Server 之功能 4. 透過反向代理 (Reverse Proxy) 可以達到負載平衡,減少 Disk I/O 存取,例如一般的 Apache 即有的功能(Apache 效能可能沒有 squid or pound 等好) 5. LVS 或 HA 做法..或其他方法,非本處主題 Ex: [code:1:560f9a1893] # DNS 分別有 www1/www2/www3 A 記錄 #Apache 1.3 example 1, 負載平衡需要 RewriteMap <IfModule mod_proxy.c> ProxyRequests On NoCache * ProxyPassReverse / http://www1.chinaunix.com/ ProxyPassReverse / http://www2.chinaunix.com/ ProxyPassReverse / http://www3.chinaunix.com/ </IfModule> [/code:1:560f9a1893] [code:1:560f9a1893] # DNS www.chinaunix.com 為 CNAME , 到 www1/www2/www3 即同上理 # DNS 要允許 multiple cname #Apache 1.3 example 1, 負載平衡不需要 RewriteMap <IfModule mod_proxy.c> ProxyRequests On NoCache * ProxyPassReverse / http://www.chinaunix.com/ </IfModule> [/code:1:560f9a1893] [code:1:560f9a1893] #squiud 部份設定, 只允許代理到 .chinaunix.com 的請求 # 例如 www.chinaunix.com 的 Address 需設定到這台 Proxy # 但此部 proxy 需在 /etc/hosts 中建立後台 www.chinaunix.com 的位址 # (因為 DNS 巳指定了 www.chinaunix.com 的位址) http_port 80 httpd_accel_host virtual httpd_accel_single_host off httpd_accel_port 80 httpd_accel_uses_host_header on httpd_accel_with_proxy on # accelerater my domain only acl mydomain dstdomain www.chinaunix.com http_access allow mydomain # ...其他 acl 略 [/code:1:560f9a1893] 我們可以看到Apche NoCache 項目,收到一個請求,導到後台中三台任一台, 不做 Cache , 這樣做和交換機做有什麼差別呢 ? 重點是 Apache 不用錢! 唯 Apache 在 R-Proxy 上的表現效果較沒有 Squid 或 Pound 好,但個人用意 只在說明,了解原理及技巧,可以省下很多銀子.更何況若上面三台你有一台掛了 並不會影響前端的請求,Apache R-Proxy 還是可以正確顯示頁面. (http://httpd.apache.org/docs/mod/mod_proxy.html) 至於 Squid 也可以不做 Cache ,每次都到後台抓,也可以做 Cache , 但根據前幾篇 我所提到的問題,若每個 html 或動態頁面都要產生 Cache-Control 或是 Expire, 顯然會很費事,透過 Apache 的 mod_expires (http://httpd.apache.org/docs/mod/mod_expires.html) [code:1:560f9a1893] ExpiresByType text/html "access plus 1 hours" ExpiresByType image/gif "access plus 1 month" # 當然, squid 中也有可以設定類似這個功能的地方 [/code:1:560f9a1893] 就可以實現讓做 Cahce 的 R-Proxy , 每一小時才做頁面(text/html)更新的動作 gif 圖檔一個月才做更新動作 ... 我們再想想,為什麼用反向代理的問題,如果您用交換機做或方法 (2) 做的話,會存 在每部 WWW Server 資料同步問題,當然不做 Cache 導向後台N 部這種做法亦同. 做反向代理緩存,不就存在這些問題了,因為時候到(Expire),有新的請求時他自然會去更新 及前面我寫的部份,我才能推論, www.sina.com.cn 是 (3)+(4) 的組合 只要對 protocol 及工具的了解夠,不見得要花太多錢,更何況, sina 這種做法 有 Source IP 特性分流,及能夠跨不同的實體位址(交換機的分流做法是每部 WWW 都得在同一部交換機後),同步問題.....我相信是一個相當好的做法,交換機做法 我只要打跨你的實體線路流量就全掛了. |
| caosir 回复于:2004-12-06 03:57:24 |
| 如果被新浪的SA看到了,他们牙会笑掉了,呵呵。 GSLB CDN 而不是什么apache dns :m01: |
| dankey 回复于:2004-12-06 11:21:59 |
| 用域名可以访问,用IP不能访问,这个用虚拟主机也可以实现这样的功能。 我想应该是虚拟主机方面的东西。而不是什么代理方面的。 |
| abel 回复于:2004-12-06 13:41:44 |
| GSLB CDN ? 本質是什麼,怎麼做您知道嗎 !? 如何從外部判斷 GSLB CDN 您知道嗎 ? 為什麼前面的 分析不對,您可明白說說嗎 !? GSLB 也不過是 Reverse Proxy 的一種表現而以 |
| caosir 回复于:2004-12-06 16:49:52 |
| GSLB我还是知道的哦,我们也正在用, :mrgreen: :mrgreen: :mrgreen: :em11: :em11: |
| 網中人 回复于:2004-12-06 16:55:43 |
| [quote:0d5d243434="caosir"]GSLB我还是知道的哦,我们也正在用, :mrgreen: :mrgreen: :mrgreen: :em11: :em11:[/quote:0d5d243434] 這樣的 answer 看起來不夠說服力哦... 能來點更猛點的嗎? ... ^_^ 關注ing... |
| abel 回复于:2004-12-06 17:07:09 |
| http://www.pcworld.com.cn/2001/back_issues/2121/2132b.asp 你自己看看,所謂的 GSLB+CDN 也不過是 Proxy + DNS View 的變形 而以,並不是多高竿的技術, 就像 netman 兄提到的, 說服力在哪裏,你的看法為何 ? 如何從外部證明 sina 用 GSLB 就像我說過的 GSLB 不過是反向代理 (Reverse Proxy ) 緩存的技術而 以,重前面更可知,代理服務器為 Squid Proxy , Sina 本身本跑 Apache 被代理. |
| coolgg 回复于:2004-12-09 17:22:54 |
| 按照我的理解,目前GSLB方案的长处在于对于分布于各节点的服务器的健康检查和负载监测,否则与DNS view也没什么大区别。而现有CDN产品的特长在于一些协议的重定向技术(比如real或windows mediea)。 |
| YeahKing 回复于:2004-12-23 19:12:03 |
| 蜘蛛JJ出来讲一下,不就全明白了么,只是JJ好像都不怎么来CU了 |
| foole 回复于:2005-02-20 11:14:58 |
| 靠 你们猜来猜去累不累呀 其实谁想知道 悄悄地问问范老大呀 不过不要告诉他是我的主意哟 ^_^ |
| 萝卜头 回复于:2005-02-23 09:41:56 |
| 有意思,如果能到各个大网站去看看网络拓扑真是受益非浅。 不过以上大家这样分析也都是高手了。 |
| 網中人 回复于:2005-02-23 15:29:41 |
| 不同的人, 參與討論的目的是不同的: 1) 在過程 2) 在結果 若是在乎結果, 那就"問"吧... |
| platinum 回复于:2005-02-24 11:23:48 |
| [quote:e230fd3a09="YeahKing"]蜘蛛JJ出来讲一下,不就全明白了么,只是JJ好像都不怎么来CU了[/quote:e230fd3a09] 他是GG :em06: |
| skylove 回复于:2005-02-28 01:44:32 |
| http://61.135.132.173/ 看看吧... |
| david138 回复于:2005-02-28 08:10:29 |
| [quote:0962eb3821="abel"]可以猜測是反向代理(R-Proxy) .. 由 R-Proxy (你寫的那個 IP) ,看到 www 時,根據 Request URI 導到適當位置.[/quote:0962eb3821] 我同意你的看法。应该是这样的。 |
| fz-L 回复于:2005-03-29 17:09:50 |
| :em02: :em11: 很好,分析的太对了 |
| chenzq1604 回复于:2005-03-30 10:39:27 |
| 顶顶,关注中.... |
| akai76 回复于:2005-04-25 15:11:47 |
| 真累, abel 兄弟说的对.就是 dns 分流+ 反向代理技术. dns分流是根据地域以及isp种类来决定的.比如移动的和网通的ping出来的ip是不一样的. 这些技术本身都很低级. 问题的关键是 如何配置一个高效的squid.这才是看本事的. 至于dns检查各个pop点的服务和流量 这个其实用open source也可以作到(snmp取数据).商业的就是f5的3dns.结合他们自己的bigip可以做到glsb.用他们一揽子解决的话 就可以保证各地流量统计数据传递的安全性.snmp毕竟不加密不安全. |
| butterfly_lf 回复于:2005-04-26 11:47:55 |
| 我天天在机房打扫卫生,全部的服务器我都见过拉,freebsd的服务器比较多拉,你们说的web访问的东西不清楚,但是我看到机房里很多亮着f5红灯的设备,应该是你们要说的东西吧!还有就是一些idns和cacheflow还有pcc的烂七八糟的一堆东西,哎~~~天天见这些东西,真想砸了它们,太吵了!!!~~ 砸了没钱赔啊,哈哈~~~ |
| coolgg 回复于:2005-04-27 10:54:22 |
| 楼上是打扫卫生的啊,我是布网线的呀。每次想要减轻哪台服务器的负载,我就去把网线多绕几下,什么远端串扰、近端串扰的就一下子增大,然后二层错误大大增加,100M带宽就只能跑个1、2M了,服务器的cpu就不忙啦。 用户投诉?这个不是俺负责的。 |
| mbrenchm 回复于:2005-06-05 17:41:09 |
| 哈哈,,有点意思!! 不知道有没人知道怎么架设动态的dns |
| php2008 回复于:2005-07-24 22:10:25 |
| 动态DNS吗,是不是象花生K之类的,www.ip58.com 叫集中式管理,分布式解析的动态域名系统,可惜没有去发展。全是用linux系统构建。 |
| netpolice 回复于:2005-07-26 16:31:04 |
| 好象是在NAMED。CONF中做的负载均衡吧 |
| guesters 回复于:2005-07-29 14:50:01 |
| 打sina公司的电话。问他们负载均衡是怎么做的就是了。 |
| abel 回复于:2005-07-29 15:55:12 |
| [quote:94a2c9be03="guesters"]打sina公司的电话。问他们负载均衡是怎么做的就是了。[/quote:94a2c9be03] 你認為他們會講嗎 ? 講了你聽得懂嗎 ? 你認為只了解什麼叫 CDN ...就好了嗎 ? 了解原理,求證,總比直接問答案來得好 |
| ecto 回复于:2005-08-03 10:14:55 |
| [quote:53a36c786c="abel"] 你認為他們會講嗎 ? 講了你聽得懂嗎 ? 你認為只了解什麼叫 CDN ...就好了嗎 ? 了解原理,求證,總比直接問答案來得好[/quote:53a36c786c] 支持,其实一般小网站我估计用你说的,view的功能就解决了,不过我有一个疑问,在使用view功能解析的时候根据来路判断是来自中国电信还是中国网通,那不是要写很多条??或者是我还没有搞明白view的功能呢? |
| abel 回复于:2005-08-03 11:02:01 |
| [quote:9c564707a2="ecto"] 支持,其实一般小网站我估计用你说的,view的功能就解决了,不过我有一个疑问,在使用view功能解析的时候根据来路判断是来自中国电信还是中国网通,那不是要写很多条??或者是我还没有搞明白view的功能呢?[/quote:9c564707a2] 是要寫很多很多,通常是 view CHINANET { 58.32.0.0/13; 58.40.0.0/15; 58.42.0.0/16; 58.44.0.0/14; 58.48.0.0/13; 58.208.0.0/12; 59.32.0.0/13; 59.40.0.0/15; 59.42.0.0/16; 59.44.0.0/14; 59.48.0.0/16; 59.49.0.0/17; 59.49.128.0/17; ...略 }; 你可以在這邊找到 CNC/CHINANET 答案, 可以用程式更新這個 list http://bbs.chinaunix.net/forum/viewtopic.php?t=577601&highlight=abel |
| ecto 回复于:2005-08-05 10:20:06 |
| [quote:3f28194a1a="abel"] 是要寫很多很多,通常是 view CHINANET { 58.32.0.0/13; 58.40.0.0/15; 58.42.0.0/16; 58.44.0.0/14; 58.48.0.0/13; 58.208.0.0/12; 59.32.0.0/13; 59.40.0.0/15; 59.42.0.0/16; 59.44.0.0/14; 59.48.0..........[/quote:3f28194a1a] 那这些地址可不可以写入到两个文件中,然后include这个文件呢? 如果一台server上要是有很多个域名,都重复的写一遍很麻烦?? |
| missing-cn 回复于:2005-08-15 11:13:59 |
| 很感兴趣。关注学习。 [quote:8b6d185b6f="ecto"] 那这些地址可不可以写入到两个文件中,然后include这个文件呢? 如果一台server上要是有很多个域名,都重复的写一遍很麻烦??[/quote:8b6d185b6f] |
| 恋太后天 回复于:2005-08-18 14:18:30 |
| Squid 人家不是都说了吗? |





