作者MrMarcus (请勿忘记密码)
看板PHP
标题Re: [问题] 网站分流问题
时间Sun Mar 11 00:26:04 2007
※ 引述《timyau (我讨厌Sony)》之铭言:
: 我架了一个网站,
: 使用了一台转址主机、
: 两台 Web Server 进行分流
: 另外还有一台主机当资料库使用
: 每次使用者输入转址主机的位置
: 主机就会自动将使用者於内部导向两台Web Server的其中一台
: 所以每次网站只要更新,就得同时更新两台Web Server的网页
: 这样一来就有问题了
: 一但只更新其中一台Web Server,
: 使用者连到网站来就会有可能看到不一样的内容
: 因为有时候可能连到有更新的那一台,有时候会连到没有更新的那一台
: 有嚐试过把档案都放在第三台资料库的 SERVER
: 而PHP取得资料库Server的内部IP(例如192.168.1.3)
: 来读取使用到的相同资源档案
: 但是从外面要读取图片的时候却发生网址上面是 http://192.168..../
: 的情况
: 这样当然是有问题的啊 Orz
: 想请问这样的架构是否有问题?
: 还是有什麽解决方法吗?谢谢
这问题我以前有遇到过,状况很类似。不但每次更新要FTP两次
到两台伺服器去,而且在程式里面也有这个问题,变成凡是使用者
上传档案的地方,程式接收到档案後除了把档案存在自己这台的
硬碟里面外,还得把该档案复制到另一台伺服器硬碟的相对应位置去,
否则被带到另一台机器去的使用者就会找不到那个档案。
(上面指的使用者不是维护网站的人,是来浏览网站的使用者)
我把这个问题提出来给客户,因为我觉得让两台伺服器的档案内容
保持同步这种工作不应该在网站程式这端来执行,应该在更底层
的地方由伺服器本身自己处理掉,网站程式这层级不需要去知道
现在到底有几台伺服器在分散负荷。而且还要考虑到日後扩充的问题,
现在是两台,以後变成三台,程式要改成把收到的上传档案复制到
另外两台去,变成四台,五台呢?
我那时提出的建议是,增加一套独立的储存设备,两台伺服器上面
设定好把某个目录,例如/webupload,共同mount到该储存设备去,
程式里面就把使用者透过程式上传的档案储存到/webupload去。
然後在http server里面指定某个目录名称对应到/webupload。例如
在httpd.conf里面:
Alias /upload /webupload
前面的/upload是web server上使用的目录名称,後面的/webupload
是档案系统上的目录名。换句话说,使用者在浏览www1.mycompany.com
的时候会看到
<img src="/upload/album/user1/myimage.jpg">
myimage.jpg实际上是 /webupload/album/user1/myimage.jpg
这个档案,而/webupload这个目录并不在www1本机的硬碟里面,
是在前面提到的共用储存设备里面。对於另一台www2来说也是
一模一样的状况。
也就是说www1和www2上面都做了两件事
1. 把/webupload这个目录挂载到共用储存设备上的同一个目录去。
2. 在httpd.conf里面加上Alias指向设定。
以上这些步骤(其实只有两个动作)可以解决使用者透过程式上传
的档案的同步问题。至於网站维护人员透过ftp更新的档案要上传
两边的问题,其实也可以透过类似的方式解决,在www1, www2上面
建立一个目录挂载到共用储存设备上的某个目录去,然後在两台
的httpd.conf里面把document_root指向到该目录去即可。
但是那时候客户并没有采行我的建议:( 他们的理由是
1. www1,www2的web server都共用一个储存设备,万一该共用
储存设备挂了怎办?这样一来虽然有两台web server,但是
整个网站都会挂点。
2. 我们没有预算添购这个储存设备。
第一个问题我觉得其实不是那麽严重,因为该储存设备不会只有
一颗硬碟,必定是至少两颗做Raid 1或者三颗做Raid 5甚至以上。
透过Raid可以不用太担心这个问题。
第二个问题,无解。所以最後还是一样,FTP两边丢,程式里面两边存。
╮(╯_╰)╭
回到原po的状况,其实你只要把你那台资料库server当成前面
提到的共用储存设备就可以了。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.132.153.19
1F:→ GERRYccc:请问转址服务器怎麽设定才会自动分流呢?.... 03/11 00:49
2F:推 ckmarkhsu:loading balance...有硬体的可以买:p 03/11 02:09
3F:推 appleboy46:没有硬体 可以用 round robin dns 技术,不过不准就是 03/11 02:45
4F:推 timyau:嗯。..很仔细的说明。谢谢噜 03/11 08:30