首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在端口80上运行Node.js?

如何在端口80上运行Node.js?
EN

Stack Overflow用户
提问于 2011-05-24 18:31:18
回答 8查看 95.6K关注 0票数 77

我的目标是在端口80上运行Node.js。这是因为我发现某些网络阻止了node.js,这些网络不允许来自任何其他端口的流量。

看起来最好的方法是通过Node.js代理Apache。我尝试过使用node-http-proxy来做这件事,但是我没有任何运气。

我使用的代码如下:

代码语言:javascript
复制
var util = require('util'),
    http = require('http'),
    httpProxy = require('http-proxy');

httpProxy.createServer(9000, 'localhost').listen(80);

http.createServer(function (req, res) {
  res.writeHead(200, { 'Content-Type': 'text/plain' });
  res.write('request successfully proxied to: ' + req.url + '\n' + JSON.stringify(req.headers, true, 2));
  res.end();
}).listen(9000);

但是对于端口80,我一直收到错误消息"Address in use“。我一定是做错了什么。

如何使用node-http-proxy通过node.js代理Apache?这将使我能够在端口80上运行node.js吗?node-http-proxy是实现这一目标的最佳方式吗?

谢谢。

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2011-05-24 18:40:18

你需要做的是为你正在运行的服务器准备两个ip地址。Apache有一个ip绑定到端口80,然后node.js有另一个ip绑定到端口80。

Using节点及其listen指令有两个值,例如。.listen(80,NODEJS_IP或DNS名称);

一些其他的建议。

我不会将apache与nodejs一起使用,因为它没有事件。所以我们并不推荐这样做。实际上,我会考虑使用NGINX,因为它与Node配对要好得多。

票数 31
EN

Stack Overflow用户

发布于 2011-07-28 01:49:08

在8080或更高的端口上运行你的应用程序

代码语言:javascript
复制
sudo iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080

如果您没有使用ngnix或apache

票数 125
EN

Stack Overflow用户

发布于 2011-05-24 19:48:22

目前不建议在端口80上运行node,因为这需要以root身份运行node。

你对阿帕奇的依恋程度如何?通过nginx代理节点是一个行之有效的解决方案,nginx-config如下:

代码语言:javascript
复制
upstream node_cluster {
    ip_hash;   
    server 127.0.0.1:8000;
    server 127.0.0.1:8001;
    server 127.0.0.1:8002;
}

server {
    listen 0.0.0.0:80;
    server_name foo;
    access_log /var/log/nginx/foo.log;

    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_pass http://node_cluster/;
      proxy_redirect off;
    }
}

Nginx文档:

http://wiki.nginx.org/HttpProxyModule

http://wiki.nginx.org/HttpUpstreamModule

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

https://stackoverflow.com/questions/6109089

复制
相关文章

相似问题

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