nginx 日志管理「建议收藏」

nginx 日志管理「建议收藏」打开nginx.conf配置文件我们观察nginx的server段,可以看到如下类似信息#access_loglogs/host.access.logmain;这说明该server,它的访问日志的文件是logs/host.access.log,使用的格式”main”格式.除了main格式,你可以自定义其他格式.main格式是什么?log_form…

大家好,又见面了,我是你们的朋友全栈君。

打开nginx.conf配置文件

nginx 日志管理「建议收藏」

我们观察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数据

我们把日志配置打开:

nginx 日志管理「建议收藏」

修改配置文件之后,尝试下配置文件是否正确,以免影响项目运行,进入到sbin目录下  ./nginx -t  检验配置文件是否有错nginx 日志管理「建议收藏」  配置语法等验证通过

重启运行nginx,发现在logs下生成了一个logs/host.access.lognginx 日志管理「建议收藏」

还有一个access.log日志文件,可以看到上面已经注释了这个日志配置。其实这个文件是nginx默认生成的日志文件。

然后访问几次。看是否有记录

打开日志文件logs/host.access.log :

nginx 日志管理「建议收藏」

记录了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日志的一些内容,希望能帮助到一些小伙伴

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/140745.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Android中ExpandableListView的使用(一)

    Android中ExpandableListView的使用(一)ExpandableListView是可扩展的下拉列表,它的可扩展性在于点击父item可以拉下或收起列表,适用于一些场景的使用

    2022年6月29日
    24
  • CountDownLatch、CyclicBarrier、Semaphore、Exchanger

    CountDownLatch、CyclicBarrier、Semaphore、Exchanger

    2021年9月17日
    53
  • spring、springMvc、springBoot和springCloud的联系与区别

    spring、springMvc、springBoot和springCloud的联系与区别spring和springMvc:1.spring是一个一站式的轻量级的java开发框架,核心是控制反转(IOC)和面向切面(AOP),针对于开发的WEB层(springMvc)、业务层(Ioc)、持久层(jdbcTemplate)等都提供了多种配置解决方案;2.springMvc是spring基础之上的一个MVC框架,主要处理web开发的路径映射和视图渲染,属于spring框架中WE…

    2022年6月14日
    25
  • 变量以及数据类型_数据类型定义

    变量以及数据类型_数据类型定义变量以及数据类型变量的相关概念为什么需要变量变量的介绍概念变量使用的基本步骤变量使用注意事项变量的数据类型注意:数据类型相关整型:基本介绍整数的类型整型的使用细节浮点类型基本介绍浮点类型说明一下:浮点型使用细节字符类型基本介绍字符类型使用细节字符类型本质探讨布尔类型基本介绍变量的相关概念为什么需要变量不论是使用哪种高级程序语言编写程序,变量都是其程序的基本组成单位。如下代码:voidmain(){ inta=1;//定义了一个整型变量,取名为a,并赋值为1(强数据类型语言) int

    2022年10月21日
    4
  • 求素数

    求素数求素数

    2022年4月24日
    48
  • 获取impala下所有的数据库建表语句

    获取impala下所有的数据库建表语句本博文介绍三种方法,推荐使用第三种,前两种都是尝试。方法一:现在的导出还是有缺陷的,导出的文件中还是存在其他不必要的信息#!/bin/bash##获取数据库databases=$(hive-e”showdatabases;exit;”)fordatabasein$databases;do#获取hive建表语句tables=$(hive-e”use$database;showtables;”)for…

    2025年10月1日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号