打开nginx.conf配置文件
我们观察nginx的server段,可以看到如下类似信息
#access_log logs/host.access.log main;
这说明 该server, 它的访问日志的文件是 logs/host.access.log ,
使用的格式”main”格式.
除了main格式,你可以自定义其他格式.
main格式是什么?
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
main格式是我们定义好一种日志的格式,并起个名字,便于引用.
以上面的例子, main类型的日志,记录的 remote_addr.... http_x_forwarded_for等选项.
$remote_addr :与$http_x_forwarded_for用以记录客户端的ip地址;
$remote_user :记录客户端用户的名称;
$time_local :访问时间及时区;
$request :请求的URL与HTTP协议;
$status :记录请求状态
$body_bytes_sent:记录发送给客户端文件主体内容大小;
$http_referer:用来记录从那个页面链接访问过来的;
$http_user_agent:记录客户端浏览器的相关信息
我们可以配置我们自己常用的信息:
$bytes_sent
:客户端发送的字节数
$request_length
:客户端请求的长度
$http_host :客户端请求的地址请求地址,即浏览器中你输入的地址(IP或域名)
$upstream_status:upstream状态
$upstream_addr :后台upstream的地址,即真正提供服务的主机地址
$request_time : 整个请求的总时间
$upstream_response_time:请求过程中,upstream响应时间
$request_body :POST数据
我们把日志配置打开:
修改配置文件之后,尝试下配置文件是否正确,以免影响项目运行,进入到sbin目录下 ./nginx -t 检验配置文件是否有错 配置语法等验证通过
重启运行nginx,发现在logs下生成了一个logs/host.access.log
还有一个access.log日志文件,可以看到上面已经注释了这个日志配置。其实这个文件是nginx默认生成的日志文件。
然后访问几次。看是否有记录
打开日志文件logs/host.access.log :
记录了2次访问的记录,我实际也只是访问了2次。格式就是使用的main的格式内容,看看自己的IP对不对,验证下
连接特定的 DNS 后缀 . . . . . . . :
本地链接 IPv6 地址. . . . . . . . : fe80::983f:2a2f:14db:549a%8
IPv4 地址 . . . . . . . . . . . . : 192.168.18.103
子网掩码 . . . . . . . . . . . . : 255.255.255.0
默认网关. . . . . . . . . . . . . : 192.168.18.1
发现不对呢,但是我访问的次数和记录的次数是一致的
remote_addr:
代表客户端的IP,但它的值不是由客户端提供的,而是服务端根据客户端的ip指定的,当你的浏览器访问某个网站时,假设中间没有任何代理,那么网站的web服务器(Nginx,Apache等)就会把remote_addr设为你的机器IP,如果你用了某个代理,那么你的浏览器会先访问这个代理,然后再由这个代理转发到网站,这样web服务器就会把remote_addr设为这台代理机器的IP,除非代理将你的IP附在请求header中一起转交给web服务器。
我的网络是中国移动的,说白了,我的IP其实就是内网IP,宽带提供商没有足够的公网ip,分配的是个内网ip.上面会有一个移动的代理服务器或者交换机等,所以我的网速有点慢。nginx记录的是移动的公网IP
获取真实IP地址后面讲解,以上就是nginx日志的一些内容,希望能帮助到一些小伙伴