LNMP(Linux+Nginx+MySQL+PHP)架构的高可用性实现需要从各个组件层面进行优化和冗余配置。以下是详细的实现方案:
upstream backend {
server 192.168.1.101:80 weight=5 max_fails=3 fail_timeout=30s;
server 192.168.1.102:80 weight=5 max_fails=3 fail_timeout=30s;
keepalive 32;
}
server {
listen 80;
location / {
proxy_pass http://backend;
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
}
}
-- 主库配置
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
-- 从库配置
CHANGE MASTER TO
MASTER_HOST='master_host',
MASTER_USER='repl',
MASTER_PASSWORD='password',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=107;
START SLAVE;
pm = dynamic
pm.max_children = 50
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 15
pm.max_requests = 500
php
ini_set('session.save_handler', 'redis');
ini_set('session.save_path', 'tcp://redis1:6379,tcp://redis2:6379?persistent=1&weight=1&timeout=1&retry_interval=15');
通过以上方案的综合实施,可以构建一个高可用的LNMP架构,确保业务连续性。