Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了node.js – 我目前在端口3000上运行我的amazon ec2实例.我想在端口80上运行它.我该怎么做?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个在端口3000上运行的node.js应用程序.我将它部署在亚马逊网络服务(ec2)上,它在那里工作.我的server.js文件说:

var port            = process.env.PORT || 3000;
(...)
app.listen(port);
console.log('App listening on port ' + port);

aws设置中的安全组似乎也打开了端口80:

node.js – 我目前在端口3000上运行我的amazon ec2实例.我想在端口80上运行它.我该怎么做?

所以我认为将var端口更改为= 80并重新启动服务器就足够了.但是当我这样做时,我收到了一个错误

bitnami@ip-172-31-47-102:~/apps/myproject/www/myproject$sudo node server.js
App listening on port 80
events.js:141
      throw er; // Unhandled 'error' event
      ^

Error: listen EADDRINUSE :::80
    at Object.exports._errnoException (util.js:856:11)
    at exports._exceptionWithHostPort (util.js:879:20)
    at Server._listen2 (net.js:1237:14)
    at listen (net.js:1273:10)
    at Server.listen (net.js:1369:5)
    at Function.app.listen (/opt/bitnami/apps/myproject/www/myproject/node_modules/express/lib/application.js:542:24)
    at Object.<anonymous> (/opt/bitnami/apps/myproject/www/myproject/server.js:43:5)
    at Module._compile (module.js:398:26)
    at Object.Module._extensions..js (module.js:405:10)
    at Module.load (module.js:344:32)
    at Function.Module._load (module.js:301:12)
    at Function.Module.runMain (module.js:430:10)
    at startup (node.js:141:18)
    at node.js:1003:3

我在亚马逊上使用Bitnami MEAN 3.2.1-0系统.

另外,我想更改此端口的原因是:

到目前为止,我的所有webservices都在端口3000上运行.但是,我还有一个带有index.html文件的public_html文件夹.因此,当任何@L_674_10@想要显示我的网页时,他不仅要输入网页,还要输入不方便的端口(3000).

到目前为止,整个应用程序都在www.ec2-some-random-amazom-numbers.eu-West-1.compute.amazonaws.com:3000/index.html下,所以我会购买一个普通的顶级域名来指向它(例如@L_51_13@mes.com)但是那么 – 在这种情况下我还需要将端口3000更改为80吗?或者将应用程序保留在80以外的端口上是很常见的?

如果是后者,那么我是否可以按原样离开端口,只需将顶级域指向最后一个端口为3000的整个长亚马逊域?

例如:当@L_674_10@键入www@L_51_13@mething.com时,它会将其重定向
www.ec2-some-random-amazom-numbers.eu-West-1.compute.amazonaws.com:3000/index.html?

解决方法

根据您获得的错误(EADDRINUSE),其他一些Web服务器正在侦听服务器上已有的端口80.如果您可以阻止该服务器运行,那么您可以将您的应用程序更改为在端口80上运行.
请执行下列操作:

>找出服务器端口80上已经运行的内容. Apache很有可能.尝试使用Netstat进行验证.
>杀死它(并防止它重新启动).这取决于什么是听力.
>将您的应用移至端口80,就像您已经尝试过的那样.

其他资源:

> http://www.cyberciti.biz/faq/what-process-has-open-linux-port/

大佬总结

以上是大佬教程为你收集整理的node.js – 我目前在端口3000上运行我的amazon ec2实例.我想在端口80上运行它.我该怎么做?全部内容,希望文章能够帮你解决node.js – 我目前在端口3000上运行我的amazon ec2实例.我想在端口80上运行它.我该怎么做?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。