当前位置: 首页 > 知识库问答 >
问题:

记录上行请求Nginx反向代理

百里光熙
2023-03-14

我所代理的服务器不返回位置标头,这意味着我的$upstream_http_location不返回任何东西。

我想记录我的上游请求,这样我就可以在日志中看到我向上游服务器发出的请求。

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

共有1个答案

孔征
2023-03-14

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脚本,在我的示例中,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,您应该查看tutorial来了解它是如何工作的。您可以从以下内容开始:

mitmproxy -p 8888

如果服务器是自签名的,可以使用--insecure选项

 类似资料:
  • Nginx 最强大的地方是在于其 HTTP 请求的反向代理,也即常说的七层反向代理。在这一层代理中,通过 Nginx 框架提供的相关配置,我们能在该层将发送过来的 http 协议转换成各种其他的协议比如 fastcgi 协议、uwsgi协议、grpc、http(高版本协议)、websocket协议等。这样使用 Nginx 框架,我们可以支持多种应用服务(java web、python web等)的

  • 主要内容:1. 代理服务器介绍,2. 将请求传递给代理的服务器,3. 传递请求标头,4. 配置缓冲区,5. 选择传出IP地址本文介绍代理服务器的基本配置。 您将学习如何通过不同协议将NGINX请求传递给代理的服务器,修改发送到代理服务器的客户端请求标头,以及配置来自代理服务器的响应缓冲。 代理服务器的基本配置目录 代理服务器介绍 将请求传递给代理的服务器 传递请求标头 配置缓冲区 选择传出IP地址 1. 代理服务器介绍 代理通常用于在多个服务器之间分配负载,无缝地显示来自不同网站的内容,或者通过

  • Nginx 是一个高性能的 HTTP 和反向代理服务器,代码完全用 C 实现,基于它的高性能以及诸多优点,我们可以把它设置为 hyperf 的前置服务器,实现负载均衡或 HTTPS 前置服务器等。 配置 Http 代理 # 至少需要一个 Hyperf 节点,多个配置多行 upstream hyperf { # Hyperf HTTP Server 的 IP 及 端口 server

  • 我正在尝试测试Liferay的最新版本(Liferay 7.0-ga4),并将其安装在反向代理(nginx)后面。我使用docker和docker compose进行测试,并创建一个虚拟域。 如果我直接访问Liferay的url,并且没有配置反向代理,那么Liferay可以正常工作。 此外,如果我使用根位置,我成功地在nginx服务器后面安装Liferay: 其中,proxy_pass部分中的是在

  • 我们到处搜索,甚至在这里尝试答案:AWS EC2反向DNS(PTR)失败 我有域名mydomain.com.根和www记录指向我的主服务器,运行我的网站。 我现在使用一个单独的AWS ec2实例为我的域设置一个电子邮件服务器。这是在子域“列表”上运行的。 我的DNS如下所示: 为了防止我的服务器被标记为垃圾邮件,我在此处提交了亚马逊反向dns表单:https://aws.amazon.com/fo