access_log 文件中未记录对 nginx 流代理的访问

如何解决access_log 文件中未记录对 nginx 流代理的访问

感谢您检查我的问题。

我正在尝试将来自浏览器的用户访问记录到现在不起作用的 access_log 文件中。

我的系统:

[用户]-[TCP 代理]-[网络服务器]

AWS EC2 中的 Nginx/1.6

Nginx 配置:

load_module '/usr/lib64/Nginx/modules/ngx_stream_module.so';
user Nginx;
worker_processes auto;
error_log /var/log/Nginx/error.log;
pid /run/Nginx.pid;

events {
    worker_connections 1024;
}

stream {
    log_format basic '$remote_addr [$time_local] '
                     '$protocol $status $bytes_sent $bytes_received '
                     '$session_time';
    access_log /var/log/Nginx/access.log basic;

    server {
        listen 80;
        proxy_pass web.server.com:80;
    }

    server {
        listen 443;
        proxy_pass web.server.com:443;
    }
}

我通过 Chrome 的代理服务器从本地笔记本电脑打开了该网站,它打开良好,chrome devtool 在 Headers tab > General > Remote Address field显示了代理服务器的 ip。 我检查了我的笔记本电脑上的 dig,它显示了代理服务器的 IP, 甚至代理服务器中的 tcpdump 也显示出良好的日志:sudo tcpdump -nn -A -s1500 -l -i eth0 port 443

(from tcpdump)
23:51:46.944945 IP user_ip.27149 > proxy_ip: length 357
23:51:46.945040 IP proxy_ip.44488 > webserver_ip.443: length 357
23:51:47.026161 IP webserver_ip.443 > proxy_ip.44488: length 364
23:51:47.026245 IP proxy_ip.443 > user_ip.27149: length 364 

但是当我在代理服务器中打开访问日志文件时,没有任何条目。

与 stackoverflow Nginx access logs entries don't get created for some connections when they happen 中的类似问题不同,没有初始条目。只是空的。

我一开始怀疑是 access_log 配置,但是当我从笔记本电脑中 curl 相同的 url 时,条目突然出现在 access_log 文件中。每次我卷曲网址时它都会出现。

user_ip [15/Feb/2021:23:21:25 +0000] TCP 200 1291080 3279 356.730
user_ip [15/Feb/2021:23:28:24 +0000] TCP 200 215 568 119.923
user_ip [15/Feb/2021:23:33:24 +0000] TCP 200 5646 643 300.140

我不确定为什么只有 curl 请求被记录到 access_log 文件中。 ?

所有请求都是在 https 协议上进行的。

解决方法

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

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?