为什么我直接在浏览器中输入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