如何配置高可靠性高可用性WordPress主机?WordPress主机配置教

本指南配置了一个高可靠性的WordPress站点,使用了一个双Linode集群,使用了MySQL主主复制和一个Linode nodebal前端。

先决条件

本指南是为Debian 7或Ubuntu 14.04编写的。为了完成这个指南,请确保您的帐户上有两个Linodes和一个NodeBalancer。Linodes都需要一个私有IP地址。还可以确保你的两个链接都配置了SSH密钥,并将对方的Linode的SSH密钥放在另一个/.ssh/authorized_keys文件中。

安装所需要的软件包

使用以下命令在每个Linodes上安装Apache、PHP和MySQL:

  1. 1 sudo apt-get update
  2. 2 sudo apt-get upgrade -y
  3. 3 sudo apt-get install apache2 php5 php5-mysql mysql-server mysql-client

编辑MySQL配置,以设置主-主复制

1、在每个Linodes上编辑/etc/mysql/my.cnf文件。添加或修改以下值:

Server 1:

  1. /etc/mysql/my.cnf
  2. server_id = 1
  3. log_bin = /var/log/mysql/mysql-bin.log
  4. log_bin_index = /var/log/mysql/mysql-bin.log.index
  5. relay_log = /var/log/mysql/mysql-relay-bin
  6. relay_log_index = /var/log/mysql/mysql-relay-bin.index
  7. expire_logs_days = 10
  8. max_binlog_size = 100M
  9. log_slave_updates = 1
  10. auto-increment-increment = 2
  11. auto-increment-offset = 1

Server 2:

  1. /etc/mysql/my.cnf
  2. server_id = 2
  3. log_bin = /var/log/mysql/mysql-bin.log
  4. log_bin_index = /var/log/mysql/mysql-bin.log.index
  5. relay_log = /var/log/mysql/mysql-relay-bin
  6. relay_log_index = /var/log/mysql/mysql-relay-bin.index
  7. expire_logs_days = 10
  8. max_binlog_size = 100M
  9. log_slave_updates = 1
  10. auto-increment-increment = 2
  11. auto-increment-offset = 2

2、对于每个Linodes,编辑bind-address配置,以便使用私有IP地址:

/etc/mysql/my.cnf

bind-address = x.x.x.x

3、一旦完成,重新启动MySQL应用程序:

sudo service mysql restart

创建复制用户

1、在每个Linodes上都登录到MySQL:

mysql -u root -p

2、在每个Linode上配置复制用户。替换. x.x.x。带有强密码的反对的Linode和密码的私有IP地址

GRANT REPLICATION SLAVE ON *.* TO 'replication'@'x.x.x.x' IDENTIFIED BY 'password';

3、回到终端,运行下面的命令来测试配置。使用相反的Linode的私有IP地址:

mysql -ureplication -p -h x.x.x.x -P 3306

这个命令应该将您连接到远程服务器的MySQL实例。

配置数据库复制

1、在服务器1上登录到MySQL时,查询主状态:

SHOW MASTER STATUS;

注意显示的文件和位置值:

  1. mysql> SHOW MASTER STATUS;
  2. +------------------+----------+--------------+------------------+
  3. | File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
  4. +------------------+----------+--------------+------------------+
  5. | mysql-bin.000001 | 277 | | |
  6. +------------------+----------+--------------+------------------+
  7. 1 row in set (0.00 sec)

在服务器2上,在MySQL提示中,为该数据库设置了奴隶功能。替换. x.x.x。从第一个服务器获得私有IP。还可以用前面步骤中的值替换master_log_file和master_log_pos的值。

  1. SLAVE STOP;
  2. CHANGE MASTER TO master_host='x.x.x.x', master_port=3306, master_user='replication', master_password='password', master_log_file='mysql-bin.000001', master_log_pos=277;
  3. SLAVE START;

3、在服务器2上,查询主状态。注意文件和位置值:

SHOW MASTER STATUS;

4、在服务器1上设置从属数据库状态,替换步骤2中与服务器2中交换的相同值:

  1. SLAVE STOP;
  2. CHANGE MASTER TO master_host='x.x.x.x', master_port=3306, master_user='replication', master_password='password', master_log_file='mysql-bin.000001', master_log_pos=277;
  3. SLAVE START;

5、在两个Linodes上都退出MySQL:

exit

配置Apache

本节中的步骤将需要在您的Linodes上执行。

提示:

对于本指南的以下部分,请将“https://cnbudgetvm.com/”替换为您的域名。

1、通过输入以下命令禁用默认的Apache虚拟主机:

sudo a2dissite *default

2、导航到你的/var/www目录:

cd /var/www

3、创建一个文件夹来保存你的网站,输入以下命令:

sudo mkdir example.com

4、在你刚刚创建的文件夹中创建一组文件夹来存储你的网站的文件、日志和备份:

  1. sudo mkdir cnbudgetvm.com/public_html
  2. sudo mkdir cnbudgetvm.com/log

5、为网站创建虚拟主机文件:

  1. file excerpt:/etc/apache2/sites-available/cnbudgetvm.com.conf
  2. # domain: example.com
  3. # public: /var/www/example.com/public_html/
  4. <</span>VirtualHost *:80>
  5. # Admin email, Server Name (domain name), and any aliases
  6. ServerAdmin webmaster@example.com
  7. ServerName www.example.com
  8. ServerAlias example.com
  9. # Index file and Document Root (where the public files are located)
  10. DirectoryIndex index.html index.php
  11. DocumentRoot /var/www/example.com/public_html
  12. # Log file locations
  13. LogLevel warn
  14. ErrorLog /var/www/example.com/log/error.log
  15. CustomLog /var/www/example.com/log/access.log combined
  16. </</span>VirtualHost>

注意:文件名必须与.conf 结束在Apache 2.4及以后版本,Ubuntu 14.04用途。.conf 扩展与早期版本向后兼容。

6、通过输入以下命令启用新网站:

sudo a2ensite example.com.conf

重新启动Apache

sudo service apache2 restart

安装WordPress

1、在Linode的初选中,下载并安装最新版本的WordPress。替换为您的配置正确路径列出的任何路径:

  1. cd /var/www
  2. wget https://wordpress.org/latest.tar.gz
  3. tar -xvf latest.tar.gz
  4. cp -R wordpress/* /var/www.phpfensi.com/public_html

2、为新的WordPress安装配置MySQL数据库。你需要用你自己的设置来替换wordpressuser和password。

  1. mysql -u root -p
  2. CREATE DATABASE wordpress;
  3. GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpressuser'@'localhost' IDENTIFIED BY 'password';
  4. FLUSH PRIVILEGES;
  5. EXIT

3、在文档根目录上设置权限,使WordPress能够完成它的配置步骤:

chmod 777 /var/www/example.com/public_html/

4、使用你的网络浏览器连接到你的Linode的IP地址,并通过配置步骤来完全安装WordPress。

注意:为了确保每个WordPress实例都能处理本地数据库,您需要确保该步骤中的数据库主机值被设置为localhost。这应该在默认情况下填充。

5、通过WordPress管理界面中的一般设置配置您的WordPress URL和站点地址。确保您的域在两个字段中都配置了。

注意:在完成您的WordPress安装步骤并第一次登录之后,您应该重新设置您的文档根目录的权限,以确保额外的安全性。您可以使用以下命令:

chmod 755 /var/www/example.com/public_html/

6、完成WordPress安装步骤后,将配置复制到您的第二个Linode。替换. x.x.x。第二个Linode的IP地址:

rsync -r /var/www/* x.x.x.x:/var/www/.

7、登录到第二个Linode并重新启动Apache:

sudo service apache2 restart

使用Lsyncd配置文件夹同步

1、在集群的主要Linode上安装Lsyncd。

sudo apt-get install lsyncd

2、创建一个配置文件,以便执行同步操作。替换. x.x.x。在您的集群中使用第二个Linode的私有IP地址。

file excerpt:/etc/lsyncd/lsyncd.conf.lua

  1. settings = {
  2. logfile = "/var/log/lsyncd.log",
  3. statusFile = "/var/log/lsyncd-status.log"
  4. }
  5. sync{
  6. default.rsyncssh,
  7. delete = false,
  8. insist
  9. source="/var/www",
  10. host="x.x.x.x",
  11. targetdir="/var/www",
  12. rsync = {
  13. archive = true,
  14. perms = true,
  15. owner = true,
  16. _extra = {"-a"},
  17. },
  18. delay = 5,
  19. maxProcesses = 4,
  20. ssh = {
  21. //phpfensi.com
  22. port = 22
  23. }
  24. }

3、开始Lsyncd守护进程:

service lsyncd start

4、Lsyncd成功地开始了测试:

service lsyncd status

如果这个命令返回之外的东西lsyncd is running,仔细检查你的lsyncd.conf.lua 文件,并确保RSA公钥是次要服务器上正确的位置。

5、测试复制通过创建一个文件在您的主要Linode /var/www文件夹。您应该能够在几秒内在第二个Linode上看到相同的文件。

配置您的Nodebalancer

1、访问Linode管理器中的nodebalalt选项卡。

2、如果您还没有这样做,请添加一个nodebal法师,确保它与您的后端Linodes相同的数据中心。

3、选择您的新nodebal法师并单击“创建配置”。编辑您的配置设置如下:

  1. Port: 80
  2. Protocol: HTTP
  3. Algorithm: Least Connections
  4. Session Stickiness: Table
  5. Health Check Type: HTTP Valid Status

4、一旦您点击“Save Changes”按钮,就会提示您添加您的节点。为每个节点提供一个惟一的标签,并在每个节点的地址字段中输入私有网络地址和端口。

5、当您添加了两个节点时,请确保健康检查将它们标记为向上。一旦两个节点都显示出来,返回到nodebal法师的主页并注意所列出的IP地址。你现在应该能够导航到那个IP地址并查看你的网页了。

为了测试高可用性功能,可以在一个节点上停止apache2/mysql服务,或者一次一次地关闭一个节点。即使在其中一个节点被标记为向下时,该网站仍应继续提供服务。

祝贺您,您已经配置了您的高可用性可靠性WordPress站点!