当前位置: 首页 > 面试题库 >

错误:监听EACCES 0.0.0.0:80 OSx Node.js

阎淮晨
2023-03-14
问题内容

我正在学习angularJS书籍中的教程,并且必须设置服务器。这是server.js文件:

 var express = require('express');
  var app = express();
   app.use('/', express.static('./'));
    app.listen(80);

我收到此错误:

$ node server.js
events.js:154
      throw er; // Unhandled 'error' event
      ^

Error: listen EACCES 0.0.0.0:80

我已经知道,错误EACCES意味着我没有访问端口80的权限,但是我不知道如何解决此问题。任何帮助,不胜感激!


问题答案:

如果需要在端口80上运行服务器,则应使用反向代理(如nginx),该代理将在特权端口上使用系统帐户运行,并将请求代理到在非特权端口(>
1024)上运行的Node.js服务器

在开发环境中运行时,您可以自由地以root身份运行(即sudo node server.js),但这在生产环境中非常危险。

这是一个示例nginx配置,它将查看请求是否针对文件系统中存在的文件,如果不存在,则将该请求代理到运行在端口9000上的Node.js服务器

upstream yournodeapp {
  server localhost:9000 fail_timeout=0;
  keepalive 60;
}

server {
  server_name localhost;
  listen 80 default_server;

  # Serve static assets from this folder
  root /home/user/project/public;

  location / {
    try_files $uri @yournodeapp;
  }

  location @yournodeapp {
    proxy_pass http://yournodeapp;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
  }
}


 类似资料:
  • 问题内容: 应用程序可以在localhost上正常运行,但是当它连接到服务器时会出错。 我通过端口22连接服务器 这是错误 任何帮助! -更新- 我跑 结果: 但是我跑 什么也没显示。 任何帮助。这是服务器故障吗? 跑步 跑步 问题答案: 您正在使用一个已使用的端口。您必须更改端口,或者必须终止正在监听端口的进程。打开终端并输入(示例):或或和的过程。 如何更改total.js中的侦听 端口 ?

  • 问题内容: 我一直在使用OpenShift和node.js和socket.io。我的代码是: 我的代码说它返回端口8080。但是,我收到此错误: 我怎样才能解决这个问题?我找不到其他解决方案。 问题答案: 您还需要在监听中指定绑定到您的OPENSHIFT_NODEJS_IP,因为默认情况下它尝试绑定到0.0.0.0,这是不允许的。 就像是:

  • Listener架构概述 Listener Listener.DrainType (Enum) Filter FilterChainMatch FilterChain Listener Listener proto { "name": "...", "address": "{...}", "filter_chains": [], "use_original_dst": "{...}

  • 问题内容: 如果我使用端口80运行服务器,并且尝试使用xmlHTTPrequest,则会出现此错误: 如果我要在端口80上运行服务器时发出请求,为什么nodejs会出现问题?对于网络浏览器来说,这不是问题:在服务器运行时,我可以在Internet上冲浪。 服务器是: 并要求: 问题答案: 表示试图将服务器绑定到的端口号已被使用。 因此,在您的情况下,必须已经在端口80上运行了服务器。 如果在此端口

  • 说明 要使用 SQL 监听功能,必须先开启,并且不推荐在生产环境使用。 开启方式是在配置文件中的 beans 中加入: 'DbQueryLog' => [ 'enable' => true, ] 事件 SQL 执行 事件名:IMI.DB.EXECUTE 每一个 SQL 语句执行后都会触发该事件。 示例: <?php namespace Imi\Test\Component\Db\Lis

  • 如果开启数据库的调试模式的话,你可以对数据库执行的任何SQL操作进行监听,使用如下方法: Db::listen(function ($sql, $time, $explain) { // 记录SQL echo $sql . ' [' . $time . 's]'; // 查看性能分析结果 dump($explain); }); 默认如果没有注册任何监听操作的话,这些