首页 > CMS > Wordpress > 正文

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

2024-09-07 00:52:38
字体:
来源:转载
供稿:网友

本指南配置了一个高可靠性的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.  
  3. 2 sudo apt-get upgrade -y 
  4.  
  5. 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.  
  3. server_id           = 1 
  4.  
  5. log_bin             = /var/log/mysql/mysql-bin.log 
  6.  
  7. log_bin_index       = /var/log/mysql/mysql-bin.log.index 
  8.  
  9. relay_log           = /var/log/mysql/mysql-relay-bin 
  10.  
  11. relay_log_index     = /var/log/mysql/mysql-relay-bin.index 
  12.  
  13. expire_logs_days    = 10 
  14.  
  15. max_binlog_size     = 100M 
  16.  
  17. log_slave_updates   = 1 
  18.  
  19. auto-increment-increment = 2 
  20.  
  21. auto-increment-offset = 1 

Server 2:

  1. /etc/mysql/my.cnf 
  2.  
  3. server_id           = 2 
  4.  
  5. log_bin             = /var/log/mysql/mysql-bin.log 
  6.  
  7. log_bin_index       = /var/log/mysql/mysql-bin.log.index 
  8.  
  9. relay_log           = /var/log/mysql/mysql-relay-bin 
  10.  
  11. relay_log_index     = /var/log/mysql/mysql-relay-bin.index 
  12.  
  13. expire_logs_days    = 10 
  14.  
  15. max_binlog_size     = 100M 
  16.  
  17. log_slave_updates   = 1 
  18.  
  19. auto-increment-increment = 2 
  20.  
  21. 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. +------------------+----------+--------------+------------------+ 
  4.  
  5. | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | 
  6.  
  7. +------------------+----------+--------------+------------------+ 
  8.  
  9. | mysql-bin.000001 |      277 |              |                  | 
  10.  
  11. +------------------+----------+--------------+------------------+ 
  12.  
  13. 1 row in set (0.00 sec) 

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

  1. SLAVE STOP; 
  2.  
  3. 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; 
  4.  
  5. SLAVE START; 

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

SHOW MASTER STATUS;

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

  1. SLAVE STOP; 
  2.  
  3. 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; 
  4.  
  5. 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.  
  3. sudo mkdir cnbudgetvm.com/log 

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

  1. file excerpt:/etc/apache2/sites-available/cnbudgetvm.com.conf 
  2.  
  3.  
  4. # domain: example.com 
  5.  
  6. public: /var/www/example.com/public_html/  
  7.  
  8. <</span>VirtualHost *:80> 
  9.  
  10.   # Admin email, Server Name (domain name), and any aliases 
  11.  
  12.   ServerAdmin webmaster@example.com 
  13.  
  14.   ServerName  www.example.com 
  15.  
  16.   ServerAlias example.com 
  17.   
  18.   # Index file and Document Root (where the public files are located) 
  19.  
  20.   DirectoryIndex index.html index.php 
  21.  
  22.   DocumentRoot /var/www/example.com/public_html 
  23.  
  24.   # Log file locations 
  25.  
  26.   LogLevel warn 
  27.  
  28.   ErrorLog  /var/www/example.com/log/error.log 
  29.  
  30.   CustomLog /var/www/example.com/log/access.log combined 
  31.  
  32. </</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.  
  3. wget https://wordpress.org/latest.tar.gz 
  4.  
  5. tar -xvf latest.tar.gz 
  6.  
  7. cp -R wordpress/* /var/www.Vevb.com/public_html 

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

  1. mysql -u root -p 
  2.  
  3. CREATE DATABASE wordpress; 
  4.  
  5. GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpressuser'@'localhost' IDENTIFIED BY 'password'
  6.  
  7. FLUSH PRIVILEGES; 
  8.  
  9. 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.  
  3. logfile = "/var/log/lsyncd.log"
  4.  
  5. statusFile = "/var/log/lsyncd-status.log" 
  6.  
  7.  
  8. sync{ 
  9.  
  10. default.rsyncssh, 
  11.  
  12. delete = false, 
  13.  
  14. insist 
  15.  
  16. source="/var/www"
  17.  
  18. host="x.x.x.x"
  19.  
  20. targetdir="/var/www"
  21.  
  22. rsync = { 
  23.  
  24. archive = true, 
  25.  
  26. perms = true, 
  27.  
  28. owner = true, 
  29.  
  30. _extra = {"-a"}, 
  31.  
  32. }, 
  33.  
  34. delay = 5, 
  35.  
  36. maxProcesses = 4, 
  37.  
  38. ssh = { 
  39. //Vevb.com 
  40. port = 22 
  41.  
  42.  

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.  
  3. Protocol: HTTP 
  4.  
  5. Algorithm: Least Connections 
  6.  
  7. Session Stickiness: Table 
  8.  
  9. Health Check Type: HTTP Valid Status 

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

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

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

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

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表