论坛首页 编程语言技术论坛

lighttpd+fastcgi搭建一个server如何保存server的状态

浏览 2135 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-12-17   最后修改:2008-12-17

需求:服务器端有许多静态文件,还有许多用c++编写的业务组件,需要对这些功能进行包装对外发布服务,server端需要保存客户端状态(类似session的功能)和一些server端的状态,并且server的功能可能会增强如添加web管理界面等等;

 

 

初步设想的解决方案是:用lighttpd+fastcgi来搭建服务器,fastcgi程序可以直接用c++来编写,这样可以直接调用c++编写的业务组件,但是比较麻烦的是server要添加状态维护的功能,因为fastcgi是多进程的实现,要共享状态的话就要进行进程间的通信,初步的想法是引入一个内存数据库,把状态的信息都放到这个里面,如果要添加web管理界面则用php来写,但是整体感觉这种方式实现起来不是很简便,尤其是用c++写的fastcgi程序的后期维护及升级。

 

还有一种想法是server用java写,用jni调用c++组件,状态管理就不用操心了,但是把c++组件改成jni也是一个不小的工作量,所以都比较麻烦

 

基本情况大概这样,希望能听听大家建议,多谢

 

 

另:lighttpd/Fastcgi方式可以用来部署RoR,不知道这种部署方式的fastcgi是怎么实现的,在server端是如何维护状态的,是否可以借鉴?因为我从来没有用过RoR,所以想问问大家

   发表时间:2008-12-17  
Server端不应该存在状态。可扩展性的服务端架构要求你Share Nothing Architecture。你的状态可以放在cookie,数据库,缓存,或者文件当中,但是不允许你在内存当中存放状态数据,在内存当中保存状态是架构设计上大忌。
0 请登录后投票
   发表时间:2008-12-17   最后修改:2008-12-18
不知道RoR的用户登录状态一般是放在什么地方的?
0 请登录后投票
   发表时间:2008-12-18   最后修改:2008-12-18
ror的session通过cookie实现。
rails2.0以前是cookie中存session的id,然后在文件(或数据库,或Memcache)中保存session的具体内容。
rail2.0以后,可以将整个session的数据都放在cookie中。
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics