在开始排查菲律宾服务器(通常是 Ubuntu/CentOS/Debian)上的英文日志与报错前,首先确保能远程登录:使用 SSH 登录(ssh user@ip -p 端口)。准备好 sudo 权限或 root。建议先更新本地终端环境并安装常用工具:sudo apt update && sudo apt install -y vim less grep net-tools lsof tcpdump jq
将常见英文短语和含义背下来便于第一时间定位:Connection refused(连接被拒绝:目标端口未监听或防火墙拦截);Connection timed out / timeout(超时:网络/后端无响应);502 Bad Gateway / 504 Gateway Timeout(反向代理与后端通信异常或超时);Permission denied(权限不足,文件或目录权限或 SELinux);No space left on device(磁盘已满);Segmentation fault(程序崩溃);SSL handshake failed(证书或协议不匹配)。遇到日志先对照这些短语。
常见位置:/var/log/nginx/error.log,/var/log/nginx/access.log,/var/log/messages,/var/log/syslog,/var/log/mysql/error.log,/var/log/php7.4-fpm.log。常用命令:tail -n 200 /var/log/nginx/error.log 查看历史,tail -f /var/log/nginx/error.log 实时;grep -i "error" /var/log/nginx/* 过滤;journalctl -u nginx -b --no-pager 查看 systemd 服务日志。先找最近时间的 ERROR/WARN 条目。
步骤:1) 检查服务是否运行:sudo systemctl status nginx 或 sudo systemctl status php-fpm;2) 查看端口监听:ss -tunlp | grep LISTEN 或 netstat -plant | grep :80;3) 若服务未监听,检查配置错误:sudo nginx -t;4) 查看防火墙:sudo iptables -L -n 或 sudo ufw status;5) 从外部测试端口:telnet IP 80 或 curl -v http://IP:端口。按顺序修复:启动服务->修正配置->打开防火墙端口。
502/504 常见为反向代理(Nginx)到后端(PHP-FPM/Apache)通信问题。步骤:1) 检查 Nginx 错误日志及时间戳;2) 检查后端进程是否健康:ps aux | grep php-fpm 或 systemctl status php-fpm;3) 测试本地后端端口或 socket:curl --unix-socket /run/php/php7.4-fpm.sock http://localhost/ 或 curl -v http://127.0.0.1:9000/;4) 若超时,查看后端慢请求或数据库连接:查看 PHP-FPM 静态进程数、max_children 设置;5) 若是长时间查询导致超时,调整超时配置(fastcgi_read_timeout / proxy_connect_timeout)并优化后端。
步骤:1) 查看文件或套接字权限:ls -l /path/to/file;2) 若为 SELinux(CentOS)导致,查询上下文:ls -Z /path;临时测试关闭:sudo setenforce 0(仅测试);2) 永久修复需用 chcon 或 semanage fcontext --add + restorecon;3) 对 AppArmor(Ubuntu)使用 aa-status 与 aa-complain/aa-enforce;4) 修正权限:sudo chown -R www-data:www-data /var/www && sudo chmod -R 750 /var/www。
命令:df -h 查看磁盘使用;df -i 查看 inode;du -sh /var/log/* 找大文件;journalctl --disk-usage 查看 systemd 日志占用。解决:清理旧日志(sudo logrotate --force /etc/logrotate.conf 或手动删除老日志 gzip),清理 apt 缓存(sudo apt-get clean),清理临时文件(sudo rm -rf /tmp/*),增加磁盘或扩展分区。
先用 ping 与 traceroute/tracert 确认路径:traceroute destination;再抓包分析:sudo tcpdump -nn -i eth0 host
查看数据库错误日志:/var/log/mysql/error.log 或 /var/lib/mysql/hostname.err。用 mysqladmin ping -u root -p 检查是否活着。检查连接数:mysql> SHOW PROCESSLIST;;检查 max_connections 是否被打满:SHOW VARIABLES LIKE 'max_connections'; SHOW STATUS LIKE 'Threads_connected';。若超限,临时提升 max_connections 或优化应用连接池。
方法:1) 识别关键词(refused, timeout, permission, no space, denied, crash, segmentation, failed);2) 把关键词映射到上面对应章节的操作步骤;3) 使用 Google/翻译辅助理解长句,然后在日志中查找相同时间戳的上下文;4) 记录复现步骤并逐项验证(服务状态、端口、配置、权限、磁盘、网络)。
答:第一步查看 Nginx/Apache 的 SSL 日志(error.log),确认证书是否过期(openssl x509 -in cert.pem -noout -text | grep 'Not After'),检查证书链是否完整,确保证书与私钥匹配(openssl x509 -noout -modulus -in cert.pem | openssl md5 与私key 对比)。若证书正常,再检查客户端协议/加密套件兼容性(ssl_protocols, ssl_ciphers)。
答:通过分层检测:从服务器内部 curl 本地服务看响应(排除网络),检查后端日志(PHP/MySQL)找慢查询;用 top/htop 查看 CPU/IO 瓶颈;再从外网 curl 测试并 traceroute 看网络延迟。如果内部响应快但外部慢,多为网络或防火墙问题;若内部慢,则优化应用或扩展资源。
答:记录包括:错误原文、发生时间、定位步骤、最终修复命令与配置改动、恢复时间。把常见错误和解决脚本写入运维手册并建立监控告警(Disk、CPU、服务端口、HTTP 5xx、response time),设置 logrotate 与自动备份,定期演练恢复流程。