如何将nginx数据复制到两台服务器?

Ber*_*Bay 17 nginx ab

我正在尝试将一台特定 nginx 服务器接收到的流量复制到两台服务器。目标不是负载平衡,而是在所有 nginx 服务器上重放相同的输入。

一个例子:Nginx 收到一个 HTTP POST。我想将这个相同的 POST 发送到其他服务器。

** 更新 **

情况很简单,也不复杂。我只需要将 POST 数据(或 GET 或任何请求数据)重新发送到另一个服务器 IP(它也运行一个 nginx 实例)。只是它。

用户 -> POST 数据 -> NGINX 实例 ----重定向 ---> 服务器 1 和服务器 2

Chu*_*cks 12

我能够使用 post_action 状态进行复制。

upstream main_upstream {
least_conn;
server 192.168.9.10:80;
keepalive 1024;
}

server {
listen 80;
server_name _;
client_body_buffer_size 1512k;
client_max_body_size 10m;

location /1/ {
fastcgi_pass main_upstream;
post_action @replayevent ;

}
# Send the post_action request to a FastCGI backend for logging.
location @replayevent {
fastcgi_pass 192.168.9.14:80;
}
Run Code Online (Sandbox Code Playgroud)

现在它向两台服务器发送数据。

如果您的上游不支持 fastcgi(在我的情况下发生过),请替换为 proxy_pass。


HTT*_*500 2

使用 NFS 服务器等中央存储,每个 nginx Web 节点都会挂载 NFS 共享(文件级)。或者使用像 OCFS2 这样的集群文件系统,每个 Web 节点都会挂载 LUN/分区(块级)。