怎样配置高可靠性高可用性WordPress主机
发布时间:2022-06-22 10:31:45 所属栏目:教程 来源:互联网
导读:本指南配置了一个高可靠性的WordPress站点,使用了一个双Linode集群,使用了MySQL主主复制和一个Linode nodebal前端。 先决条件 本指南是为Debian 7或Ubuntu 14.04编写的。为了完成这个指南,请确保您的帐户上有两个Linodes和一个NodeBalancer。Linodes都需
|
本指南配置了一个高可靠性的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 sudo apt-get update 2 sudo apt-get upgrade -y 3 sudo apt-get install apache2 php5 php5-mysql mysql-server mysql-client 编辑MySQL配置,以设置主-主复制 1、在每个Linodes上编辑/etc/mysql/my.cnf文件。添加或修改以下值: Server 1: /etc/mysql/my.cnf server_id = 1 log_bin = /var/log/mysql/mysql-bin.log log_bin_index = /var/log/mysql/mysql-bin.log.index relay_log = /var/log/mysql/mysql-relay-bin relay_log_index = /var/log/mysql/mysql-relay-bin.index expire_logs_days = 10 max_binlog_size = 100M log_slave_updates = 1 auto-increment-increment = 2 auto-increment-offset = 1 Server 2: /etc/mysql/my.cnf server_id = 2 log_bin = /var/log/mysql/mysql-bin.log log_bin_index = /var/log/mysql/mysql-bin.log.index relay_log = /var/log/mysql/mysql-relay-bin relay_log_index = /var/log/mysql/mysql-relay-bin.index expire_logs_days = 10 max_binlog_size = 100M log_slave_updates = 1 auto-increment-increment = 2 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; 注意显示的文件和位置值: mysql> SHOW MASTER STATUS; +------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+------------------+ | mysql-bin.000001 | 277 | | | +------------------+----------+--------------+------------------+ 1 row in set (0.00 sec) 在服务器2上,在MySQL提示中,为该数据库设置了奴隶功能。替换. x.x.x。从第一个服务器获得私有IP。还可以用前面步骤中的值替换master_log_file和master_log_pos的值。 SLAVE STOP; 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; SLAVE START; 3、在服务器2上,查询主状态。注意文件和位置值: SHOW MASTER STATUS; 4、在服务器1上设置从属数据库状态,替换步骤2中与服务器2中交换的相同值: SLAVE STOP; 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; 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、在你刚刚创建的文件夹中创建一组文件夹来存储你的网站的文件、日志和备份: sudo mkdir cnbudgetvm.com/public_html sudo mkdir cnbudgetvm.com/log 5、为网站创建虚拟主机文件: file excerpt:/etc/apache2/sites-available/cnbudgetvm.com.conf # domain: example.com # public: /var/www/example.com/public_html/ <</span>VirtualHost *:80> # Admin email, Server Name (domain name), and any aliases ServerAdmin webmaster@example.com ServerName www.example.com ServerAlias example.com # Index file and Document Root (where the public files are located) DirectoryIndex index.html index.php DocumentRoot /var/www/example.com/public_html # Log file locations LogLevel warn ErrorLog /var/www/example.com/log/error.log CustomLog /var/www/example.com/log/access.log combined </</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。替换为您的配置正确路径列出的任何路径: cd /var/www wget https://wordpress.org/latest.tar.gz tar -xvf latest.tar.gz cp -R wordpress/* /var/www.phpfensi.com/public_html 2、为新的WordPress安装配置MySQL数据库。你需要用你自己的设置来替换wordpressuser和password。 mysql -u root -p CREATE DATABASE wordpress; GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpressuser'@'localhost' IDENTIFIED BY 'password'; FLUSH PRIVILEGES; 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 settings = { logfile = "/var/log/lsyncd.log", statusFile = "/var/log/lsyncd-status.log" } sync{ default.rsyncssh, delete = false, insist source="/var/www", host="x.x.x.x", targetdir="/var/www", rsync = { archive = true, perms = true, owner = true, _extra = {"-a"}, }, delay = 5, maxProcesses = 4, ssh = { //phpfensi.com port = 22 } } 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法师并单击“创建配置”。编辑您的配置设置如下: Port: 80 Protocol: HTTP Algorithm: Least Connections Session Stickiness: Table Health Check Type: HTTP Valid Status 4、一旦您点击“Save Changes”按钮,就会提示您添加您的节点。为每个节点提供一个惟一的标签,并在每个节点的地址字段中输入私有网络地址和端口。 5、当您添加了两个节点时,请确保健康检查将它们标记为向上。一旦两个节点都显示出来,返回到nodebal法师的主页并注意所列出的IP地址。你现在应该能够导航到那个IP地址并查看你的网页了。 为了测试高可用性功能,可以在一个节点上停止apache2/mysql服务,或者一次一次地关闭一个节点。即使在其中一个节点被标记为向下时,该网站仍应继续提供服务。 祝贺您,您已经配置了您的高可用性可靠性WordPress站点! (编辑:航空爱好网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐

