【问题标题】:How to use nginx load balancing with rethinkdb proxy?如何通过 rethinkdb 代理使用 nginx 负载平衡?
【发布时间】:2016-11-19 13:27:33
【问题描述】:

这个问题确实是从问题开始的,在做研究时,我想出了这个设置,用于 nginx 平衡多个 rethinkdb 代理。

我有 3 个 rethinkdb 代理服务器正在运行。为了便于讨论,我们称它们为:

proxy0
proxy1
proxy2

然后全部连接(--join)到 rethinkdb 集群中的第一个数据库。 现在我已经像这样定义了 nginx 上游:

upstream proxy {
    server proxy0:6003;      # rethindb proxy instance 0
    server proxy1:6003;      # rethinkdb proxy instance 1
    server proxy2:6003;      # rethinkdb proxy instance 2
}

然后在location /.代理传递它

这一切看起来都很棒而且很简单,但行不通。 我收到这样的python错误:

File "isDead.py", line 86, in <module>
    o = DeadLinksDelete(db="db", db_host="loadBalancerAddress", api_url=url, page=sys.argv[2])
  File "isDead.py", line 22, in __init__
    password="pass")
  File "/usr/local/lib/python2.7/dist-packages/rethinkdb/net.py", line 656, in connect
    return conn.reconnect(timeout=timeout)
  File "/usr/local/lib/python2.7/dist-packages/rethinkdb/net.py", line 567, in reconnect
    return self._instance.connect(timeout)
  File "/usr/local/lib/python2.7/dist-packages/rethinkdb/net.py", line 425, in connect
    self._socket = SocketWrapper(self, timeout)
  File "/usr/local/lib/python2.7/dist-packages/rethinkdb/net.py", line 325, in __init__
    raise ReqlDriverError(error)
rethinkdb.errors.ReqlDriverError: Connection is closed.

好的,我的第一个问题是我假设 rethinkdb 驱动程序通过 http/https 连接到代理,并且在我的示例中该假设是错误的。

  1. 从源安装 nginx 以支持 --with-sream,如下所示:

./configure --prefix=/opt/nginx --sbin-path=/usr/sbin/nginx --conf-path=/opt/nginx/nginx.conf --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --with-threads --with -stream --with-http_slice_module --without-http_rewrite_module

  1. 编辑 /opt/nginx/nginx.conf 并添加(在 http{} 之后):

流{

服务器{ 听6003; proxy_pass 数据库; }

上游数据库 { 服务器代理0:6003; 服务器代理1:6003; 服务器代理2:6003; }

}

  1. 只用nginx启动nginx

  2. 将应用程序中的 db 主机设置为 nginx 负载均衡器,就是这样。

这个设置现在对我有用。

【问题讨论】:

    标签: nginx proxy rethinkdb


    【解决方案1】:

    由于驱动程序不通过 HTTP 进行通信,因此您最好使用主要用于代理 TCP 连接的 HAProxy 之类的东西。

    【讨论】:

    • 嗨,我已经设置了 nginx tcp 负载均衡器。但我也会尝试使用 HAProxy,因为现在我将一切都减慢了 200 毫秒。
    • xm,haproxy 页面响应下降到 -300 毫秒。谢谢。
    猜你喜欢
    • 2018-09-24
    • 1970-01-01
    • 1970-01-01
    • 2021-05-14
    • 1970-01-01
    • 2022-01-10
    • 2021-03-11
    • 2012-07-22
    • 1970-01-01
    相关资源
    最近更新 更多