当前位置

编译了一个 FastCGI 的 Apache 2.2 模块


下一个项目打算采用 FastCGI 部署,对于习惯在 Windows 桌面环境里开发的程序员,开发环境计划配置成 Apache + mod_fastcgi/mod_rewrite,通过 FastCGIExternalServer 配置连接到本机的 fastcgi 进程。

现在 Apache 主流版本已经是 2.2.x,但 http://www.fastcgi.com/dist/ 里提供的 dll 不晓得为什么配置成禁止下载。于是就从源码(mod_fastcgi-SNAP-0709231442)编译了一份(见附件 http://www.dup2.org/files/mod_fastcgi.dll
for Apache 2.2.x win32)

以前写过一篇里面提到如何在 Win32 下编译的 apache module 的...

cl /MD /D "WIN32" /c fcgi_buf.c
cl /MD /D "WIN32" /c fcgi_config.c
cl /MD /D "WIN32" /c fcgi_pm.c
cl /MD /D "WIN32" /c fcgi_protocol.c
cl /MD /D "WIN32" /c fcgi_util.c
cl /MD /D "WIN32" /c mod_fastcgi.c

link /DLL mod_fastcgi.obj fcgi_util.obj fcgi_protocol.obj 
 fcgi_pm.obj fcgi_config.obj fcgi_buf.obj 
 libhttpd.lib libapr-1.lib libaprutil-1.lib ws2_32.lib

用更复杂的编译选项可以获得一个稍微小一些的 dll (参考 apache win32 的编译参数)
cl /nologo /MD /W3 /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "SHARED_MODULE" /FD /c *.c
link /DLL /nologo /subsystem:console /incremental:no ......

附件大小
文件 mod_fastcgi.dll60 KB
Topic: 

评论

还真是挺小的,还有个叫mod_fcgid的东西也不错,据说是修改了mod_fastcgi的一些问题。

我需要基于 tcp 的跨服务器部署. fcgid 好像只支持 unixsocket

现在使用fastcgi我基本上倾向于lighttpd + fastcgi + proxy

不用 lighttpd 的原因还是因为它的 module 不足

1. 只能以 http 反向代理的方式去连接后面的 resin
2. sohu passport 的模块虽然也移植成了 lighttpd 的 plugin,但还没有经过检验

还有一个原因是使用 fastcgi 已经是很大的一次挑战了,不应该同时还换上一个大家还尚不熟悉的软件;以前为 apache 所做的监控软件可能也要重写;mod_rewrite 貌似也不如 apache 的

据说lighttpd有内存泄露,是么?

能否利用Apache mod 过滤器,将网站中的非法关键词过滤掉呢?有相关的资料吗?给我点建议也好!
在这先谢谢各位大师了!

我很想成为 apache module development 专家,可惜不是。

你最好去 google