源码编译安装 nginx 后必须分层验证:①二进制可用(/usr/local/nginx/sbin/nginx -v/-t、权限检查);②服务能启(手动启动+ps/pgrep 验证进程);③端口在听(netstat/ss 查 80 端口,防火墙放行);④网页可访(curl 测试欢迎页,排查 403/404)。

源码编译安装 Nginx 后,不能只看 make install 是否执行成功,必须分层验证。核心是确认:二进制可用、服务能启、端口在听、网页可访。
检查 Nginx 二进制文件是否就位且可运行
源码安装默认路径是 /usr/local/nginx,关键文件在 sbin/ 目录下:
- 执行
/usr/local/nginx/sbin/nginx -v,应输出类似nginx version: nginx/1.26.2;若提示command not found,说明路径没加进环境变量,或安装路径被自定义(比如用了--prefix=/opt/nginx),需按实际路径调用 - 运行
/usr/local/nginx/sbin/nginx -t,检查配置语法是否正确,正常返回nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok和nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful - 用
ls -l /usr/local/nginx/sbin/nginx确认文件存在且有可执行权限(-rwxr-xr-x)
确认 Nginx 进程是否已启动
源码安装不会自动注册 systemd 服务,需手动启动或写 service 文件。验证方式更依赖进程和端口:
- 直接运行:
/usr/local/nginx/sbin/nginx(不带参数即前台启动,若无报错且光标未返回,说明已运行;按 Ctrl+C 可退出) - 后台启动:
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf,然后执行ps -ef | grep nginx,能看到 master 和 worker 进程 - 也可用
pgrep nginx或pidof nginx查是否有 PID 返回
验证监听端口与网络可达性
Nginx 默认监听 80 端口,需确认它真正在“听”:
- 执行
netstat -tuln | grep :80或ss -tuln | grep :80,应看到LISTEN状态,且进程名为 nginx(或显示 PID 对应 nginx) - 检查防火墙是否放行:CentOS/RHEL 用
firewall-cmd --query-port=80/tcp,Ubuntu/Debian 检查ufw status,若拦截需开放 - 本机访问测试:
curl -I http://127.0.0.1应返回HTTP/1.1 200 OK或302 Found;若超时或连接被拒,说明服务未启或端口不通
访问默认欢迎页确认完整链路
这是最终用户视角的验证,排除配置、权限、静态文件路径等问题:
- 确保
/usr/local/nginx/html/index.html存在(源码安装后该文件默认存在) - 浏览器或 curl 访问服务器 IP:
curl http://你的服务器IP,应返回 Nginx 默认欢迎页 HTML 源码(含welcome to nginx!字样) - 若返回 403,常见原因是
nginx.conf中 root 路径错误或目录权限不足(/usr/local/nginx/html需对运行用户可读) - 若返回 404,检查
server { ... }块中root或location /的路径是否指向了正确目录











