
Linux入门教程: Nginx服务器日志配置-解决了使用CDN记录真实用户IP(包括宝塔),rsyslog配置日志服务器修改配置文件位置的问题
关于nginx的日志配置,我之前写过一篇: 今天再次使用它,发现有很多地方没有提到,所以我将写一个更全面的记录.
关于如何更改的教程很多,但是基本问题是哪个文件以及在哪里更改以及如何生效.

我们需要修改nginx.conf根配置文件
使用lnmp的服务器的常规配置文件位于: /usr/local/nginx/conf/nginx.conflinux修改ip配置文件,宝塔的配置文件我发现nginx.conf配置文件有两个地方: / www / server / nginx / conf /nginx.conf、/www/server/nginx/src/conf/nginx.conf. 有效的配置文件是: /www/server/nginx/conf/nginx.conf
在以下位置添加修改后的配置:


需要注意的一件事是log_format main. 需要将此处的主要内容放入vhost中每个站点的日志配置中,以指示此配置的使用,如图所示:


修改以上两个位置以使配置生效.
通过捕获数据包,我们可以看到,当从源请求服务器地址时,cdn节点将以X-Forwarded-For和CF-Connecting-IP参数的形式带来用户客户端的ip,如图所示. 该图:


如果客户端添加了一个x-forward-for参数以尝试篡改,则该参数实际上将具有两个ip,最后一个ip始终是真实ip,并且伪造了前端: “ 8.8.8.8,163.160. 73.253“
因此,在配置日志参数时,可以将X-Forwarded-For参数的值放在第一位. nginx模块中的变量为$ http_x_forwarded_for,因此最终格式如下,其中保留了原始的$ remote_addrlinux修改ip配置文件,否则,真实的ip请求网站无法获取ip.
log_format main '"$http_x_forwarded_for"-$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
结合以上配置,最终的日志格式完美记录了真实IP和CDN节点的IP:
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/ruanjian/article-285530-1.html