Apache同步问题~~~~~~~~~~~~~交叉同步可以吗
时间:2008-07-25 22:31:55
来源:论坛整理 作者: 编辑:chinaitzhe
========================================================================
具体如下:
客户 的 Apache服务下, 治理了4台服务器(假设每台服务器的端口配置如下:8081~8085),每台服务器的Resin下都 部署了我们的项目.
我们的工程已被Apache服务集群治理并同步,但是项目涉及的相关资源,却无法被Apache同步,具体如下:
========================================================================
CMS工程下:
#publish目录
#存放发布中心(首页及内容中心)所发布的照片
\\resin-3.0.14\webapps\CMS\publish
#meidiaFiles目录
#存放发布中心(视听)所发布的照片
\\resin-3.0.14\webapps\CMS\mediaFiles
#UserFiles目录
#存放FCKEditor上发布的照片
\\resin-3.0.14\webapps\CMS\UserFiles
#blog目录
#存放博客首页所发布的图片
\\resin-3.0.14\webapps\CMS\blog
Website工程下:
#与工程同级别的(webapps目录)下:
#upload目录
#存放发布中心(新闻发布)所发布的资源
\\resin-3.0.14\webapps\magUpload
#UserFiles目录
#存放FCKEditor上发布的照片
\\resin-3.0.14\webapps\Website\UserFiles
========================================================================
也就是说,假设编辑访问 http://www.123.com/CMS/, 假如 随机地跳到端口号是8084的服务器,也就是相当于访问了http://www.123.com:8084/CMS/, 并在次服务器上,编辑了新闻,发布了图片,那么就会在此服务器下的
\\resin-3.0.14\webapps\CMS\publish(#publish目录#存放发布中心(首页及内容中心)所发布的照片)内发了相关的图片,数据当然是存到了Oracle数据库里了,这个不用担心.
问题是: 别的用户访问这个新闻的时候,他输入的是 http://www.123.com/Website/, 加入随机跳到端口号是8084的服务器,那么他很幸运,他不但可以看到那个新闻的文字,还可以看到新闻的图片.(因为编辑发布这片新闻和图片是,存放的图片就是8084这台服务器下的)
但是,假如Apache 让他 随机跳到端口号是8085的服务器,那么他只能看到新闻的文字, 无法看到新闻的图片!(因为8085的 \\resin-3.0.14\webapps\CMS\publish(#publish目录#存放发布中心(首页及内容中心)所发布的照片)下,是没有那张图片的资源的;)
现在就是如何解决这个资源在Apache 服务下集群同步的 问题;)
还有就是 FCKeditor,编辑时,用到的图片等资源的同步
(#UserFiles目录
#存放FCKEditor上发布的照片
\\resin-3.0.14\webapps\CMS\UserFiles)
这个路经是在web.xml里配置的:
<servlet>
<servlet-name>Connector </servlet-name>
<servlet-class>
com.fredck.FCKeditor.connector.ConnectorServlet
</servlet-class>
<init-param>
<param-name>baseDir </param-name>
<param-value>/UserFiles/ </param-value>
</init-param>
<init-param>
<param-name>debug </param-name>
<param-value>false </param-value>
</init-param>
<load-on-startup>6 </load-on-startup>
</servlet>
<servlet>
<servlet-name>SimpleUploader </servlet-name>
<servlet-class>
com.fredck.FCKeditor.uploader.SimpleUploaderServlet
</servlet-class>
<init-param>
<param-name>baseDir </param-name>
<param-value>/UserFiles/ </param-value>
</init-param>
</servlet>
网友回复:此回复为自动发出,仅用于显示而已,并无任何其他非凡作用
楼主【oliver_java】截止到2008-06-26 10:31:49的历史汇总数据(不包括此帖):
发帖数:1 发帖分:20
结贴数:0 结贴分:0
未结数:1 未结分:20
结贴率:0.00 % 结分率:0.00 %
如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html
网友回复:麻烦一点的解决办法就是:上传文件的同时将文件地址写入数据库,当需要显示已上传的文件时先从数据库查出地址,再将此地址写入链接。
(1) 这个改动也比较大,CMS发布,博客、圈子等,还有FCK Edit的图片,都要改动,改动范围较大
(2) 且假如资源分布在不同的服务器上(8084,8085等),各个资源交叉调用,后期维护都会带来麻烦;)
(3) Apache平衡负载,集群服务就失去了意义;)
网友回复:最简单的一个解决办法就是:上传文件的功能不做集群。
比如:任何需要上传文件的功能都提交到8084,任何需要显示已上传的文件的地方都链接到8084对应的地址。
(1)这个要解决 非8084端口的其他服务器,把图片等相关资源 上传到 8084端口的服务器的问题,CMS发布,博客、圈子等,还有FCK Edit的图片,都要改动,改动范围较大,且Unix服务器提供的接口,和安全问题都是未知的。
(2)且假如所有资源都放到8084,那么Apache平衡负载,集群服务就失去了意义;)
网友回复: 原来他们把flash\图片等都放到某台服务器,然后用Apache集群,平衡负载,与其他服务器同步, 我们把项目部署在resin下,这个resin 可否支持同步? 至少我们可以指定resin 下的某些文件夹
(存放相关资源的文件夹)同步~~~ 这样可以吗?
关键字:Apache,同步,问题,交叉,同步,
下一篇:下面没有链接了











文章评论
共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面