第二章 网站与域名排错
先说一句大实话
网站排错的核心,是搞清楚“请求走到哪一步死了”。 一个用户在浏览器输入你的域名,到他看到页面,中间要经过六七个环节。任何一环出问题,表现都是“网站打不开”。所以第二章不讲“怎么建站”,只讲“怎么找出死在哪一环”。
一个请求要闯几道关
把浏览器到你的网站之间的路径画清楚,排错就有了地图:
用户浏览器
↓ 域名解析(DNS)
云服务商安全组
↓ 端口放行
服务器防火墙
↓ 端口放行
OpenResty(1Panel 的网站服务)
↓ 按域名找到对应网站配置
后端服务(PHP / Java / Node / 反向代理的目标)
↓ 读写文件 / 连数据库
数据库 / 存储卷
排错就是从上往下或者从下往上,一节一节测过去。 比如能 ping 通但浏览器 502,DNS 就没问题,问题在 OpenResty 和后端之间;如果能打开首页但接口 404,问题在反代路径配置。
OpenResty:所有网站的必经之路
1Panel 创建的所有网站,入口都是 OpenResty。这一点决定了排错的基本动作:
| 情况 | 说明 |
|---|---|
| OpenResty 挂了 | 所有网站全挂,一个都打不开 |
| 单个网站配置错 | 只有这个网站挂,别的正常 |
| 后端服务挂了 | OpenResty 报 502 或 504 |
记住这个规律:“全挂”和“单个挂”的排查方向完全不同。 全挂先看 OpenResty 状态,单个挂先看那个网站的配置和日志。
在哪里看 OpenResty?网站列表上方的工具栏,可以停止、启动、重启 OpenResty,还有重载(不停机应用新配置)和查看日志。排错的时候,重载比重启好用——不中断现有连接。
1Panel 支持的建站方式
排错之前,先确认这个网站是哪种类型,因为不同类型的排错重点不同:
| 类型 | 后端是什么 | 常见排错重点 |
|---|---|---|
| 一键部署 | 应用商店里的应用(WordPress、Halo 等) | 应用容器状态、数据库 |
| 运行环境 | PHP / Node.js / Java / Go / Python / .NET | 运行环境是否正常、端口 |
| 反向代理 | 转发到别的服务 | 代理地址对不对、跨域 |
| 静态网站 | 纯 HTML 文件 | 目录权限、默认文档 |
| 子网站 | 复用父网站的目录 | 父网站是否正常 |
| TCP/UDP 代理 | OpenResty Stream 转发四层流量 | 端口占用、防火墙放行 |
建站方式决定了排错路径。比如反向代理的网站报 404,你要查的是代理地址;静态网站报 404,你要查的是目录里有没有那个文件。
这一章解决四个问题
| 小节 | 问题 | 一句话答案 |
|---|---|---|
| 2.1 | 网站打不开:502 / 504 / 一直转圈 | 先分清是全站挂还是单个站,再看 OpenResty 日志 |
| 2.2 | HTTPS 证书申请失败与续签异常 | 先看证书日志的报错原文,再查域名解析 |
| 2.3 | 反向代理后接口 404 与跨域 | 代理路径、CORS 配置、WebSocket 升级头 |
| 2.4 | 运行环境报错与伪静态问题 | PHP 版本/扩展、伪静态规则、目录权限 |
两个最常用的排错入口
这一章会反复用到两个地方,先记住位置:
第一个:网站日志。 在 日志审计 → 网站日志,选一个网站,能看 OpenResty 的访问日志和错误日志。90% 的网站问题,错误日志里都写得明明白白。
第二个:OpenResty 设置。 网站列表上方的工具栏。当前状态页能看到活动连接数、请求数、驻留进程;日志页支持实时追踪和按时间段筛选。具体能力取决于 OpenResty 是否正常运行和日志配置。
一个真实的工作习惯:排错的时候开两个浏览器标签,一个看网站日志的错误日志,一个改配置。改一次,切过去看日志有没有新报错。这比“改了试试、试了再猜”快十倍。
一条边界:HTTPS 相关的坑特别多
证书申请、续签、HTTPS 配置,是网站排错里问题最集中的一块。原因很简单:它依赖的东西最多——域名解析要对、DNS 服务商 API 要通、80 或 443 端口要开、网站配置不能变。任何一个环节变了,证书就可能申请失败。
而且证书失败有个恶心之处:网站还能用 HTTP 打开,你会以“网站正常”忽略它,直到某天浏览器突然红色警告。所以 2.2 节会专门讲怎么监控和排查证书问题。
本章会反复出现的概念
| 概念 | 一句话解释 |
|---|---|
| OpenResty | 1Panel 网站服务的核心,基于 Nginx |
| 伪静态 | 把 /article/123 这种“假静态路径”转给动态程序处理 |
| 反向代理 | 前台把请求转给后端服务,像公司前台转接分机 |
| CORS | 浏览器的跨域限制,前后端分离必踩 |
| ACME 账户 | 申请 Let's Encrypt 这类免费证书的账号 |
| DNS 账户 | 调用 DNS 服务商 API 自动加解析验证的账号 |
更完整的网站功能说明见 1Panel 官方文档:网站。
下一节:我们从最吓人的“网站打不开”开始——502、504、浏览器转圈,三种症状各自的病根。
