AWS负载均衡器不会转发Cookie

我有一个AWS“经典负载平衡器”,用于中继stream量和3个EC2实例。 在这些EC2实例(这是简单的Linux机器),我有一个GlassFish 4.1运行,并听取端口80。

当为单个服务器调用URL时,一切正常(按其应有的原则工作),但当负载均衡器中继stream量时,对应用程序服务器的请求没有Cookie。

我检查了平衡器的“启用负载平衡器生成cookie粘性”选项,并尝试“启用应用程序生成的cookie粘性” 。 平衡器两次select第一个请求的目标服务器,并使用所有后续请求中继到同一个服务器 – 但省略了cookie。

例如
login后,我有这些cookies:

AWSELB DD17B9.... JSESSIONID 8f22ce.... mnzkks 1869:1000:34.... 

当我点击页面上的任何链接时,我看到我的浏览器在请求中包含新的cookie:

 GET /mypage/detail HTTP/1.1 Host: my.page.com Connection: keep-alive Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 OPR/45.0.2552.888 Referer: https://my.page.com/dashboard Cookie: JSESSIONID=8f22ce ...; AWSELB= DD17B9....; mnzkks=1869:1000:345.. 

在我的应用程序的filter中,我打印出所有的cookie名称,并检查“mnzkks”。 如果我找不到任何cookie, no cookie打印no cookie

当使用服务器的原始URL时,它会打印

 AWSELB JSESSIONID mnzkks 

使用平衡器的URL时,即使浏览器包含请求中的全部3个Cookie,也始终不打印no cookie

谁吃了我的cookies?