gij*_*007 5 mysql ubuntu mysql-replication replication high-availability
我正计划复制 Web 服务器以实现高可用性目的。该服务器在 Hyper-V 中作为 Ubuntu 15.04 虚拟机运行,并安装了 MariaDB 10.0、Apache 2.4 和 PHP-FPM 5.6。
第二个虚拟机将作为该虚拟机的直接副本启动,但位于美国。第一个虚拟机位于欧洲。(延迟约为 80-120 毫秒)
我想让服务器保持同步,以便它们都可以向我的客户端提供相同的内容,并且客户端将使用最近的服务器(为此我将使用 Route 53)
服务器之间的数据交换是安全的,这很重要,以保护数据库中的联系方式和其他信息,并防止更改 /var/www 目录中的文件。
我已经考虑为此使用以下选项:
SSL(TLS)
我已经考虑使用 SSH 进行数据库和文件复制。但是我不确定文件复制部分使用哪个应用程序。
SSL 可用于数据库复制,但它需要生成需要时不时更换的证书,这可能会花钱。
我的最后一个选择是使用 openvpn,但我不确定是否可以将其设置为附加网络,而不是通过它路由我的所有流量。这个方法好像也需要生成证书文件。。
小智 5
您不需要为自己的私人通信付费的 TLS 证书。您可以设置自己的 CA(具有非常持久的证书,万一受到威胁,您只需扔掉整个 CA)并使您的服务器信任它,然后您就可以为不同的服务颁发任意数量的证书。仅当您无法可靠地使远程主机信任您的 CA 时才需要付费证书,例如您网站的访问者。
如果您只需要使用单个服务并且它支持 TLS(就像 MySQL 一样),那么请使用它并通过在防火墙级别仅允许来自服务器 IP 的连接来添加额外的安全层。
如果您需要多项服务,最好使用 VPN 解决方案。不要在 OpenVPN 上浪费时间,您的内核具有内置的 IPSec 支持,您可以使用它。此外,它在 Windows 上开箱即用,因此如果您曾经部署过此类服务器,则设置起来会很容易。
那是容易的部分。真正困难的部分是保持您的应用程序文件同步,如果您的应用程序只使用数据库,这很容易,但如果它是一个通用的 CMS,它很可能也会出于任何原因修改自己的文件(插件更新例如)或创建新的(用户上传的内容等),我不知道有什么可靠的方法可以让它们保持同步。想到的唯一解决方案是 NFS(并且只有一个服务器来托管文件,但这违反了您的 HA 要求)或 GlusterFS,这两种解决方案在这种延迟的情况下都会表现得很差。
小智 3
rsync
是保持文件同步的好工具。我会将它与 SSH(和公钥)结合使用,如下所示:
rsync -az -e ssh --delete /var/www otherserver:/var/www
Run Code Online (Sandbox Code Playgroud)
对于多个服务器来说,多次使用rsync
可能是最好的选择。另一种选择是pdcp -r
,但这需要每次复制所有文件而不是进行增量传输。换句话说,它更适合少量数据和许多服务器。
如何最好地进行数据库复制很大程度上取决于您的应用程序的用途。MariaDB 文档和其他问题中有很多好的建议。
归档时间: |
|
查看次数: |
1687 次 |
最近记录: |