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$