2013-03-13 61 views
3
var http = require('http'); 

http.createServer(function (req, res) { 
    res.writeHead(200, {'Content-Type': 'text/plain'}); 
    res.end('Hello World\n'); 
}).listen(9000, "127.0.0.1"); 
console.log('Server running at http://127.0.0.1:9000/'); 

停止响应我要开始使用的的NodeJS上面的代码,当我开始的过程,并在浏览器中我得到的回应一旦运行,但在那之后我没有得到任何回应。每次我重新启动,我都会得到1个响应,并且总是停止。我怎样才能得到这个连续运行。提前致谢!服务器的NodeJS后1个响应

只需添加更多与此问题相关的信息即可。下面是nginx的的c​​onf文件

server { 

    listen 80; 

    client_max_body_size 2M; 


    server_name my_domain; 


    root /home/node/My_Folder; 
    # access_log /var/log/nginx.vhost.access.log main; 
    send_timeout 1; 

location ~* ^.+\.(jpg|jpeg|JPG|JPEG|GIF|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js|mov|html)$ { 
autoindex on; 
root /home/node/My_Folder; 
expires 30d; 

break; 
} 

location/{ 
     proxy_set_header X-Real-IP $remote_addr; 
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
     proxy_set_header Host $http_host; 
     proxy_redirect off; 
     #proxy_connect_timeout 50ms; 
     #proxy_send_timeout 200ms; 
     #proxy_read_timeout 200ms; 
     proxy_next_upstream error; 
     proxy_pass http://Handler; 
     #index no_ads.html no_ads.htm; 
     break; 
} 

} 

upstream Handler { 
     server 127.0.0.1:8010; 
     server 127.0.0.1:8011; 
     server 127.0.0.1:8012; 
     server 127.0.0.1:8013; 
     server 127.0.0.1:8014; 
     server 127.0.0.1:8015; 
     server 127.0.0.1:8016; 
     server 127.0.0.1:8017; 
     server 127.0.0.1:8018; 
     server 127.0.0.1:8019; 
     server 127.0.0.1:9000; 
} 

我同时使用

节点app.js 永远启动-a app.js

启动应用程序试图片段,但无论哪种方式,我得到只有一个响应,然后超时。我确实有一些其他节点应用程序运行在同一台服务器上,并且这些应用程序似乎工作正常。所以,我完全失去了对端口号为9000

你的nginx的配置文件里面

+0

你的代码似乎很好。你确定这确实发生了吗?你用wget或curl验证过吗?另外请注意,您的'console.log'说的是与您实际正在监听的端口不同的端口......以防万一您输入了该网址。 – Brad 2013-03-13 02:31:53

+0

Brad,感谢您的快速响应,端口号已修复,我只是忘记了当我在这里输入代码时更新代码。但我很确定这就是我所发生的事情,我尝试过停止并开始很多次。但是,只有一个答案是一致的。我不确定wget或curl是什么,请给我一个链接,可以指导我通过这个? – jay 2013-03-13 02:36:14

+0

“一个响应”是什么意思?你的意思是,当你刷新时,无法建立连接? – Brad 2013-03-13 02:36:45

回答

3

你的Node.js应用程序运行时,你已经设定

proxy_pass http://Handler; 

其中应重定向请求到节点。 JS中的一个应用,但不直接重定向请求存在,而是被配置作为上游如下:

upstream Handler { 
    server 127.0.0.1:8010; 
    server 127.0.0.1:8011; 
    server 127.0.0.1:8012; 
    server 127.0.0.1:8013; 
    server 127.0.0.1:8014; 
    server 127.0.0.1:8015; 
    server 127.0.0.1:8016; 
    server 127.0.0.1:8017; 
    server 127.0.0.1:8018; 
    server 127.0.0.1:8019; 
    server 127.0.0.1:9000; 
} 

如NGINX默认使用圆钢上游的d-robin意味着NGinx尝试连接9000端口(有效)的次数为11次,接下来的10次尝试访问不存在的服务器。

因此无法建立连接,您将收到错误消息。

删除上游块中的所有其他服务器条目,完全删除上游块并将单个Node.js服务器直接配置为代理,或使用端口8010,8011,...启动其他Node.js服务器,一切都应该工作。

有关如何配置上游的详细信息,请查看NGinx documentation on the HttpUpstreamModule

+0

感谢Golo,这似乎解决了这个问题。 – jay 2013-03-13 23:20:13

+0

太好了,不客气:-) – 2013-03-14 06:39:48