如何限制会话数量?
我需要一种方法来跟踪和限制networking会话到一个Web应用程序。 “会话”被粗略地定义为浏览所述networking应用的页面的单个用户。 我认为可以翻译成: 会话被定义为元组<clientIP,vHost>或者<clientIP,serverIP,serverPort>或<cookie,vHost> ,取决于层和可用数据 会话在用户将authentication数据发送到定义的loginURI后开始 会话在用户点击定义的注销URI后结束 如果在客户端请求最后一个对象之后指定的超时已到期,则会话结束 在达到指定的会话限制之后,下一个用户应该被定向到一个自定义错误页面。 我还需要一种方法来跟踪当前的会话数量,以便进行监控,并能够将监控服务器列入白名单(这将定期向Web应用程序发出查询)并免除限制。 我能与之合作的是: RadWare AppDirector ,其中Web应用程序具有已定义的自己的场,并且正在以反向代理模式运行 Apache 2.2 SLES 11 SP2 我宁愿不涉及一个额外的代理服务器,虽然会考虑如果没有其他选项。 所有这一切背后的基本原理是,上述的networking应用程序很容易被超载,并开始拒绝不请求的请求,使工作中的用户(通常)在进程中丢失了input数据。 通过在超负荷条件不太可能的情况下指定限制,我们希望创build一个明确的故障条件,如果负载可能高峰,用户将被告知以后返回。 编辑 :Web应用程序是第一层(呈现层,在Apache vHost中作为CGI代码实现)的三层实现,它非常简单,显然仅限于基本的error handling和请求应用程序服务器之间的负载平衡。 它不会在它运行的Web服务器上施加任何重要的负载 – 这就是为什么我们只是在AppDirector场中以故障转移模式(无负载平衡)运行它,这应该有点简化。 除此之外的一切对我们来说基本上是一个黑盒子 – 在数据层我们有一个MSSQL数据库,但几乎不可能从供应商那里得到关于表结构的任何有意义的信息。 应用程序服务器是封闭的,供应商使用了相当全面的实现框架,但似乎无法回答更简单的与操作相关的问题。