1

我正在尝试将一个简单的基于 CGI::Application::Dispatch 的 REST 应用程序从 Apache 服务器转换为 Nginx。该应用程序在 Apache 下运行良好,但在 Nginx 下运行时,只有 Dispatch 请求的根层工作——即 /app。路径的任何其他部分,例如 /app/doit,都会导致调用失败并显示 Forbidden。

我怀疑我需要更改将 URL 传递给 fastcgi 的方式,但我不清楚如何拆分它。我能够找到的大多数示例都是在存在 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 回答