Perl nginx REST CGI:: Приложение

Я пытаюсь преобразовать простое приложение REST на основе CGI:: Application:: Dispatch с сервера Apache на Nginx. Приложение работает нормально под Apache, но при работе под Nginx работает только корневой уровень запросов Dispatch - т.е. /app. Любые дополнительные части пути, например /app /doit, вызывают сбой вызова с помощью Forbidden.

Я подозреваю, что мне нужно изменить способ передачи URL в fastcgi, но я не знаю, как его разделить. Большинство примеров, которые мне удалось найти, предназначены для разделения, когда есть сценарий типа dispatcher.cgi, но поскольку C:A:D ожидает вызова в качестве /app и ожидает увидеть часть URL /doit URL, я ' Я не уверен, как этого добиться.

Мой текущий блок местоположения:

    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>

1 ответ

Возможно корректировка вашего местоположения, что-то вроде
местоположение ~ ^/app/.*.pl$

Другие вопросы по тегам