我的nginx.conf里面有一个名为backend的upstream,里面有一个后台服务器列表,proxy_pass里面用的就是这个列表: proxy_pass http://backend在access_by_lua里面写了一个websocket,想要通过这个连接upstream中的其中一台服务器:wb:connect("ws://backend")但是无法成功解析backend域名。请问有办法在upstream列表里面根据负载均衡算法取一个服务器出来吗?
没啥人回复。我再补充点细节好了。我是想在nginx上面实现一个websocket的代理,但是因为一些原因,我需要在代理里面讲frame解出来,然后检查frame的内容。没问题再转发给下一级。下一级有很多备选服务,所以在upstream里面设置了一个列表。但是问题是websocket的client连接的时候只能用一个地址而没法把backend的名字丢进去。有好的办法吗?On Thursday, February 9, 2017 at 3:08:49 PM UTC+8, 努力工作的搬砖工 wrote:我的nginx.conf里面有一个名为backend的upstream,里面有一个后台服务器列表,proxy_pass里面用的就是这个列表: proxy_pass http://backend在access_by_lua里面写了一个websocket,想要通过这个连接upstream中的其中一台服务器:wb:connect("ws://backend")但是无法成功解析backend域名。请问有办法在upstream列表里面根据负载均衡算法取一个服务器出来吗? --
Hello很显然,backend 并不是真正的服务,只是 nginx 的一个内部定义你这里最直接的办法是:自己来实现 upstream 的逻辑,比如重试,比如权重或者你再建一个 server,在这里 server 里 proxy_pass 到 backendlua 来连这个 server在 2017年2月10日 上午10:30,努力工作的搬砖工 <john...@gmail.com>写道:没啥人回复。我再补充点细节好了。我是想在nginx上面实现一个websocket的代理,但是因为一些原因,我需要在代理里面讲frame解出来,然后检查frame的内容。没问题再转发给下一级。下一级有很多备选服务,所以在upstream里面设置了一个列表。但是问题是websocket的client连接的时候只能用一个地址而没法把backend的名字丢进去。有好的办法吗?On Thursday, February 9, 2017 at 3:08:49 PM UTC+8, 努力工作的搬砖工 wrote:我的nginx.conf里面有一个名为backend的upstream,里面有一个后台服务器列表,proxy_pass里面用的就是这个列表: proxy_pass http://backend在access_by_lua里面写了一个websocket,想要通过这个连接upstream中的其中一台服务器:wb:connect("ws://backend")但是无法成功解析backend域名。请问有办法在upstream列表里面根据负载均衡算法取一个服务器出来吗? -- --
我了解backend只是nginx内部的定义。但是这样我还要重新实现upstream的逻辑,计算负载均衡等,所以想问下是不是有人做过类似的事情,不要重复造轮子。2017-02-10 10:54 GMT+08:00 DeJiang Zhu <douj...@gmail.com>:Hello很显然,backend 并不是真正的服务,只是 nginx 的一个内部定义你这里最直接的办法是:自己来实现 upstream 的逻辑,比如重试,比如权重或者你再建一个 server,在这里 server 里 proxy_pass 到 backendlua 来连这个 server在 2017年2月10日 上午10:30,努力工作的搬砖工 <john...@gmail.com>写道:没啥人回复。我再补充点细节好了。我是想在nginx上面实现一个websocket的代理,但是因为一些原因,我需要在代理里面讲frame解出来,然后检查frame的内容。没问题再转发给下一级。下一级有很多备选服务,所以在upstream里面设置了一个列表。但是问题是websocket的client连接的时候只能用一个地址而没法把backend的名字丢进去。有好的办法吗?On Thursday, February 9, 2017 at 3:08:49 PM UTC+8, 努力工作的搬砖工 wrote:我的nginx.conf里面有一个名为backend的upstream,里面有一个后台服务器列表,proxy_pass里面用的就是这个列表: proxy_pass http://backend在access_by_lua里面写了一个websocket,想要通过这个连接upstream中的其中一台服务器:wb:connect("ws://backend")但是无法成功解析backend域名。请问有办法在upstream列表里面根据负载均衡算法取一个服务器出来吗? -- -- --