nginx 错误调试一则例子
nginx的日志,有主进程日志和子进程日志之分。主进程就是nginx进程,子进程就是这些worker进程。要调试错误,最好把子进程日志打开。
今天部署fastdfs的时候,能上传图片,访问图片报http 400错误。http400错误就是服务器进程有问题。
由于没有打开子进程日志,访问curl -v 之后程序hang住。没有听错,程序hang住了。
什么问题呢?这个时候把子进程日志打开:
vim nginx_fastdfs_storage.conf
server {
listen 8888;
server_name localhost;
access_log logs/access.log main; ##打开日志
location ~* /(?:app|accsett)/M00/(.+)?_width([0-9]+)?_height([0-9]+)?_networkType(.+)?.(jpg|jpeg|gif|png|webp) {
省略。。。。
}
location ~/(app|accsett)/M00 {
ngx_fastdfs_module;
}
如果相对electron有更多直观理解的, 也可以参考其格式如下:
location = /50x.html {
root html;
} }
然后再次访问curl -v ,发现还是hang住,子进程不见了。同时页游后台报错:
ERROR - file: ../common/fdfs_http_shared.c, line: 153, param "http.mime_types_filename" not exist or is empty
work process 进程崩溃了,导致hang住,有错误。既然有错误日志,就好办了,百度搜索解决了。主要展示是nginx的调试过程