我在使用nginx和 fastcgi部署Catalyst應用程序時遇到問題。我試圖在Ubuntu 12.04下做到這一點。nginx和催化劑配置
我已成功配置nginx以便從我的 應用的/ root子目錄中提供靜態內容。但是,當我嘗試使用我的動態 網址時,我在應用程序的錯誤日誌中收到404錯誤,說沒有找到 (未映射的)url,這導致我相信nginx是 試圖服務類似於一個靜態頁面,而不是 發送給我的催化劑應用程序。
要重申,打擊「本地主機:3001 /根/ static.html」在 靜態的內容結果成功地顯示在瀏覽器,但 打的「localhost:30001 /費用/編輯器」導致以下錯誤:
"GET /expense/editor HTTP/1.1" 404
(其中「/費用/編輯器」在我的應用程序,一個運行內置的催化劑的開發 服務器時,我可以 成功訪問路徑)。
我推出了Catalyst應用爲:
> perl script/budgetweb_fastcgi.pl -l localhost:3003
我也嘗試運行/etc/init.d/fcgiwarp。我不清楚,如果我需要運行一個 單獨的fastcgi包裝,或者如果以上的perl腳本是我的fastcgi 包裝。我編輯fcgiwrap以使用TCP套接字(127.0.0.1:3003),然後 阻止我同時運行/etc/init.d/fcgiwrap和 腳本/ budgetweb_fastcgi.pl,因爲它們都使用 相同插座。所以我猜我只能使用催化劑 腳本?另外,在運行fcgiwrap時,當嘗試訪問靜態內容時,我收到502「錯誤網關」錯誤 。
任何幫助,或指導幫助,將不勝感激。到目前爲止,我已經看了看下面的頁面(除其他外,StackOverflow上只允許我發佈兩條鏈路):
Catalyst wiki
HOWTO: Deploy a Catalyst application using FastCGI and nginx
這裏是服務器我nginx的配置文件:
server {
listen 3001;
server_name budgetweb.com;
root /local/www/money/budgetweb;
location /root {
add_header Cache-control public;
root /local/www/money/budgetweb/;
}
location/{
access_log /local/www/money/budgetweb/logs/access.log;
error_log /local/www/money/budgetweb/logs/error.log;
index index.html index.htm index.pl;
try_files $uri =404;
gzip off;
fastcgi_pass localhost:3003;
fastcgi_index index.pl;
include /etc/nginx/fastcgi_params;
fastcgi_param SCRIPT_FILENAME /local/www/money/budgetweb$fastcgi_script_name;
fastcgi_param SCRIPT_NAME /;
fastcgi_param PATH_INFO $fastcgi_script_name;
}
# Disable gzip (it makes scripts feel slower since they have to complete
# before getting gzipped)
gzip off;
# include /etc/nginx/fcgiwrap.conf;
}