首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >nginx与催化剂配置

nginx与催化剂配置
EN

Stack Overflow用户
提问于 2012-12-16 04:29:12
回答 1查看 1.2K关注 0票数 0

我在使用nginx和快速and部署催化剂应用程序时遇到了问题。我试图在ubuntu 12.04下这样做。

我已经成功地将nginx配置为服务于应用程序的/root子目录中的静态内容。但是,当我尝试使用任何一个动态url时,我在应用程序的错误日志中得到一个404错误,表示找不到(未映射的)url,这使我相信nginx试图为类似于静态页面的请求提供服务,而不是将它发送给我的催化剂应用程序。

要重新声明,点击'localhost:3001/root/static.html‘会导致在浏览器中成功显示静态内容,但是按一下’localhost:30001/3001/editor‘会导致以下错误:

代码语言:javascript
运行
复制
"GET /expense/editor HTTP/1.1" 404

(在这里,‘/ path /editor’是我的应用程序中的一条路径,在运行内置的催化剂开发服务器时,我可以成功地访问它)。

我正在启动催化剂应用程序,如下所示:

代码语言:javascript
运行
复制
> perl script/budgetweb_fastcgi.pl -l localhost:3003

我还试着跑/etc/init.d/fcgiwarp。我不清楚我是否需要运行一个单独的快速the包装器,或者上面的perl脚本是否是我的快速the包装器。我编辑了fcgiwrap以使用TCP套接字(127.0.0.1:3003),这样我就无法同时运行/etc/init.d/fcgiwrap和script/预算tweb_Quickcgi.pl,因为它们都使用相同的套接字。所以我猜我应该只使用催化剂脚本?此外,在运行fcgiwrap时,当尝试访问静态内容时,我会得到502个“坏网关”错误。

任何帮助,或指点帮助,都将不胜感激。到目前为止,我已经查看了以下页面(包括其他页面;StackOverflow只允许我发布两个链接):

催化剂wiki

HOWTO:使用FastCGI和nginx部署催化剂应用程序

下面是服务器的nginx配置文件:

代码语言:javascript
运行
复制
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;
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-28 15:44:01

催化剂附带的fastcgi.pl脚本是您的FastCGI包装器。您所要做的就是在套接字上启动它,然后将您的and服务器指向该套接字,然后一切都会通过。对于生产系统,您要做的唯一一件事就是创建一个启动/停止脚本,它将在启动和关闭时启动和停止应用程序。start命令看起来与上面运行的非常相似(您可能需要添加一个'-d‘标志来将其去守护。)

在您的your服务器配置中,将'/‘配置为指向您的应用程序应该可以。您可以尝试删除“index”、“try _files”和“fastcgi_index”配置行,这可能会导致nginx尝试并静态地服务内容,而不是将请求传递给应用程序。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13898615

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档