前言

  • CentOS Linux release 8.2.2004 (Core)
  • phpstdy X1.26
  • nginx1.15

配置nginx日志出错

nginx: [emerg] duplicate "log_format" name "main" in /usr/local/phpstudy/vhost/sys/nginx/sys.conf:8

名为 “main” 的 “log_format” 已存在,在/usr/local/phpstudy/vhost/sys/nginx/sys.conf 文件的第 8 行。

错误原因

我在nginx的配置文件/usr/local/phpstudy/soft/nginx/nginx-1.15/nginx/conf/nginx.conf中添加了名为 “main” 的 log_format。而/usr/local/phpstudy/vhost/sys/nginx/sys.conf文件已经存在名为 “main” 的 log_format (phpstdy 带的)。因此产生错误:nginx: [emerg] duplicate "log_format" name "main" in /usr/local/phpstudy/vhost/sys/nginx/sys.conf:8

/usr/local/phpstudy/soft/nginx/nginx-1.15/nginx/conf/nginx.conf的配置如下:

worker_processes auto;
user  www;error_log  logs/error.log;events {
use epoll;
worker_connections 1024;
multi_accept on;
}http {lua_package_path "/www/common/waf_lua/?.lua;;";include mime.types;log_format main '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';gzip  on;
gzip_buffers 16 8k;
gzip_comp_level 2;
gzip_min_length 8k;
gzip_types text/plain application/javascript text/css;   keepalive_timeout 65;client_body_buffer_size 8m;
client_header_buffer_size 32k;
client_max_body_size 50m;include /usr/local/phpstudy/vhost/sys/nginx/*.conf;
include /usr/local/phpstudy/vhost/nginx/*.conf;
}
stream {include  /usr/local/phpstudy/vhost/nginx/*.stream;
}

/usr/local/phpstudy/vhost/sys/nginx/sys.conf的配置如下:

    map $time_iso8601 $logdate {'~^(?<ymd>\d{4}-\d{2}-\d{2})' $ymd;default                       'date-not-found';}log_format  main  '$remote_addr - [$time_local] "$request"'$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_cookie"';access_log  logs/access_$logdate.log  main;sendfile   on;limit_conn_zone $binary_remote_addr zone=perip:10m;limit_conn_zone $server_name zone=perserver:10m;proxy_cache_path proxy_cache  levels=1:2  keys_zone=cache_one:100m inactive=2d  max_size=1g;lua_shared_dict limit 50m;lua_shared_dict servers 1m;

解决办法

保留一个名为 “main” 的 “log_format” 。

引申一个问题:如果想要为每个 server(或 vhost) 指定一个日志格式该如何?

定义不同名字的"log_format"。

比如,定了2个日志格式,分别名为server1server2

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

为每个 server指定一个日志格式。

server {...access_log /spool/vhost/logs/server1/access.log server1;...
}
server {...access_log /spool/vhost/logs/server2/access.log server2;...
}

参考

http://nginx.org/en/docs/http/ngx_http_log_module.html

nginx: [emerg] duplicate “log_format“ name “main“ in /usr/local/phpstudy/vhost/sys/nginx/sys.conf:11相关推荐

  1. Found several packages [runtime, main] in ‘/usr/local/Cellar/go/1.18/libexec/src/runtime;

    go语言引入 time 包时报错:Found several packages [runtime, main] in '/usr/local/Cellar/go/1.18/libexec/src/ru ...

  2. Nginx reload的时候出现的问题/usr/local/nginx/logs/nginx.pid

    [root@Frankie-4th nginx]# /usr/local/nginx/sbin/nginx -s reload nginx: [error] invalid PID number &q ...

  3. Nginx解决配置SSL证书报错:nginx: [emerg] unknown directive “ssl_certificate1“ in /usr/local/nginx/conf/ngi...

    前段时间自己尝试了下Nginx的反向代理, 将请求转发到Tomcat上; 应公司项目需要就自己研究了下配置添加证书, 实现https的请求; 我的证书是从阿里云买的免费的证书, 按照阿里云的提示, 将 ...

  4. 出现nginx: [emerg] unknown directive “]“ in /usr/local/openresty/nginx/conf/nginx.conf:74

    原因:fastdfs和nginx集成时,fastdfs-nginx-module安装错误 解决方法: ./nginx -s stop #停止nginx服务 cd /home/bigdata/nginx ...

  5. nginx: [emerg] open() /var/run/nginx/nginx.pid failed (2: No such file or directory)解决方法

    nginx: [emerg] open() "/var/run/nginx/nginx.pid" failed (2: No such file or directory) 问题: ...

  6. nginx: [emerg] socket() [::]:80 failed (97: Address family not supported by protocol)

    今天测试Docker下配置一个nginx模板的镜像,装好nginx后,使用nginx -t进行检查,报错如下: 1 2 3 4 [root@a381c4c04132 yum.repos.d]# ngi ...

  7. nginx安装包 linux,Linux(CentOS)环境下安装下载Nginx并配置

    1.准备工作 选首先安装这几个软件:GCC,PCRE(Perl Compatible Regular Expression),zlib,OpenSSL. Nginx是C写的,需要用GCC编译:Ngin ...

  8. 《深入理解Nginx:模块开发与架构解析》一1.6 Nginx的命令行控制

    1.6 Nginx的命令行控制 在Linux中,需要使用命令行来控制Nginx服务器的启动与停止.重载配置文件.回滚日志文件.平滑升级等行为.默认情况下,Nginx被安装在目录/usr/local/n ...

  9. /usr/local/php-5.2.14/sbin/php-fpm start Starting php_fpm –fpm-config

    1.将fpm打包放到php源代码中 gzip -cd php-5.2.8-fpm-0.5.10.diff.gz | patch -d php-5.2.8 -p1 2.编译安装php 记得带上 –ena ...

最新文章

  1. 如何在 Centos8 中安装 Lynis审计工具
  2. Dependabot:自动创建GitHub PR修复潜在漏洞
  3. javascript类型注意事项
  4. android图片保存形式,Android应用开发之Android ScrollView截图和图片保存到相册的方式...
  5. c++ 每半个小时打印一次_有了3D打印机,后期该如何维护呢
  6. 微信开发本地调试工具(模拟微信客户端)
  7. shell如何检测linux发行版本,shell判断软件版本
  8. linux内核相关的两个问题
  9. 探索SQL Server元数据(一)
  10. 删除magisk模块
  11. APP兼容性专项测试
  12. 什么是外汇EA?外汇EA有什么风险?
  13. ISP简介(stm32)
  14. 1143-最长公共子序列的长度和最长公共子序列
  15. 【SpringBoot】application配置文件及注入
  16. 《高级计算机网络》之无线传感网——大连理工大学研究生课程整理笔记(非常详细,通俗易懂)
  17. [leetcode]378. 有序矩阵中第 K 小的元素
  18. Word输入空心字母|ℂ ℕ ℝ ℚ ℤ黑板粗体LaTex
  19. ROS wiki系列|Documentation-ROS部分讲解
  20. ORACLE EBS的系统集成性

热门文章

  1. React Native微信支付开发爬坑之旅
  2. 云计算从“仰望星空”到“脚踏实地”
  3. 飞鹤乳业CIO:移动化让企业品牌和消费者紧密连接
  4. cmake中的变量和命令的大小写
  5. 小蚂蚁学习C语言(35)——两行三列二维数组变三行两列二维数组
  6. c++ explicit 修饰构造函数
  7. DNS高级部署使用RSYNC部署搭建DNS view主从服务
  8. 严重: StandardServer.await: create[8005]:
  9. oracle中if/else功能的实现的3种写法
  10. mvc4中的 webapi 的使用方式