Apache(FCGI?)会话分发

时间:2011-02-01 01:57:42

标签: apache apache2 fastcgi

希望这是一个简单的问题,因为我对Apache的内部工作相当新。对于那些不熟悉FCGI的人来说,它会创建一个在请求之间继续运行的cgi进程,有效地创建一个只要用户需要就可以运行的实例。它通过启动一个可执行的cgi文件并将未来的请求引导到正在运行的程序来实现这一点(据我了解)。

我的问题是:有没有办法让apache为每个新用户创建一个新程序实例(由cookie,IP地址等决定),然后将来自该用户的后续请求重定向到同一个进程初始化?即。

user1 requests test.fcgi
user1 creates PID 100
user2 requests test.fcgi
user2 creates PID 101
user1 requests test.fcgi
user1 directed to running PID 100
user2 requests test.fcgi
user2 directed to running PID 101

如果这需要新模块或现有程序,那很好。如果这是我必须自己编码的东西,你能指出我正确的方向开始吗?

详细信息:我在从ubuntu存储库安装了libapache2-mod-fcgid的EC2机器上运行apache 2.2.12。

谢谢

1 个答案:

答案 0 :(得分:1)

不,你没有得到与FastCGI的会话亲和性,并且因为(在几乎总是使用的配置中),所有子进程都在同一个套接字上侦听并依赖内核来分配连接,没有简单的方法在网络服务器中添加它。在对子进程执行会话关联之前,您需要将每个子进程视为自己的后端,并使用自己的套接字。

更好的想法:不要保持用户在个别流程中所需的状态;坚持它在过程之外。这几乎就是的会议