我正在解决一个问题,其中一些用户需要创建一个Web应用程序的多个会话。浏览器一次只能保存一个会话Cookie(没有笨拙的浏览器黑客攻击,这些黑客说用户不够聪明,无法应对),我想通过创建反向代理来解决此问题,其中URL的第一部分实际上是与后端应用程序联系时使用的会话Cookie。
以下是这个想法的说明:
Client Request:
GET https://myproxy/
Proxy Request:
GET https://example.com/
Application response:
302 https://example.com/welcome
Set-Cookie: session=ABCDEFGHIJKLMNOP
Proxy Response
302 https://myproxy/ABCDEFGHIJKLMNOP/welcome
Client Request
GET https://myproxy/ABCDEFGHIJKLMNOP/welcome
Proxy Request
GET https://example.com/welcome
Cookie: session=ABCDEFGHIJKLMNOP
希望能证明这个想法。我知道如何使用带ProxyPass,ProxyPassReverse和mod_proxy_html的Apache为单个静态前缀完成此操作,但是使用动态前缀从cookie中提取出来似乎不太可能。
我可以将其编写为功能完善的应用程序,但是我想知道是否有任何Web服务器(apache,nginx等)具有一些内置的方式来配置此行为?也许使用mod_perl?
答案 0 :(得分:1)
我认为nginx可以实现,这是一个主意:
session
当然,这只是一个主意,应该对其进行测试,并且可能还会有其他警告(或者根本无法解决)。此配置不会清除从上游返回的path
cookie,但是会重写它的session
属性,因此几个具有不同路径的{{1}} cookie不会相互干扰。