Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript node.js不带端口号的url_Javascript_Node.js - Fatal编程技术网

Javascript node.js不带端口号的url

Javascript node.js不带端口号的url,javascript,node.js,Javascript,Node.js,我现在正在创建node.js项目。我有一个VPS,它安装了ubuntu 16.04作为操作系统,nginx作为http服务器。正如您所知,我们使用带有端口号的URL来访问node.js项目。我想知道有没有办法像普通的php和其他项目一样,不使用端口号进行访问?Solution 1 使用Apache或Nginx作为反向代理 阿帕奇: Nginx: 解决方案2 使用iptables将端口80转发到端口3000 sudo iptables -t nat -A PREROUTING -i eth0

我现在正在创建node.js项目。我有一个VPS,它安装了ubuntu 16.04作为操作系统,nginx作为http服务器。正如您所知,我们使用带有端口号的URL来访问node.js项目。我想知道有没有办法像普通的php和其他项目一样,不使用端口号进行访问?

Solution 1 使用Apache或Nginx作为反向代理

  • 阿帕奇:

  • Nginx:

解决方案2 使用iptables将端口80转发到端口3000

sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3000
参考资料:


我们在本地开发中使用这些类型的端口号的唯一原因是1024以下的端口是“保留”的,需要根权限才能使用。如果将节点服务器设置为侦听此端口,则仍然可以使用端口80进行本地开发


如果您确实对节点服务器进行了这些更改,为了在本地运行它,您需要以root用户身份运行它,或者使用
sudo

在端口80@Hendry上运行sudo有更好的方法-为了让它在端口80上运行以进行本地开发,这是相当多的工作。我看不出有什么真正的理由不在不同的端口上运行。只要我们谈论的是本地开发或测试,我觉得使用sudo来监听端口80并不是一个问题。另外,您发布的链接似乎缺少引用的配置文件。这个问题与本地开发无关。但是你是对的,本地开发sudo很不错。似乎这个问题需要一些改进,他们还讨论了一个带有ubuntu的vps,它看起来像一个测试/生产环境似乎是一个有趣的url;)如果这些链接停止工作,您的答案将不再具有信息性。请在回答中直接提供相关信息。@PatrickRoberts为解决方案2添加了信息。对于解决方案1,复制如何设置反向代理的所有步骤似乎并不明智