首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >%{BALANCER_WORKER_ROUTE}e如何为空

%{BALANCER_WORKER_ROUTE}e如何为空
EN

Server Fault用户
提问于 2012-07-20 13:22:58
回答 2查看 2.6K关注 0票数 0

我正在尝试用mod_proxy_balancer建立一个平衡的集群。

我按照这里中的示例行来设置cookie。我不得不调整它,因为环境不稳定,所以不是每个请求都会返回200段代码。

代码语言:javascript
复制
Header always add Set-Cookie "ROUTEID=.%{BALANCER_WORKER_ROUTE}e;
<Proxy balancer://cluster>
    BalancerMember http://server1.example.com route=share2
    BalancerMember http://server2 example.com route=share1

</Proxy>
ProxyPass /balancer balancer://cluster/ stickysession=JSESSIONID|jsessionid nofailover=On
ProxyPassReverse /balancer balancer://cluster/

(我知道粘滞会话!= ROUTEID,但这是出于这个问题范围之外的原因)

所以在我的本地开发箱里我得到

代码语言:javascript
复制
Set-Cookie  ROUTEID=.share1;

作为响应头之一,这正是我所期望的。

然而,在测试环境中,我得到了

代码语言:javascript
复制
 Set-Cookie: ROUTEID=.(null);

我不知道它如何(空),我能做什么来阻止它为空。下游服务器可以做些什么来阻止ROUTEID的设置吗?或者还有其他的配置选项可以阻止它呢?

EN

回答 2

Server Fault用户

发布于 2012-07-21 00:27:00

我怀疑您首先访问了/balancer之外的URL,并从它获得了一个垃圾曲奇(因为如果没有用于请求的负载均衡器,环境变量确实为空)。

在使用平衡器的情况下,只需设置cookie:

代码语言:javascript
复制
<Proxy balancer://cluster>
    BalancerMember http://server1.example.com route=share2
    BalancerMember http://server2 example.com route=share1
</Proxy>
<Location /balancer/>
    Header always add Set-Cookie "ROUTEID=.%{BALANCER_WORKER_ROUTE}e;
    ProxyPass balancer://cluster/ stickysession=JSESSIONID|jsessionid nofailover=On
    ProxyPassReverse balancer://cluster/
<Location>
票数 1
EN

Server Fault用户

发布于 2012-07-24 16:32:27

在这种特殊情况下,路由正在设置,但是来自代理服务器的响应失败了。如果接收到HTTP错误,它将给出响应,但如果连接被终止,则为null。

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/409622

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档