Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Logging 记录上游请求Nginx反向代理_Logging_Nginx_Proxy_Lua - Fatal编程技术网

Logging 记录上游请求Nginx反向代理

Logging 记录上游请求Nginx反向代理,logging,nginx,proxy,lua,Logging,Nginx,Proxy,Lua,我已经构建并配置了一个Nginx反向代理服务器 我已经将日志设置为包括$upstream\u http\u location和其他各种变量 我代理到的服务器没有返回位置头,这意味着我的$upstream\u http\u location没有返回任何内容 我想记录我的上游请求,以便能够在日志中看到我向上游服务器发出的请求 我想知道是否有一种简单的方法可以记录Nginx发出的出站请求而不创建lua脚本,或者lua脚本是否是最好的方法,有人能为我的搜索提供方向吗?在Windows上,我找到的最好方法

我已经构建并配置了一个Nginx反向代理服务器

我已经将日志设置为包括
$upstream\u http\u location
和其他各种变量

我代理到的服务器没有返回位置头,这意味着我的
$upstream\u http\u location
没有返回任何内容

我想记录我的上游请求,以便能够在日志中看到我向上游服务器发出的请求


我想知道是否有一种简单的方法可以记录Nginx发出的出站请求而不创建lua脚本,或者lua脚本是否是最好的方法,有人能为我的搜索提供方向吗?

在Windows上,我找到的最好方法是使用Wireshark,它捕获接口上的所有流量

如果服务器仅侦听环回地址,Wireshark将不会有帮助(这适用于ASP.NET开发服务器)。在这种情况下,通过隧道将所有TCP流量从一个端口传输到另一个端口来提供帮助

(TcpTrace还可以记录所有流量,如果不使用Wireshark,它自己可能就足够了)


不确定这是否有帮助,因为您没有指定操作系统。

5年后我也遇到了同样的问题 如果不能在nginx中完成,我建议使用mitmproxy, 但由于nginx不处理传出代理,因此我必须使用另一个隧道二进制文件来处理

我用过socat,但我觉得stunnel也不错。 下面是我的nginx配置示例

proxy_set_header X-Real-IP  $remote_addr;
        proxy_set_header Host-Real-IP  $http_host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Real-Pcol http;

        proxy_intercept_errors on;
        proxy_pass https://127.0.0.1:9090/;
        #127.0.0.1:9090 is the adress on which socat is listening
        #
        proxy_set_header Host [remote_host];
        proxy_redirect https://[remote_host]/ https://[nginx_hostname]/;
这是我的socat脚本,在我的示例中,它必须在nginx服务器上运行

proxy=mitmproxy_address
proxyport=mitmproxy_port
forwarded_ip=your_server_address
forwarded_port=your_server_address_port

socat TCP4-LISTEN:9090,reuseaddr,fork PROXY:$proxy:$forwarded_ip:$forwarded_port,proxyport=$proxyport
至于mitmproxy,您应该看看教程来了解它是如何工作的。 您可以从以下内容开始:

mitmproxy -p 8888
如果您的服务器是自签名的,您可以使用--unsecure选项

HTTP响应头中的“位置”字段?此字段通常表示应重定向到的新url。如果不是301或302,则此字段不应具有值。你试过$U地址吗?