Nginx 报错的原因很多,必须结合具体错误信息才能准确判断。不过我可以先给你最常见的几类原因 + 排查思路,你对照一下,或者直接把报错内容贴出来,我可以精准帮你分析。
一般在这几个位置:
/var/log/nginx/error.log
/var/log/nginx/access.log
查看最新错误:
tail -n 50 /var/log/nginx/error.log
报错示例:
nginx: [emerg] unknown directive "server" in /etc/nginx/nginx.conf:10
nginx: [emerg] unexpected "}" in /etc/nginx/conf.d/default.conf:20
原因
; 或 }排查
nginx -t
✅ 只要看到 test is successful 才算配置没问题
报错示例:
bind() to 0.0.0.0:80 failed (98: Address already in use)
原因
排查
ss -lntp | grep 80
解决
报错示例:
open() "/var/www/html/index.html" failed (13: Permission denied)
原因
解决
chown -R nginx:nginx /var/www/html
chmod -R 755 /var/www/html
报错示例:
connect() failed (111: Connection refused) while connecting to upstream
原因
排查
curl http://127.0.0.1:8080
报错示例:
SSL_CTX_use_PrivateKey_file failed
SSL: error:0B080074:x509 certificate routines:X509_check_private_key
原因
排查
nginx -t
openssl x509 -noout -modulus -in cert.pem | md5sum
openssl rsa -noout -modulus -in key.pem | md5sum
报错示例:
open() "/etc/nginx/conf.d/xxx.conf" failed (2: No such file or directory)
你可以按顺序来:
# 1. 检查配置
nginx -t
# 2. 查看错误日志
tail -n 50 /var/log/nginx/error.log
# 3. 检查端口
ss -lntp
# 4. 检查权限
ls -ld /var/www/html
请把下面任意一项发我即可:
nginx -t 的输出nginx.conf 或 server {} 配置我可以一步一步帮你修 ✅