Debian LNMP集群搭建方法
Debian LNMP集群搭建指南(含高可用配置)
LNMP(Linux + Nginx + MySQL/MariaDB + PHP)是中小型网站常见的Web架构,Debian系统因其稳定性成为搭建该架构的热门选择。以下是基础环境搭建与高可用优化的详细步骤:
一、基础环境准备
1. 更新系统与安装基础工具
sudo apt update &
&
sudo apt upgrade -y # 更新系统软件包
sudo apt install -y curl wget vim htop # 安装常用工具
2. 安装Nginx(Web服务器)
sudo apt install -y nginx # 安装Nginx
sudo systemctl start nginx &
&
sudo systemctl enable nginx # 启动并设置开机自启
# 验证安装:浏览器访问服务器IP,应显示Nginx欢迎页面
3. 安装MariaDB(数据库服务器,MySQL替代方案)
sudo apt install -y mariadb-server mariadb-client # 安装MariaDB
sudo mysql_secure_installation # 运行安全脚本,设置root密码、移除匿名用户、禁止远程root登录
# 登录数据库验证:sudo mysql -u root -p
4. 安装PHP及扩展(后端脚本语言)
sudo apt install -y php php-fpm php-mysql php-opcache php-cli php-gd php-curl # 安装PHP及常用扩展
sudo systemctl start php7.4-fpm &
&
sudo systemctl enable php7.4-fpm # 启动PHP-FPM并设置开机自启
5. 配置Nginx解析PHP
编辑Nginx默认站点配置文件:
sudo nano /etc/nginx/sites-available/default
修改location ~ \.php$
部分,确保FastCGI传递到PHP-FPM:
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
# 使用Unix Socket通信
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
测试Nginx配置并重启:
sudo nginx -t # 验证配置语法
sudo systemctl restart nginx # 重启Nginx
6. 验证LNMP环境
在/var/www/html
目录下创建测试文件:
sudo nano /var/www/html/info.php
写入以下内容:
<
?php phpinfo();
?>
浏览器访问http://服务器IP/info.php
,若显示PHP信息页面则说明环境搭建成功。
二、高可用性优化(可选但推荐)
1. 负载均衡(分发流量到多台Nginx服务器)
使用Nginx自身作为负载均衡器,需至少两台Nginx后端服务器。
编辑负载均衡器配置(如/etc/nginx/conf.d/loadbalancer.conf
):
http {
upstream backend {
server 192.168.1.101:80;
# 后端Nginx服务器1
server 192.168.1.102:80;
# 后端Nginx服务器2
# 可添加更多服务器
}
server {
listen 80;
server_name yourdomain.com;
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;
}
}
}
测试配置并重载Nginx:
sudo nginx -t &
&
sudo systemctl reload nginx
2. MySQL高可用(主从复制)
主服务器配置:
编辑/etc/mysql/mysql.conf.d/mysqld.cnf
:
[mysqld]
server-id = 1 # 唯一ID
log_bin = /var/log/mysql/mysql-bin.log # 开启二进制日志
binlog_do_db = your_database # 需同步的数据库名
重启MySQL并创建复制用户:
sudo systemctl restart mysql
sudo mysql -u root -p
在MySQL中执行:
CREATE USER 'replicator'@'%' IDENTIFIED BY 'StrongPassword';
GRANT REPLICATION SLAVE ON *.* TO 'replicator'@'%';
FLUSH PRIVILEGES;
SHOW MASTER STATUS;
# 记录File和Position(后续从服务器需要)
从服务器配置:
编辑/etc/mysql/mysql.conf.d/mysqld.cnf
:
[mysqld]
server-id = 2 # 唯一ID(需与主服务器不同)
relay_log = /var/log/mysql/mysql-relay-bin.log
log_bin = /var/log/mysql/mysql-bin.log
binlog_do_db = your_database
read_only = 1 # 设置为只读(可选)
重启MySQL并配置主从同步:
sudo systemctl restart mysql
sudo mysql -u root -p
在MySQL中执行:
CHANGE MASTER TO
MASTER_HOST='主服务器IP',
MASTER_USER='replicator',
MASTER_PASSWORD='StrongPassword',
MASTER_LOG_FILE='mysql-bin.000001', # 主服务器记录的File
MASTER_LOG_POS=107;
# 主服务器记录的Position
START SLAVE;
# 启动复制
验证从服务器状态:
SHOW SLAVE STATUS\G # 查看Slave_IO_Running和Slave_SQL_Running是否为Yes
3. PHP-FPM高可用
通过多台PHP-FPM服务器配合负载均衡实现。每台服务器的PHP-FPM配置(/etc/php/7.4/fpm/pool.d/www.conf
)需确保listen
指令一致(如/run/php/php7.4-fpm.sock
),并通过NFS或分布式文件系统共享/var/www/html
目录(避免代码不同步)。
三、监控与维护
1. 安装监控工具(Prometheus + Grafana)
sudo apt install -y prometheus grafana
# 配置Prometheus监控Nginx、MySQL、PHP-FPM(需添加对应exporter)
# 配置Grafana展示监控面板(导入官方模板)
2. 数据备份
定期备份数据库和网站文件:
# 备份数据库
mysqldump -u root -p --all-databases >
/backup/mysql_$(date +%F).sql
# 备份网站文件
tar -czvf /backup/www_$(date +%F).tar.gz /var/www/html
3. 日志管理
使用logrotate
管理Nginx、MySQL日志,避免日志文件过大:
sudo nano /etc/logrotate.d/nginx
添加以下内容:
/var/log/nginx/*.log {
daily
missingok
rotate 14
compress
delaycompress
notifempty
create 0640 www-data adm
}
注意事项
- 版本兼容性:确保Nginx、MariaDB、PHP版本兼容(如PHP 7.4支持MariaDB 10.4+)。
- 安全加固:禁用不必要的Nginx模块、限制MySQL远程访问、定期更新软件包。
- 性能调优:根据服务器配置调整Nginx(
worker_processes
)、PHP-FPM(pm.max_children
)参数。
通过以上步骤,可在Debian系统上搭建稳定、高可用的LNMP集群,满足中小型网站的部署需求。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Debian LNMP集群搭建方法
本文地址: https://pptw.com/jishu/733148.html