Node.js 在Amazon Ubuntu EC2 web服务器上运行的SailsJS应用程序
我刚开始在EC2上运行我的SailsJS应用程序,我为此奋斗了很多。我无法使应用程序在端口80上运行。因此,我所做的是将默认的apache侦听端口80更改为8080 但仍然无法扬帆,我得到了这个错误Node.js 在Amazon Ubuntu EC2 web服务器上运行的SailsJS应用程序,node.js,amazon-ec2,sails.js,portforwarding,Node.js,Amazon Ec2,Sails.js,Portforwarding,我刚开始在EC2上运行我的SailsJS应用程序,我为此奋斗了很多。我无法使应用程序在端口80上运行。因此,我所做的是将默认的apache侦听端口80更改为8080 但仍然无法扬帆,我得到了这个错误 warn: error raised: Error: listen EACCES error: Server doesn't seem to be starting. error: error: Troubleshooting tips: error: error: -> Do you
warn: error raised: Error: listen EACCES
error: Server doesn't seem to be starting.
error:
error: Troubleshooting tips:
error:
error: -> Do you have permission to use port 80 on this system? (you might try `sudo`)
error:
error: -> Is something else already running on port 80 ?
error:
error: -> Are you deploying on a platform that requires an explicit hostname, like OpenShift?
error: (Try setting the `explicitHost` config to the hostname where the server will be accessible.)
error: (e.g. `mydomain.com` or `183.24.244.42`)
正如上面说的,我试过Sudo,但后来应用程序启动了。酷
然后我在终端上得到所有这些错误
warn: websocket connection invalid
warn: websocket connection invalid
warn: websocket connection invalid
warn: websocket connection invalid
这是我的浏览器控制台上的错误
连接到“ws://mywebsite.co/socket.io/1/WebSocket/GXGSRKCiYhST-7CMcXkm?”的WebSocket失败:在收到握手响应之前连接已关闭
这是ubuntu>netstat,如果这有助于理解为什么
$ netstat
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 localhost:mysql localhost:51432 TIME_WAIT
tcp 0 0 localhost:mysql localhost:51433 TIME_WAIT
tcp 0 308 ip-172-31-28-139.ap:ssh 121.75.215.208:55402 ESTABLISHED
Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags Type State I-Node Path
unix 4 [ ] DGRAM 8490 /dev/log
unix 3 [ ] STREAM CONNECTED 8369
unix 3 [ ] STREAM CONNECTED 7920 @/com/ubuntu/upstart
unix 3 [ ] STREAM CONNECTED 8392
unix 3 [ ] STREAM CONNECTED 9978
unix 2 [ ] DGRAM 9832
unix 3 [ ] STREAM CONNECTED 8391
unix 3 [ ] STREAM CONNECTED 9979 /var/run/dbus/system_bus_socket
unix 3 [ ] STREAM CONNECTED 8403 @/com/ubuntu/upstart
unix 3 [ ] DGRAM 7519
unix 3 [ ] STREAM CONNECTED 8406 /var/run/dbus/system_bus_socket
unix 2 [ ] DGRAM 8696
unix 3 [ ] STREAM CONNECTED 8483
unix 3 [ ] STREAM CONNECTED 8484 /var/run/dbus/system_bus_socket
unix 3 [ ] STREAM CONNECTED 7890
unix 3 [ ] DGRAM 7520
unix 3 [ ] STREAM CONNECTED 8405
unix 3 [ ] STREAM CONNECTED 7468
unix 3 [ ] STREAM CONNECTED 9973
unix 3 [ ] STREAM CONNECTED 7481 @/com/ubuntu/upstart
unix 3 [ ] STREAM CONNECTED 9972
应用程序中似乎存在未关闭的连接
正如你在这里看到的。因此,该应用程序从未因为web套接字而关闭
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 584 0 ip-173-31-28-139.a:1337 121.75.215.208:57749 CLOSE_WAIT 6468/node
tcp 493 0 ip-173-31-28-139.a:1337 121.75.215.208:57748 CLOSE_WAIT 6468/node
tcp 0 596 ip-173-31-28-139.ap:ssh 121.75.215.208:56740 ESTABLISHED -
tcp 449 0 ip-173-31-28-139.a:1337 121.75.215.208:57872 ESTABLISHED -
tcp 493 0 ip-173-31-28-139.a:1337 121.75.215.208:57745 CLOSE_WAIT 6468/node
tcp 0 0 localhost:mysql localhost:51494 ESTABLISHED -
tcp 1 0 ip-173-31-28-139.a:1337 121.75.215.208:57873 CLOSE_WAIT -
tcp 7 0 ip-173-31-28-139.a:1337 121.75.215.208:57780 CLOSE_WAIT 6468/node
tcp 499 0 ip-173-31-28-139.a:1337 121.75.215.208:57744 CLOSE_WAIT 6468/node
tcp 0 0 localhost:mysql localhost:51493 ESTABLISHED -
tcp 584 0 ip-173-31-28-139.a:1337 121.75.215.208:57746 CLOSE_WAIT 6468/node
tcp 0 0 localhost:51494 localhost:mysql ESTABLISHED 6468/node
tcp 0 0 localhost:51493 localhost:mysql ESTABLISHED 6468/node
tcp 0 0 ip-173-31-28-139.ap:ssh 121.75.215.208:55402 ESTABLISHED -
tcp 499 0 ip-173-31-28-139.a:1337 121.75.215.208:57747 CLOSE_WAIT 6468/node
如果你在生活中这样做过,请帮助我。我很高兴删除所有配置,从头开始。从您提到的“默认Apache端口”的事实来看,我猜您是从一个AMI开始的,它不一定是节点应用程序的最佳配置。我建议从EC2上的开始。在使用该AMI的EC2实例上设置Sails应用程序时,我没有遇到任何问题。它可能不是随MySQL预装的,但这正是apt-get的用途,对吗?您找到解决方案了吗?