Apache 2, mod_fastcgi, REST:处理同一个应用程序对不同uri的请求



我正在尝试使用Apache 2和mod_fastcgi作为我的传输和安全层开发一个RESTful服务。

我想要实现的是当请求被发出时调用c++应用程序。然后我想使用HTTP方法和URI来决定(在应用程序内部)应该访问哪些(内部)资源以及以哪种方式访问。

调用我的c++ -FastCGI应用程序工作(位于@/var/www/html/foo/fastcgi_test)。但只能使用特定的URI -我的二进制文件所在的URI:

如果我在浏览器中打开http://127.0.0.1/foo/fastcgi_test,我的应用程序运行并返回一个我想要的html测试页面。例如,尝试http://127.0.0.1/foo/bar返回一个404页面。但我希望同样的应用程序被称为(fastcgi_test)。

我的配置(到目前为止)是这样的:

<IfModule mod_fastcgi.c>   
  FastCgiIpcDir /var/lib/apache2/fastcgi    
  <Location /foo>
    SetHandler fastcgi-script   
  </Location>    
  FastCgiServer /var/www/html/foo/fastcgi_test -flush    
</IfModule>

我读了mod_fastcgi手册和Apache手册,但我找不到正确的提示。似乎我没有搜索到正确的关键词。由于我是Apache配置的新手,我可能/希望只是错过了正确的起点。

我如何配置Apache/mod_fastcgi发送请求到一个"分支的uri"到相同的FastCGI进程?谁能给我指指方向?

关键是使用别名。我还把FastCGI程序从Apache的内容区移到了一个单独的目录(/var/www/FastCGI)。

我的解决方案是这样的:

<IfModule mod_fastcgi.c>
  FastCgiIpcDir /var/lib/apache2/fastcgi
  <Directory /var/www/fastcgi>
    SetHandler fastcgi-script
  </Directory>
  <Location "/foo">
    Require all granted
  </Location>
  FastCgiServer /var/www/fastcgi/fastcgi_test -flush
  AliasMatch "/foo(.*)" "/var/www/fastcgi/fastcgi_test"
</IfModule>

相关内容

  • 没有找到相关文章