我考虑从中国购买网络服务器,以减少来自中国/中国用户的网站加载时间。问题是,如何在两个站点之间同步/保存相同的数据?在网站中编辑内容时,应将这些更改更新到中国服务器中的网站。
服务器正在运行Linux,Apache和MySQL。网站正在使用WordPress。
仅供参考我已经使用CDN,而且中国的网站加载速度仍然太长。
答案 0 :(得分:0)
我可以引导您参考有助于完成每项任务的参考资料,有时可以向您展示一个快速示例。但是,如果你想让它发挥作用,特别是如果你想优化这个过程,你将不得不自己查看参考文献。
如果我没有这样做,这个答案将会变得更加可怕,已经存在了。
事情0 - 请尽量不要被这个答案的长度吓倒
我知道我已经写了很多,也许比我应该写的更多,但我保证你能够在不超过一天的时间内实现这一点。我试图彻底,但这并不意味着我所描述的内容特别复杂。
事情1 - 转移期间关闭中文服务器
这种数据传输将使您的中文服务器在进行中时无法使用,您可能已经猜到了。您需要确保您的中文服务器在传输过程中无法运行。否则,服务器可能只有部分可用数据,这可能会导致客户端和服务器出现问题,尤其是与MySQL相关的问题。
事情2 - 尽可能多地使用压缩
由于压缩和解压缩对于大量数据而言非常耗时,相信我与浪费将未压缩数据发送到中国的时间相比毫无意义。网络使用,而不是处理器时间,实际上将成为快速完成传输的限制因素。尝试尽可能发送压缩文件。
第3项 - 尝试使用校验和
发送所有数据(尤其是压缩格式的数据)会使其在传输过程中容易受到损坏。每当您发送文件时,我都鼓励您对数据使用某种校验和来验证它是否已损坏。为简洁起见,我不会告诉你如何做到这一点,但我确信你足够聪明,可以弄清楚如何在某些验证中加油。
如果您不熟悉校验和,the Wikipedia article关于校验和非常简单。最常用的是MD5和SHA-1,但这两者都有些容易发生冲突。我建议SHA-2(也称为SHA-256/512)或新SHA-3。
据我所知(我可能错了)没有内置的方法将文件从一个Apache服务器传输到另一个Apache服务器......所以你必须为此编写自己的脚本。
您还需要有两个单独的脚本:一个用于主服务器,另一个用于中文服务器。这是每个脚本需要做的细分。
在您的主服务器上......
scp
(安全复制)压缩文件到您的中文服务器。 确保将其复制到Apache运行的用户名。(Reference for scp。)您可能会使用shell脚本来完成所有这些,所以我希望您熟悉终端。一个简单的例子看起来像这样。
#!/bin/sh
## First I'll define some variables to explain this better.
APACHE_USER="whatever your Apache server's username is (usually it's www-data)";
WWW_DIR="your http'd directory relative to ~ (usually it's /var/www)";
CHINA_HOST="the host name/IP address of your Chinese server"
CHINA_USER="Apache's username on the Chinese server";
CHINA_PWD="Apache's user password on the Chinese server";
CHINA_HOME="the home directory of the Apache user on your Chinese server";
## Now to the real scripting. I will be using zip for compression.
su - "$APACHE_USER";
zip -r copy.zip "$WWW_DIR";
scp copy.zip "$CHINA_USER@$CHINA_HOST:$CHINA_HOME" < echo $CHINA_PWD;
rm copy.zip;
## Then you initiate the next step of the process.
## Like I said this will be covered later.
在您的中文服务器上
这很简单,我认为你不需要另一个例子。
您可以在MySQL网站的this article中找到有关如何执行此操作的良好参考。基本上复制数据库内容是内置功能。 尝试使用压缩选项!
好的,这就是事情变得复杂的地方。
您需要知道的第一件事是如何在Linux上定期安排任务。这是通过名为crontab
的命令行工具完成的。您可以在this article和full crontab documentation here中看到设置cron作业的好例子。
然而,除了定期安排作业之外,还需要同步数据传输。如果您只是将一台服务器设置为在特定时间发送数据而另一台服务器在特定时间接收它,则会出现许多错误。确保这一点。
我的建议是在中文服务器中创建一个监听来自主服务器的指令的套接字。
这可以用各种语言完成。因为您正在使用Linux,我建议您在C中使用它,但几乎可以用任何语言完成,包括Bash。
一个完整的例子太多了,但基本上这将是你必须要做的事情。
scp
的网站内容到中文服务器。scp
已完成。scp
的数据替换Apache的目录内容。