[英]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
访问您的服务器
如果您在控制台上看到错误,请尝试使用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.