centos

怎样在centos上搭建lnmp集群

小樊
45
2025-08-08 17:50:19
栏目: 智能运维

在CentOS上搭建LNMP(Linux, Nginx, MySQL/MariaDB, PHP)集群可以提高网站的可用性和性能。以下是一个基本的步骤指南,帮助你在CentOS上搭建一个简单的LNMP集群。

1. 准备工作

2. 安装Nginx

在两台服务器上安装Nginx。

sudo yum install epel-release
sudo yum install nginx

启动并启用Nginx服务:

sudo systemctl start nginx
sudo systemctl enable nginx

3. 安装MySQL/MariaDB

在两台服务器上安装MySQL或MariaDB。

sudo yum install mariadb-server mariadb

启动并启用MySQL/MariaDB服务:

sudo systemctl start mariadb
sudo systemctl enable mariadb

运行安全脚本:

sudo mysql_secure_installation

4. 配置MySQL/MariaDB主从复制

在主服务器上配置MySQL/MariaDB以允许远程连接。

编辑主服务器的MySQL配置文件 /etc/my.cnf/etc/mysql/my.cnf,添加以下内容:

[mysqld]
server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
binlog_do_db = your_database_name

重启MySQL服务:

sudo systemctl restart mariadb

创建一个用于复制的用户:

CREATE USER 'replicator'@'%' IDENTIFIED BY 'your_password';
GRANT REPLICATION SLAVE ON *.* TO 'replicator'@'%';
FLUSH PRIVILEGES;

获取主服务器的二进制日志位置:

SHOW MASTER STATUS;

记下 FilePosition 的值。

在备份服务器上配置MySQL/MariaDB以连接到主服务器。

编辑备份服务器的MySQL配置文件 /etc/my.cnf/etc/mysql/my.cnf,添加以下内容:

[mysqld]
server-id = 2
relay_log = /var/log/mysql/mysql-relay-bin.log
log_bin = /var/log/mysql/mysql-bin.log
binlog_do_db = your_database_name
read_only = 1

重启MySQL服务:

sudo systemctl restart mariadb

在备份服务器上配置主从复制:

CHANGE MASTER TO
MASTER_HOST='master_ip',
MASTER_USER='replicator',
MASTER_PASSWORD='your_password',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=123;
START SLAVE;

5. 配置Nginx负载均衡

在主服务器上安装并配置Nginx作为负载均衡器。

安装Nginx:

sudo yum install nginx

启动并启用Nginx服务:

sudo systemctl start nginx
sudo systemctl enable nginx

编辑Nginx配置文件 /etc/nginx/nginx.conf,添加负载均衡配置:

http {
    upstream backend {
        server master_ip;
        server backup_ip;
    }

    server {
        listen 80;

        location / {
            proxy_pass http://backend;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
        }
    }
}

重启Nginx服务:

sudo systemctl restart nginx

6. 测试集群

访问你的网站,确保请求被正确地分发到主服务器和备份服务器。

通过以上步骤,你可以在CentOS上搭建一个基本的LNMP集群。根据实际需求,你可能需要进一步优化和扩展配置,例如使用Keepalived实现高可用性,或者使用更复杂的负载均衡策略。

0
看了该问题的人还看了