我有 nginx 作为反向代理。我想将数据发送到两个服务器,而不仅仅是一个不进行负载平衡的服务器(只将其从端口 80 接收的数据发送到服务器 1,然后再发送到服务器 2)。
Server1 将是一个 Web 服务器,而 server2 用于记录请求。
location /app2/ {
proxy_bind 127.0.0.2;
proxy_pass http://example.com/app2/;
}
答案1
这感觉像是一个 XY 问题。您指定 server2 用于日志记录?
我建议使用两台服务器进行网络服务和日志记录,然后设置一些其他进程来提取这些日志(logstash,elasticsearch等)并使时钟与 NTP 保持同步。
如果负载需要,此解决方案可让您使用服务器3、4...进行水平扩展。
答案2
另一种选择是将“拆分”角色移至以太网交换机而不是代理或网络服务器。
如果您拥有以太网交换机的管理员权限,请检查它是否支持 MIRROR 端口(有时称为 MONITOR 端口)。这会将进入/退出物理端口的所有以太网帧克隆到您的 Web 服务器,并在镜像端口上重播它。
连接到该监控端口的将是某种传感器主机,能够转储所有数据包并记录所见内容。有多种软件选项可供选择。
这样做的主要优点是 Web 服务器和代理不知道并且不需要进行任何更改,并且这些主机上也没有负载。