繁体   English   中英

如何在Linux服务器上的端口80上启动node.js?

[英]How to start node.js on port 80 on a linux server?

当我尝试在端口80上启动节点时,错误告诉我该端口正在使用中。 我想那是Apache。

什么是“接管”端口80的正确方法,并在服务器重启后保持这种方式?

(Linux的XXXX。_ _.com 2.6.32-5-AMD64#1 SMP星期二06月14 9点42分28秒UTC 2011 x86_64的GNU / Linux)的

您可以使用ip表将端口80映射到8000

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8000

使它永久化

sudo sh -c "iptables-save > /etc/iptables.rules"

并添加

pre-up iptables-restore < /etc/iptables.rules

到你的/ etc / network / interfaces

要在另一个进程正在侦听端口时接管端口80,您必须终止进程(或以某种方式告诉它停止侦听)。 为确保Apache在下次启动时不再尝试侦听端口80,您需要编辑其配置或阻止其启动。

要查看哪个进程正在侦听端口80,请运行sudo netstat -ntap并查找Local Address以port :80结尾的行。 进程的PID(和名称)位于最右侧列。

你可以使用node.js和node-http-proxy检查这个链接如何在node-http-proxy旁边使用vhosts? 如何在端口80上运行Node.js?

感谢和问候,
阿洛克

持续运行的未使用的apache可能是一个安全漏洞,在任何情况下都无法运行未使用的服务。

关于你在ubuntu上的机会,这就是我用过的......

sudo service apache2 stop
sudo update-rc.d apache2 remove

停止当前使用它的服务后,您可以访问端口80。

在您的情况下,请按照下列步骤操作

1)使用systemctl来停止apache2:

sudo systemctl stop apache2

2)检查apache2状态:

sudo systemctl status apache2

或者只需在浏览器中输入http://localhost即可。 如果你收到错误,你很高兴。

ERR_CONNECTION_REFUSED

3)现在在端口80上启动NodeJS服务器。

4)您可以通过http://localhost访问您的服务器

UPDATE

如果您在控制台上看到错误,请尝试使用sudo之前的node 。例如。 sudo node server.js

这是错误

events.js:137
      throw er; // Unhandled 'error' event
      ^

Error: listen EACCES 0.0.0.0:80
    at Object._errnoException (util.js:1003:13)
    at _exceptionWithHostPort (util.js:1024:20)
    at Server.setupListenHandle [as _listen2] (net.js:1349:19)
    at listenInCluster (net.js:1407:12)
    at Server.listen (net.js:1495:7)
    at Object.<anonymous> (/home/abdus/Desktop/voice-recognition/test.js:7:4)
    at Module._compile (module.js:660:30)
    at Object.Module._extensions..js (module.js:671:10)
    at Module.load (module.js:573:32)
    at tryModuleLoad (module.js:513:12)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM