我正在尝试将一台特定 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。
使用 NFS 服务器等中央存储,每个 nginx Web 节点都会挂载 NFS 共享(文件级)。或者使用像 OCFS2 这样的集群文件系统,每个 Web 节点都会挂载 LUN/分区(块级)。
归档时间: |
|
查看次数: |
8474 次 |
最近记录: |