Nginx的常见错误及解决方案
参考资料
错误:端口冲突
问题:
bind() to 0.0.0.0:80 failed (98: Address already in use)
原因:80端口被其他服务占用(如Apache)。
解决方案:
sudo netstat -tulnp | grep :80 # 查看占用进程 sudo kill <PID> # 终止占用进程
错误:文件权限不足
问题:
open() "/var/log/nginx/error.log" failed (13: Permission denied)
原因:Nginx用户无日志目录写入权限。
解决方案:
sudo chown -R nginx:nginx /var/log/nginx sudo chmod -R 755 /var/log/nginx
错误:语法错误
问题:
nginx: [emerg] unknown directive "servr" in /etc/nginx/conf.d/default.conf
原因:配置文件中存在拼写错误(如
servr
应为server
)。解决方案:
# 修正后的配置示例 server { listen 80; server_name example.com; }
错误:SSL证书问题
问题:
SSL_CTX_use_PrivateKey_file("/path/to/key") failed (SSL: error:0909006C:PEM routines:get_name:no start line)
原因:证书或密钥文件格式错误。
解决方案:
# 正确配置示例 server { listen 443 ssl; ssl_certificate /path/to/cert.pem; ssl_certificate_key /path/to/key.pem; }
错误:404 Not Found
问题:静态文件返回404。
原因:
root
或alias
路径配置错误。解决方案:
# 正确配置示例 location /static/ { alias /var/www/static/; # 注意结尾的/ }
错误:重定向循环
问题:
ERR_TOO_MANY_REDIRECTS
原因:
server_name
未正确配置或HTTPS强制重定向逻辑错误。解决方案:
# 正确配置示例 server { listen 80; server_name example.com; return 301 https://$host$request_uri; }
错误:上游服务不可达
问题:
connect() failed (111: Connection refused) while connecting to upstream
原因:后端服务未运行或防火墙阻止。
解决方案:
# 检查后端服务状态 upstream backend { server 127.0.0.1:8080; }
错误:请求头过大
问题:
upstream sent too big header while reading response header from upstream
解决方案:
# 调整缓冲区大小 proxy_buffer_size 128k; proxy_buffers 4 256k;
错误:worker_connections不足
问题:
worker_connections are not enough while connecting to upstream
解决方案:
# 在nginx.conf中增加 events { worker_connections 4096; }
错误:临时文件写入失败
问题:
/tmp/nginx/proxy_temp failed (28: No space left on device)
原因:磁盘空间不足。
解决方案:
df -h # 检查磁盘空间 sudo nginx -t # 测试配置 sudo systemctl restart nginx
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。