Nginx报错nginx: [emerg] unknown log format "main"

 

 

故障描述:

  在添加Nginx的子配置文件后报错误nginx: [emerg] unknown log format "main" 

  无法重新加载,仔细查看配置没有语法错误经过调试才发现是定义log_format的时候写到HTTP模块最下面,导致子配置文件无法识别。

 

错误的写法

  include /opt/app/nginx/conf/conf.d/*.conf;



  log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                    '$status $body_bytes_sent "$http_referer" '
                    '"$http_user_agent" "$http_x_forwarded_for"';

  access_log  /opt/logs/nginx/access.log  main;


}

我是先引入了子配置文件然后才定义日志格式,所以报无法识别

 

解决方法:

将log_format 写到http开头

http
{

  log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                    '$status $body_bytes_sent "$http_referer" '
                    '"$http_user_agent" "$http_x_forwarded_for"';

  access_log  /opt/logs/nginx/access.log  main;

 

解决nginx: [error] open() "/usr/local/nginx/logs/nginx.pid" failed错误

重新启动服务器,访问web服务发现无法浏览啦!登陆服务器之后进到nginx使用./nginx -s reload重新读取配置文件,发现报nginx: [error] open() "/usr/local/nginx/logs/nginx.pid" failed (2: No such file or directory)错误,进到logs文件发现的确没有nginx.pid文件

 

[root@localhost sbin]# ./nginx -s reload

nginx: [error] open() "/usr/local/nginx/logs/nginx.pid" failed (2: No such file or directory)

 

解决方法:

[root@localhost nginx]# /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

 

使用nginx -c的参数指定nginx.conf文件的位置

 

[root@localhost nginx]# cd logs/

[root@localhost logs]# ll

总用量 12

-rw-r--r-- 1 root root 1246 12月  9 18:10 access.log

-rw-r--r-- 1 root root  516 12月 10 15:39 error.log

-rw-r--r-- 1 root root    5 12月 10 15:38 nginx.pid

 

看nginx.pid文件已经有了。

 

你可能感兴趣的:(Linux)