php网站部署两套代码在两台服务器上面,如何做到上传文件同步

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php网站部署两套代码在两台服务器上面,如何做到上传文件同步相关的知识,希望对你有一定的参考价值。

现在有两个服务器,做了负载均衡处理,两台服务器上面放了同样的一套程序,这套程序都支持本地附件上传,如何实现这两个主机上传的附件同步呢?

假设你这两台服务器是linux的,将第三台服务器当做文件共享服务器,挂载到你这两个服务器上的同一个位置,然后php上传文件时,保存到这个挂载盘上,这样两台服务器的附件就共享了,并且同步,不管在哪套程序上上传的,都一样。
当然也可以不需要第三台服务器,将你这两台中的一台挂载到另一台上,也是一样的效果。
windows服务器原理相同,不在赘述。
只用两台服务器,举例说明:
你的两个服务器分别是192.168.1.100和192.168.1.200
在192.168.1.100上,文件上传的目录设置为/var/tmp
将/var/tmp挂载到192.168.1.200的/var/tmp上
(1)在192.168.1.100上开启NFS服务并编辑/etc/exports文件:
chkconfig --level 35 nfs on
service nfs start
vi /etc/exports,加入:
/var/tmp 192.168.1.200(rw,sync,no_root_squash)
(2)在192.168.1.200上创建目录并挂载

mkdir /var/tmp
chmod 777 -R /var/tmp
mount 192.168.1.100:/var/tmp /var/tmp
这样就可以了。
你不管在哪台服务器上上传,都将文件保存到/var/tmp里,两个服务器之间的文件实现共享了
参考技术A 弄一个同步软件,自动更新不一样的程序。

C#如何在两台服务器之间进行通信

【中文标题】C#如何在两台服务器之间进行通信【英文标题】:C# How to communicate between 2 servers 【发布时间】:2011-02-20 07:58:54 【问题描述】:

我有一个在 server A 上运行 ASP.NET (C#) 的网站。我需要我的网站来访问server B 上的网络服务。 server B 只会在被请求者位于特定 IP 范围内且 server A 不在此范围内时接受传入请求。

我有一个服务器 server C,它位于 IP 范围内,唯一阻止 server A 访问 server C 的是防火墙(我可以访问)。一定可以在server Aserver C 之间的防火墙上创建一个洞,但我的问题是:

如何通过server C 将请求从server A 转发到server B

我还需要server B 的回复才能回复server A :)

提前致谢。

【问题讨论】:

【参考方案1】:

你可以看看 WCF;也许在服务器 C 上创建一个中间服务,在其他 2 之间进行调解。

【讨论】:

到目前为止,WCF 似乎是一个很好的解决方案。感谢您强迫我尝试 WCF ;)【参考方案2】:

看看 HTTP 代理,有很多开源的,但我没有任何使用它们的经验,所以不能推荐。

如果失败,请查看套接字编程 (http://www.codeproject.com/KB/IP/socketsincsharp.aspx) - 您可以在服务器 A 和服务器 C 之间编写基于套接字的接口,然后服务器 C 将发送请求并将响应编组回服务器 A。

【讨论】:

以上是关于php网站部署两套代码在两台服务器上面,如何做到上传文件同步的主要内容,如果未能解决你的问题,请参考以下文章

不同的登录,但在两台计算机上共享实时会话,我使用什么平台以及如何构建它?

C#如何在两台服务器之间进行通信

将已经开发完的web项目部署到两台电脑上,但是两台电脑的运行效果不一样,有一台更新不好

电商网站第一天

基于模块类型php部署LAMP

如何在两台服务器之间安全迁移MySQL数据库