如何正确设置 nginx 缓存的 access_log

如何正确设置 nginx 缓存的 access_log

我正在尝试正确设置 nginx 的日志记录作为 Apache 的反向代理,以便我可以看到 IP全部日志文件不仅仅是 domlogs

在我的 vhosts 文件中我使用:

access_log /usr/local/apache/domlogs/site.net combined;

但我还设置了一个微缓存,并在 microcache.inc 中使用:

access_log /var/log/nginx/microcache.log custom_microcache;

这可行,但在文件 microcache.log 中我看不到在 domlog 文件中可以看到的真实 IP 地址,我该怎么做?

这是我在 proxy.inc 中的内容,它可以让 domlog 很好地转换 IP

proxy_set_header   Referer $http_referer;
proxy_set_header   Host   $host;
proxy_set_header   Cookie $http_cookie;
proxy_set_header   X-Real-IP  $remote_addr;

答案1

答案很简单,我使用了错误的 log_format 并且没有意识到我必须自己编写。

以下是我最终使用的 log_format:

log_format newlog '$remote_addr forwarded for $http_x_real_ip - $remote_user [$time_local]  '
                      '"$request" $status $body_bytes_sent '
                      '"$http_referer" "$http_user_agent"';

然后在我的 microcache.inc 文件中我声明了以下内容:

access_log /var/log/nginx/microcache2.log newlog;

现在我有了包含真实 IP 的缓存日志文件

相关内容