使用node.js设置nginx

时间:2011-08-14 20:28:50

标签: node.js nginx

我已将nginx设置为node.js app的前端。

我的nginx conf是:

worker_processes  1;
error_log  /tmp/logs/error.log;
events {
  worker_connections  1024;
}

http {
  include       mime.types;
  default_type  application/octet-stream;
  access_log  /tmp/logs/access.log;
  sendfile        on;
  keepalive_timeout  65;

  include /etc/nginx/sites-enabled/*;

  # BELOW IS THE PART TO PROXY MY NODE.JS APP

  upstream node_entry {
    server unix:/tmp/express.sock
    fail_timeout=0;
  }
  server {
    listen 8888;
    client_max_body_size 4G;
    server_name localhost;

    keepalive_timeout 5;

    location / {
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header Host $http_host;
      proxy_redirect off;
      proxy_pass http://node_entry;
    }
  }
}

我的node.js应用是:

express = require('express');
app = express.createServer();
app.get('/test', function(req, res){
  res.send('TEST');
});
app.listen('/tmp/express.sock'); 

当我发出:

curl -XGET'http:// localhost:8888 / test'

我收到错误而不是代理到我的node.js app。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

我正在做类似的事情,但它全部在一个主机上,而且我使用的是nginx和节点都知道的预定义端口号(尽管如果你能让它工作,我宁愿用你的方式)。 / p>

如果节点侦听特定端口,并且proxy_pass为http://127.0.0.1:{that_port},它是否有效? (假设两者都在同一台服务器上......)