Linux网络与MySQL优化:代理IP、conntrack问题与主从切换

需积分: 35 69 下载量 163 浏览量 更新于2024-08-09 收藏 8.71MB PDF 举报
"这篇文档主要涉及了Linux运维中的多个关键问题,包括Nginx代理IP记录、iptables连接跟踪表满的问题、PHP-FPM进程过高、MySQL主从切换策略以及数据库恢复和性能优化等核心知识点。内容来自www.eimhe.com美河学习在线的收集分享。" 1. **Nginx代理IP记录**: 在Nginx作为反向代理服务器的设置中,通常会记录代理服务器自身的IP而非客户端的真实IP。为了记录客户端IP,你需要在Nginx配置文件中设置`proxy_set_header X-Real-IP $remote_addr;`,这将使Nginx传递原始请求者的IP地址。 2. **iptables连接跟踪表满**: `/var/log/messages`中出现`KERNEL: NF_CONNTRACK: TABLEFULL, DROPPING PACKET.`表示iptables的连接跟踪表已满,无法跟踪新的连接。解决方法包括增大`ip_conntrack_max`值(限制连接跟踪表的最大条目数)或调整其他相关参数,如`ip_conntrack_hashsize`,以适应更高的并发连接。 3. **PHP-FPM进程过高**: PHP-FPM进程高可能由于请求过多、内存不足或配置不当等原因。解决方案可能包括优化PHP配置(如增加工作进程数量、调整内存限制),检查并优化代码效率,或者排查是否有资源占用过大的进程。 4. **MySQL主从切换**: 当主库宕机时,需要进行手动主从切换。这涉及确认所有relay log已读取、选择新主库、配置更改、重置主库、创建同步用户,以及更新应用程序连接信息。如果主库未宕机,也有相应的切换策略,包括平滑切换和故障转移。 5. **数据库恢复**: 误删除数据后,恢复的关键是备份。如果存在最近的完整备份,可以简单地恢复到备份点。如果没有,可能需要依赖二进制日志(binlog)进行增量恢复。具体步骤包括停止写入、定位到错误时间点、应用binlog事件直至恢复点。 6. **性能优化**: 网站打开慢可能由数据库访问慢引起。优化包括检查系统资源(如CPU、内存、IO)、调整MySQL参数(如`max_connect_errors`、`connect_timeout`等),以及优化SQL查询和索引。例如,启用`skip-name-resolve`可以避免DNS解析开销,`slave-net-timeout`则影响复制延迟。 这个文档提供了丰富的Linux运维实战经验,涵盖了常见的问题及其解决方案,对于准备面试或提升运维技能非常有帮助。