【问题标题】:SailsJS App running on Amazon Ubuntu EC2 web server在 Amazon Ubuntu EC2 Web 服务器上运行的 SailsJS 应用程序
【发布时间】:2014-10-04 09:18:30
【问题描述】:

我刚开始在 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 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?__sails_io_sdk_version=0.10.0&__sails_io_sdk_platform=browser&__sails_io_sdk_language=javascript' 的 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     

似乎有来自应用程序的未关闭连接

正如您在此处所见。所以应用程序永远不会因为网络套接字而关闭

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       

如果您在生活中这样做过,请提供帮助。我很高兴删除所有配置并从头开始。

【问题讨论】:

  • 你找到解决方案了吗?

标签: node.js amazon-ec2 sails.js portforwarding


【解决方案1】:

从您提到“默认 Apache 端口”的事实来看,我猜您是从不一定最适合 Node 应用程序的 AMI 开始的。我建议从 EC2 上的 Bitnami Node.js AMI 开始。使用该 AMI 在 EC2 实例上设置 Sails 应用程序没有任何问题。它可能没有预装 MySQL,但这就是 apt-get 的用途,对吧?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-25
    • 1970-01-01
    • 1970-01-01
    • 2014-06-09
    • 1970-01-01
    相关资源
    最近更新 更多