我在gke上使用nginx入口控制器,默认情况下这些是我的访问日志的样子:
"10.123.0.20 - [10.123.0.20] - - [22/Apr/2019:18:47:59 +0000] "GET /sdflksdf/sdfsdf HTTP/2.0" 404 0 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_2) AppleWebKit/538.12 (KHTML, like Gecko) Chrome/73.0.3683.100 Safari/537.36" 26 0.002 [default-blah-80] 10.44.0.26:80 0 0.001 404 skjf0s93jf0ws93jfsijf3s3fjs3i
我想在访问日志中添加x-forwarded-for标头。我希望在可能的情况下将该字段添加到当前日志行的末尾。或者在日志行的开头也可以
我正在查看他们的文档,并且我不清楚如何将x-forwarded-for添加到访问日志:https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/log-format/
您应该使用ConfigMap来customize the NGINX configuration:
ConfigMaps允许您将配置工件与图像内容分离,以保持容器化应用程序的可移植性。
ConfigMap API资源将配置数据存储为键值对。数据提供nginx控制器的系统组件配置。
要配置自定义日志,您需要使用log-format-upstream
密钥。
e.f.:
创建以下configmap:
apiVersion: v1
data:
log-format-upstream: '$remote_addr - $request_id - [$proxy_add_x_forwarded_for] - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" $request_length $request_time [$proxy_upstream_name] $upstream_addr $upstream_response_length $upstream_response_time $upstream_status'
kind: ConfigMap
metadata:
name: nginx-ingress-config
并确保您使用--configmap=$(POD_NAMESPACE)/nginx-ingress-config
作为命令args
为您的nginx-ingress-controller(example from offical repo here)。