打开网站看到“Welcome to nginx!”或者“403 Forbidden”“502 Bad Gateway”,很多人第一反应是网站被黑。这几种页面含义完全不同,处理方法也不一样。
Welcome to nginx!
这是安装后的默认欢迎页,说明 Nginx 正常,但请求没落到你的站点配置上。常见原因:
- 域名解析到了这台服务器,但没配置对应的 server_name;
- 站点配置文件没被 include,或者改完没 reload;
- 多个配置监听同一域名,默认匹配到了别的。
排查:
nginx -T | findstr server_name
nginx -t
nginx -s reloadnginx -T 会把所有生效配置拼接输出,搜域名就能看出有没有命中。宝塔面板用户还要确认站点是否绑定该域名、运行状态是否正常。
403 Forbidden
Nginx 自己返回的,表示目录没权限读,或者目录下没有 index 文件。检查 root 指向的目录是否存在、Nginx 运行用户有没有读权限、SELinux 是否拦截。
502 Bad Gateway
请求转给后端(PHP-FPM、Node、Java)时后端没响应。可能是后端挂了、端口不一致、fastcgi_pass 写错、php-fpm 进程打满。先看进程:
ps -ef | grep php-fpm
netstat -lntp | grep 9000504 Gateway Timeout
后端处理超时。调大超时参数只是缓解,根因还要查程序里的慢查询和外部接口调用。
域名未备案被拦
国内服务器上出现拦截提示,可能是没备案被运营商拦。判断方法很简单:看 Nginx 访问日志里有没有这条请求,没有记录说明请求根本没到服务器。
通用排查顺序
- 用 IP 直接访问,排除解析问题;
- 看 error.log,一般在 /var/log/nginx/;
- 确认站点配置被正确加载;
- 确认后端服务在运行;
- 检查防火墙和安全组是否放行 80、443。