生产流星应用:nginx的代理 - 失败(111:连接被拒绝)

问题描述:

我试图流星应用程序部署到我的生产服务器,上Ununtu 14.04运行,我收到以下错误在我的日志文件(在/ var /日志/nginx/error.log)生产流星应用:nginx的代理 - 失败(111:连接被拒绝)

2014/12/02 16:03:38 [error] 19231#0: *4267 connect() failed (111: Connection refused) while connecting to upstream, client: 162.13.2.250, server: theserver.com, request: "GET /content/staticContent.json HTTP/1.1", upstream: "http://127.0.0.1:3000/content/staticContent.json", host: "theserver.com" 

我的应用程序获取从5个文件JSON内容和这些包括作为项目的一部分。

我有以下nginx配置文件。我正在运行nginx 1.6.2。

我也应该注意到,参观http://theserver.com/content/staticContent.json加载浏览器中的内容。

我也从命令行运行'wget http://127.0.0.1:3000/content/staticContent.json'当登录到我的生产服务器,我可以获取内容。

server_tokens off;

upstream anna { 
     server 127.0.0.1:3000; 
} 

# HTTP 
server { 
     listen 80; 

     #server_name *.theserver.com; 
     server_name  theserver.com; 

     location/{ 
       proxy_pass http://anna; 
       proxy_http_version 1.1; 
       proxy_set_header Upgrade $http_upgrade; 
       proxy_set_header Connection "upgrade"; 
       proxy_set_header Host $http_host; 

       proxy_set_header X-Real-IP $remote_addr; 
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
       proxy_set_header X-Forward-Proto http; 
       proxy_set_header X-NginX-Proxy true; 

       proxy_redirect off; 
     } 
} 

我也有以下新贵配置文件中的一个节点光纤上运行我的流星应用

description "Meteor.js (NodeJS) application for theserver.com" 
author "Me <[email protected]>" 

start on started mongodb and runlevel [2345] 

stop on shutdown 

respawn 
respawn limit 10 5 

setuid anna 
setgid anna 

script 
     export PATH=/opt/local/bin:/opt/local/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin 
     export NODE_PATH=/usr/lib/nodejs:/usr/lib/node_modules:/usr/share/javascript 
     export PWD=/home/anna 
     export HOME=/home/anna 
     export BIND_IP=127.0.0.1 
     export PORT=3000 
     export HTTP_FORWARDED_COUNT=1 
     export MONGO_URL=mongodb://localhost:27017/anna 
     export ROOT_URL=http://theserver.com/ 
     exec node /home/anna/bundle/main.js >> /home/anna/anna.log 
end script 

我的部署过程如下:

  1. 在我的本地机器我运行'流星建造'。然后scp到我的生产服务器上面的主目录
  2. 然后解开.tar.gz文件,cd进入bundle/programs/server并运行'npm install'
  3. 最后,当以'anna “使用sudo的权利,我跑‘须藤开始安娜’给出了上述新贵脚本
  4. 在检查生成的日志文件,我看到生成的HTML告诉我有一个502网关错误。

当我转到实况网站的URL时,我可以看到我放置的加载图标。这是Meteor的加载模板,我已经放置好了,我已经配置IronRouter使用它作为加载模板,而它正在等待我的集合的订阅被填充,但是这种情况从未发生过,因为我的服务器端mongodb实例永远不会被填充,出于上述原因。

任何人都可以看到什么不寻常的在上面可能会导致该502网关错误?

运行的netstat -ln表示,我认为node.js的运行,见下图:

tcp  0  0 127.0.0.1:3000   0.0.0.0:*    LISTEN 

感谢

+0

你可能想看看http://*.com/a/24497020/586086。 – 2014-12-03 01:46:20

+0

嗨安德鲁 - 只是,不幸的是我没有工作。 – matfin 2014-12-03 08:33:47

您是否尝试过使用meteor-up?它为您处理捆绑和新贵配置。

流星行动的建议nginx的配置是下面,它看起来很相似,你(从Using Meteor Up with NginX vhosts拍摄)。

/etc/nginx/sites-enabled/mycustomappname.com。CONF

server { 
    listen    *:80; 

    server_name   mycustomappname.com; 

    access_log   /var/log/nginx/app.dev.access.log; 
    error_log    /var/log/nginx/app.dev.error.log; 

    location/{ 
    proxy_pass http://127.0.0.1:3000; 
    proxy_http_version 1.1; 
    proxy_set_header Upgrade $http_upgrade; 
    proxy_set_header Connection 'upgrade'; 
    proxy_set_header X-Forwarded-For $remote_addr; 
    } 
} 
+0

嗨。感谢您的建议。我尝试了很多事情来实现这个目标,并且永远无法解决它。我如何解决这个问题就是在服务器上创建一个新的子域,目录以及加载静态内容的nginx配置文件。然后,我把所有的资产都放在那里,并且工作。这样做是更好的做法,它允许我从我包含的所有内容资产中释放我的代码。 – matfin 2015-01-04 01:18:59