赞
踩
1、服务版本
2、Nginx 持久化目录
.
├── bak
│ └── img.zip
├── conf
│ ├── conf.d
│ ├── nginx.conf
│ └── nginx.conf.bak
├── html
│ ├── config.js
│ ├── favicon.ico
│ ├── html
│ ├── img
│ ├── index.html
│ ├── readme.md
│ ├── robots.txt
│ ├── static
│ └── update.sh
└── logs
├── access.log
├── cls_label_access.log
├── cls_label_error.log
└── error.log
3、问题描述
当我修改 Nginx 配置文件 nginx.conf,并新增自定义 log_format,如下所示:
log_format cls '$remote_addr - $remote_user [$time_local] '
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent" '
'"$http_x_forwarded_for" $request_id '
'$geoip_country_name $geoip_country_code '
'$geoip_region_name $geoip_city ';
但重启 Nginx 容器时报如下错:
nginx: [emerg] unknown "geoip_country_name" variable
经网上查阅了一下资料,原因是 Nginx 缺少 geoip 的相关库文件,需要在配置文件中通过 load_module
参数加载引用。但需要注意的是该参数的位置不能位于 events
后,否则会报如下的报错:
nginx: [emerg] "load_module" directive is specified too late in /etc/nginx/nginx.conf:11
1、nginx.conf 配置文件中全局加载 geoip 的相关库文件
cat nginx.conf
...
load_module modules/ngx_http_geoip_module.so;
events {
worker_connections 1024;
}
...
2、重启 Nginx 容器
docker restart nginx
# 查看nginx日志是否报错
docker logs -f nginx
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。