我正在尝试正确设置 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 的缓存日志文件