0

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構成に非常に慣れていないので、おそらく/うまくいけば、正しい出発点を逃しています。

同じ FastCGI プロセスの「URI のブランチ」にリクエストを送信するように Apache/mod_fastcgi を構成するにはどうすればよいですか? 誰かがポインタを提供できますか?

4

1 に答える 1

0

重要なのはエイリアスを使用することです。また、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>
于 2015-08-18T11:30:07.233 に答える