nginx 및 fastcgi를 사용하여 Catalyst 응용 프로그램을 배포하는 데 문제가 있습니다. 우분투 12.04에서이 작업을 시도했습니다.nginx 및 촉매 구성
내 앱의/root 하위 디렉토리에서 정적 콘텐츠를 제공하도록 nginx를 성공적으로 구성했습니다. 그러나 내 동적 인 URL 중 하나를 시도 할 때 응용 프로그램의 오류 로그에 (매핑되지 않은) URL을 찾을 수 없다는 404 오류가 발생합니다.이 오류는 nginx가 과 비슷한 요청을 처리하려고 시도하는 것으로이 끕니다. 대신 정적 페이지를 사용하여 Catalyst 응용 프로그램으로 보냅니다. 다음과 같은 오류가 발생 : '30001/비용/편집자는 로컬 호스트'타격 정적 콘텐츠의 결과 성공적으로 브라우저에 표시되고 있지만, :
는 '3001/루트/static.html 로컬 호스트'가 타격, 재 작성
을"GET /expense/editor HTTP/1.1" 404
('/ 비용/편집기'내 앱에 내장 된 촉매 개발 서버를 실행할 때 나는 성공적으로 액세스 할 수있는 하나의 경로입니다).
내가 같이 촉매 응용 프로그램을 실행하고 있습니다 :
> perl script/budgetweb_fastcgi.pl -l localhost:3003
또한 /etc/init.d/fcgiwarp를 실행했습니다. 별도의 fastcgi 래퍼를 실행해야하거나 위의 perl 스크립트가 my fastcgi 래퍼 인 경우 명확하지 않습니다. TCP 소켓 (127.0.0.1:3003)을 사용하기 위해 fcgiwrap을 편집했는데 은 /etc/init.d/fcgiwrap와 스크립트/budgetweb_fastcgi.pl을 동시에 실행하지 못하도록 막았습니다. 왜냐하면 둘 다 동일한 번호 을 사용하기 때문입니다. 소켓. 그래서 저는 Catalyst 스크립트 만 사용한다고 추측합니다. 또한 fcgiwrap을 실행할 때 정적 컨텐트에 액세스하려고 시도 할 때 "불량 게이트웨이"오류 가 발생합니다.
도움이 될만한 도움이나 조언을 보내 주시면 감사하겠습니다. 지금까지 나는 다음 페이지에서 보았다 (다른 사람의 사이에서, StackOverflow의 만 나 두 개의 링크를 게시 할 수 있습니다) :
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;
}
:
여기 Catalyst wiki
HOWTO: Deploy a Catalyst application using FastCGI and nginx
서버 내의 nginx 설정 파일입니다