WordPress 网站打不开排查
先判断断在哪一层,再决定谁去修
网站打不开和白屏不是一回事。白屏意味着服务器还在响应,只是 PHP 出错了;打不开往往连响应都没有,问题可能在域名解析、端口、证书、CDN 或云主机本身。判断错层,就会在 WordPress 里白找半天。这篇按浏览器报错分层,给出每一层的验证命令、判断依据和需要找谁处理。
浏览器报错就是分层线索
四种提示对应四段链路
同一台电脑打开不同报错,说明断点不同。让客户截图发来,比问「能不能打开」有用得多。
域名解析失败
提示 DNS_PROBE_FINISHED_NXDOMAIN 或「找不到服务器 IP 地址」。说明域名没有解析记录、解析被删,或域名本身过期。
连接被拒绝或超时
ERR_CONNECTION_REFUSED 是端口没人监听;ERR_CONNECTION_TIMED_OUT 是数据包被丢弃。前者多为服务没启动,后者多为安全组或防火墙拦截。
证书与协议错误
ERR_SSL_PROTOCOL_ERROR 或证书过期警告。前者是握手失败,常见于证书与域名不匹配、TLS 版本过低;后者是证书到期未续。
网关类错误
502 是后端 PHP 没响应,504 是后端处理超时,403 多为防火墙或权限规则拦截。这三种说明 Web 服务还活着。
八类常见原因
从外到内逐层排除
顺序按「离用户最近」到「离数据库最近」排。越靠前的越容易查,也越容易被忽略。
域名与解析
域名到期未续费、解析记录被误删、A 记录还指向旧服务器 IP、DNS 服务器故障。换服务器后最常见。
云主机状态
实例欠费停机、被服务商因资源超限暂停、系统盘写满导致服务无法启动,控制台里能看到状态异常。
Web 服务未运行
Nginx 或 Apache 进程退出,配置改错后未通过语法检查就重载,导致服务直接停掉。
端口与安全组
云平台安全组没放行 80、443,或系统防火墙规则变更。表现为本地能访问、外网不能。
SSL 证书过期
免费证书 90 天到期,自动续期任务失败后无人发现。移动端和部分浏览器会直接拦截。
CDN 与回源
CDN 节点缓存了错误响应、回源地址填错、源站改了 IP 但 CDN 没同步,会出现部分地区打不开。
防火墙与 WAF
安全插件或云 WAF 把正常访问判成攻击,触发 IP 封禁。特征是只有某些地区或某些网络打不开。
数据库与磁盘
数据库服务停止、连接数打满、磁盘满导致无法写入会话。这类常伴随 502 或 500。
六条命令定位断点
只读,不影响线上
下面的命令在本地终端或服务器上执行都可以。前三条确定「域名指向哪、端口通不通、证书对不对」,基本能覆盖八成情况。
查解析
dig 域名 +short,或 nslookup 域名。返回的 IP 要和服务器实际公网 IP 一致。用多个公共 DNS 各查一次,排除本地缓存。
测端口
nc -vz 域名 443,或 telnet 域名 80。连接被拒绝说明服务没起;一直卡住说明被防火墙丢包。这一步能区分「服务问题」和「网络问题」。
看握手与状态码
curl -Iv https://域名,重点看三行:连接是否建立、证书有效期、HTTP 返回码。加 -k 可跳过证书校验,用来判断是否是证书导致的中断。
看服务与日志
systemctl status nginx 看进程;nginx -t 检查配置语法;tail -f /www/wwwlogs/站点.error.log 看实时错误。502 多数能在 PHP-FPM 日志里找到原因。
再看资源
df -h 看磁盘使用率,df -i 看 inode;free -m 看内存与 swap;top 看是否有进程占满 CPU。磁盘 100% 时 MySQL 会直接拒绝写入,表现就是整站打不开。
最后看 WordPress
前面都正常但页面仍是 500,就回到应用层:开 WP_DEBUG 看 debug.log,或用插件目录改名法验证冲突,具体步骤见 WordPress 白屏排查。
按层处理,别一上来就重装
每一步都有中断风险
处理动作里,重启服务、改解析、换证书都会造成短时不可用。低峰期操作,并提前告知业务方,比事后解释省事。
解析与域名
解析记录改回正确 IP,TTL 建议先设 600 秒,验证通过后再调回 3600。域名过期要尽快续费,赎回期费用明显更高。大陆服务器还需确认备案状态正常,未备案会被服务商拦截。
服务与端口
nginx -t 通过后再 systemctl reload nginx,不要直接 restart。安全组放行 80 与 443,系统防火墙同步检查。重启 PHP-FPM 会中断正在提交的订单,选在低峰执行。
证书与 CDN
证书到期前 15 天续期,续完确认证书链完整,否则部分安卓机仍报错,具体流程见 SSL 证书与 HTTPS 配置。CDN 侧要清空缓存并核对回源地址,源站 IP 变更后必须同步,具体配置见 CDN 加速配置。
如果只有部分用户打不开,先怀疑 WAF 与地区线路,处理思路见 防火墙与 WAF 配置。改动任何配置前,把原文件复制一份带日期的备份,改错能立刻还原;数据库和 wp-content 也建议在动手前打包一次。
报错、层级、处理对照
排查时照着走
| 现象 | 可能原因 | 处理动作 |
|---|---|---|
| 提示找不到服务器 IP | 解析记录缺失、域名过期 | dig 核对 A 记录,续费域名 |
| 连接被拒绝 | Nginx 未启动或端口未监听 | nginx -t 后启动服务,查 80 与 443 监听 |
| 连接超时 | 安全组或系统防火墙拦截 | 放行端口,核对云平台规则 |
| 证书错误或警告 | 证书过期、域名不匹配、证书链不全 | 续期并补全中间证书,重启 Web 服务 |
| 502 Bad Gateway | PHP-FPM 未运行或进程打满 | 查看 PHP 日志,调整进程数后重启 |
| 504 Gateway Timeout | 脚本执行超时、数据库慢查询 | 看慢查询日志,延长超时或优化查询 |
| 403 Forbidden | WAF 拦截、目录权限或 IP 限制 | 查拦截日志,临时放行后调整规则 |
| 部分地区打不开 | CDN 节点异常或回源失败 | 清空缓存,核对回源地址与源站 IP |
整站打不开时,先确认是「一个用户」还是「所有用户」。让三个不同网络的人同时访问,再结合上面的命令,能避免在个别用户的本地网络问题上耗时间。
网站打不开常见问题
五个被问得最多的
常见三种:客户的 DNS 缓存还没过期、客户端所在网络被 WAF 拦了、CDN 部分地区节点异常。让客户换手机流量试一次,同时用第三方多地拨测工具测同一 URL,两边对照就能分清。
DNS 有 TTL 缓存,本地和运营商都可能缓存旧记录。把 TTL 提前调小能缩短切换时间;切换后用 dig 指定公共 DNS 逐个确认,必要时让客户清本机 DNS 缓存。
502 是后端没有给出有效响应,通常是 PHP-FPM 挂了或进程不够用;504 是后端处理超时,通常是脚本跑太久或数据库查询慢。前者查进程与并发,后者查慢查询与超时设置。
桌面浏览器多数会显示警告页,用户点继续仍能访问;部分移动端内置浏览器和微信内打开会直接拦截。对以询盘为目标的站,这等于断单,续期要设提前量。
能恢复一部分,但会把根因一起重启掉,下次还会复发。重启前先看日志里最后几条错误,把原因记下来,否则等于放弃排查。磁盘满、数据库损坏这类问题,重启后往往很快再次出现。
站打不开,先别急着重装
把报错截图发来,我们分层判断
浏览器报错原文、域名、服务器所在地、最近一次改动,这四项能快速定位断点。需要长期盯站的,也可以配一套可用性监控与定期巡检。