1

シンプルな CGI::Application::Dispatch ベースの REST アプリケーションを Apache サーバーから Nginx に変換しようとしています。アプリケーションは Apache の下で問題なく動作しますが、Nginx の下で実行すると、Dispatch リクエストのルート レイヤー (/app) のみが機能します。パスに /app/doit などの追加部分があると、呼び出しが Forbidden で失敗します。

URL を fastcgi に渡す方法を変更する必要があると思われますが、URL を分割する方法が明確ではありません。私が見つけたほとんどの例は、dispatcher.cgi タイプのスクリプトがある場合の分割用ですが、C:A:D は /app として呼び出されることを想定し、URL の /doit 部分を参照することを想定しているため、それを達成する方法がわかりません。

現在のロケーション ブロックは次のとおりです。

    location /app {
    root /var/www;
    gzip off;
    include /etc/nginx/fastcgi_params;
    fastcgi_pass unix:/var/run/fcgiwrap.socket;
    fastcgi_index index.pl;
    fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
    }

Apache でのセットアップは非常に簡単でした。

ScriptAlias /app/ /var/www/app/
    <Directory "/var/www/app">
            AllowOverride None
            Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
            Order allow,deny
            Allow from all
    </Directory>
4

1 に答える 1

0

場所などの場所を調整する可能性があります
~ ^/app/.*.pl$

于 2013-02-11T20:01:38.120 に答える