2012-12-10 81 views
1

我想將一個簡單的CGI :: Application :: Dispatch的REST應用程序從Apache服務器轉換爲Nginx。該應用程序在Apache下運行良好,但在Nginx下運行時,只有Dispatch請求的根層可以工作 - 即/ app。路徑的任何其他部分(例如/ app/doit)都會導致調用失敗,並顯示Forbidden。Perl nginx REST CGI ::應用

我懷疑我需要改變我如何將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> 

回答

0

可能調整自己的位置,一些諸如
位置〜^ /應用/.* .pl $