FastCGI + Apache:如何将 URL 映射到特定的 fastcgi 二进制文件

FastCGI + Apache:如何将 URL 映射到特定的 fastcgi 二进制文件

我编写了两个 C++ fastcgi 应用程序(foo 和 foobar)。我正在运行 apache 2.2 (prefork),mod_fcgid在 Ubuntu 10.x 上。

我希望能够设置 apache 以便:

http://我的网站/some/path1?param1=value1¶m2=value2

将运行 fastcgi 应用程序 foo

我的网站/另一个/路径 1?param1=值 1¶m2=值 2

将运行 fastcgi 应用 foobar

注意:上面的 URL 故意无效(缺少协议类型),因为我无法在这个问题中发布超过 1 个链接。

我该如何设置 apache 来实现这一点?

答案1

最简单的方法是使用 FcgidWrapper 指令并启用“virtual”。这意味着 Apache 甚至不会尝试查找“真实”文件,而只是调用 fcgi 脚本。

DocumentRoot /whatever

<Directory /whatever/some/path1>
    FcgidWrapper /elsewhere/bin/foo virtual
</Directory>

<Directory /whatever/another/path1>
    FcgidWrapper /elsewhere/bin/foobar virtual
</Directory>

或者,你可以使用 mod_rewrite 这样的:

DocumentRoot /whatever

<Directory /whatever>
    RewriteRule /some/path1 /fcgi/foo 
    RewriteRule /another/path1 /fcgi/foobar
</Directory>

<Directory /whatever/fcgi>
    SetHandler fcgid-script
</Directory>

相关内容