在CentOS上进行LNMP(Linux, Nginx, MySQL, PHP)集群部署是一个复杂的过程,涉及到多个组件的配置和协调。以下是一个基本的步骤指南,帮助你开始构建一个简单的LNMP集群。
在所有服务器上安装Nginx:
sudo yum install epel-release
sudo yum install nginx
在主服务器上配置Nginx作为负载均衡器。编辑/etc/nginx/nginx.conf
文件,添加以下内容:
http {
upstream backend {
server backend1.example.com;
server backend2.example.com;
}
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;
}
}
}
将backend1.example.com
和backend2.example.com
替换为你的后端服务器的实际域名或IP地址。
在所有服务器上安装MySQL:
sudo yum install mysql-server
sudo systemctl start mysqld
sudo systemctl enable mysqld
在主服务器上配置MySQL主节点,在从服务器上配置MySQL从节点。
编辑/etc/my.cnf
文件,添加以下内容:
[mysqld]
server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
binlog_do_db = your_database_name
重启MySQL服务:
sudo systemctl restart mysqld
创建一个用于复制的用户:
CREATE USER 'replicator'@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'replicator'@'%';
FLUSH PRIVILEGES;
查看主服务器的二进制日志位置:
SHOW MASTER STATUS;
记下File
和Position
的值。
编辑/etc/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 mysqld
配置从服务器连接到主服务器:
CHANGE MASTER TO
MASTER_HOST='master_ip',
MASTER_USER='replicator',
MASTER_PASSWORD='password',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=123;
START SLAVE;
将master_ip
替换为主服务器的IP地址,mysql-bin.000001
和123
替换为你之前记下的值。
在所有服务器上安装PHP和必要的PHP-FPM扩展:
sudo yum install php php-fpm
sudo systemctl start php-fpm
sudo systemctl enable php-fpm
编辑/etc/php-fpm.d/www.conf
文件,确保监听地址设置为Unix socket:
listen = /run/php-fpm/php-fpm.sock
listen.owner = nginx
listen.group = nginx
重启PHP-FPM服务:
sudo systemctl restart php-fpm
在浏览器中访问你的Nginx服务器的IP地址或域名,确保请求被正确分发到后端服务器,并且MySQL主从复制正常工作。
设置监控和日志系统,如Prometheus和Grafana,以便实时监控集群的健康状况和性能。
配置防火墙规则,确保只有必要的端口对外开放。定期备份数据库和重要文件。
通过以上步骤,你可以搭建一个基本的LNMP集群。根据实际需求,你可能还需要进行更多的配置和优化。