生产流星应用: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
我的部署过程如下:
- 在我的本地机器我运行'流星建造'。然后scp到我的生产服务器上面的主目录
- 然后解开.tar.gz文件,cd进入bundle/programs/server并运行'npm install'
- 最后,当以'anna “使用sudo的权利,我跑‘须藤开始安娜’给出了上述新贵脚本
- 在检查生成的日志文件,我看到生成的HTML告诉我有一个502网关错误。
当我转到实况网站的URL时,我可以看到我放置的加载图标。这是Meteor的加载模板,我已经放置好了,我已经配置IronRouter使用它作为加载模板,而它正在等待我的集合的订阅被填充,但是这种情况从未发生过,因为我的服务器端mongodb实例永远不会被填充,出于上述原因。
任何人都可以看到什么不寻常的在上面可能会导致该502网关错误?
运行的netstat -ln表示,我认为node.js的运行,见下图:
tcp 0 0 127.0.0.1:3000 0.0.0.0:* LISTEN
感谢
您是否尝试过使用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;
}
}
嗨。感谢您的建议。我尝试了很多事情来实现这个目标,并且永远无法解决它。我如何解决这个问题就是在服务器上创建一个新的子域,目录以及加载静态内容的nginx配置文件。然后,我把所有的资产都放在那里,并且工作。这样做是更好的做法,它允许我从我包含的所有内容资产中释放我的代码。 – matfin 2015-01-04 01:18:59
你可能想看看http://stackoverflow.com/a/24497020/586086。 – 2014-12-03 01:46:20
嗨安德鲁 - 只是,不幸的是我没有工作。 – matfin 2014-12-03 08:33:47