在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集群。根據實際需求,你可能還需要進行更多的配置和優化。