- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
项目有keystonejs这是一个 Nodejs CMS。
突然(好吧,可能是在尝试安装 SSL 证书后,停止并重新启动 Node 服务器和 nginx)它停止工作。
当我用我的非 root 用户尝试 node keystone.js
时,我遇到了这个错误:
Error: listen EACCES
at errnoException (net.js:901:11)
at Server._listen2 (net.js:1020:19)
at listen (net.js:1061:10)
at net.js:1143:9
at dns.js:72:18
at process._tickCallback (node.js:415:13)
当您尝试 start node on a port < 1024 时会出现此错误但事实并非如此,因为我在端口 3000 上安装了它。
当我以 root 身份尝试 node keystone.js
时,错误是:
my-project failed to start: address already in use
Please check you are not already running a server on the specified port.
我发现 keystone 文件中的错误字符串为 EADDRINUSE
使用 netstat -lntu
我检查了 which ports are in use但是 :3000
不是。
也检查端口是否打开:
root@localhost:/home# sudo ufw status | grep 3000
3000 ALLOW Anywhere
3000 (v6) ALLOW Anywhere (v6)
我输入了ps aux | grep node
检查服务器上是否正在运行 node/nodemon/forever 任务。只有一个 Node 在运行,与本项目无关。
root@localhost:/home# ps aux | grep node
server 30637 0.0 0.3 673840 25588 ? Ssl 11:15 0:00 /usr/bin/nodejs /usr/lib/node_modules/forever/bin/monitor keystone.js
server 30639 0.1 1.9 994280 156736 ? Sl 11:15 0:06 /usr/bin/nodejs /home/server/my-other-project/keystone.js
root 31503 0.0 0.0 11716 932 pts/1 S+ 12:28 0:00 grep --color=auto node
最后我认为EADDRINUSE
错误可能与服务器后面的nginx
端口有关(我将端口80
重定向到3000
) 我检查是否有东西阻塞了那个端口:
root@localhost:/home/# netstat -tulpn | grep :80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 31266/nginx
tcp6 0 0 :::80 :::* LISTEN 31266/nginx
你知道为什么会这样吗?
最佳答案
首先,默认情况下 Keystone.JS 使用 3001 作为 https,所以你应该检查这个端口上是否有东西。
但我猜问题是您在同一个端口上启动了 http 和 https 服务器。要仅使用 https,请在您的选项中指定:
...
'ssl' : 'only',
...
如果你想同时使用两个服务器(http 和 https),最好指定两个端口:
...
'ssl' : true, // launch http and https
'port' : 3000, // for http
'ssl port' : 3001 // for https
'ssl key' : 'your key.pem',
'ssl cert' : 'your cert.crt',
...
我猜你正在执行下面的 conf 并且你会得到你遇到的错误,因为默认情况下 keystone http 在 3000 上启动并且你在 3000 上映射 https 而没有说明如何处理 http:
...
'ssl' : true, // launch http and https
'ssl port' : 3000, // you launch https on the default http port and do not specify the http port -> error : 'Please check you are not already running a server on the specified port.'
'ssl key' : 'your key.pem',
'ssl cert' : 'your cert.crt',
...
关于javascript - Node (keystonejs) address already in use 错误,但不是。还有 EACCES 错误。 NGINX背后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34415026/
#!/bin/bash NAME="trueguild" # Name of the applica$ DJANGOD
我在 StackOverflow 和其他一些网站上阅读了一些答案,但似乎没有一个能解决我遇到的问题。 我正在通过终端安装 AppGyver 附加组件。出现以下错误: BradMacBookPro:Sp
我正在尝试读取一个csv文件并将其索引为 flex 文件。 Logstash给出此错误: [2020-03-15T14:43:02,424][ERROR][logstash.javapipeline
我的 friend 给了我一个带有 dockerfile 的项目,这似乎对他来说工作得很好,但我得到了一个权限错误。 FROM node:alpine RUN mkdir -p /usr/src/no
我的 friend 给了我一个带有 dockerfile 的项目,这似乎对他来说工作得很好,但我得到了一个权限错误。 FROM node:alpine RUN mkdir -p /usr/src/no
我正在尝试设置 nativescript 开发环境。我按照官方文档中描述的步骤进行操作。 Link 之后,我通过使用创建了一个新项目 tns create my-first-app --templat
我想将数据写入 SD 卡,但收到以下错误:打开失败:EACCES(权限被拒绝)。我正在开发的Android版本是jelly bean(4.3)。我还在 list 文件中授予了许可。 这是我的代码:
我已经安装了一个外部 SD 卡 (7.9GB)。以下是我用来将原始音频文件从我的项目传输到 SD 卡的代码。我正在使用 JellyBean 4.2 版本。我可以使用 fileManager 应用程序来
我试图将一些字符串保存到 SD 卡。但它抛出了这个异常 open failed EACCES (Permission denied)。我在设备(asus zenfone 5)上对此进行了测试。我已经在
我正在尝试运行此命令 ionic build android 但它给了我这个错误 谁能告诉我我做错了什么。我在应用程序文件夹 sudo chmod -R a+rwx/appfolder 上运行了以下权
我有一个照片编辑 android 应用程序,用户可以选择结果照片的输出目录。问题是谷歌对 KITKAT 版本的 sdcard 写入权限进行了更改,而具有 Android KITKAT 版本的设备将不允
我试图从一个特权进程创建一个POSIX消息队列(等待以后读取),然后从一个非特权进程打开这个消息队列(发送消息),后面的mq_open()返回:EACCES。 如果创建进程和打开进程都是特权进程或都是
为 targetSdkVersion v29 构建时,我无法访问存储。 这是我的gradle配置: compileSdkVersion 29 buildToolsVersion "29
每当我使用 ionic 时 platform add [platformname]它给了我这个错误 Error: spawn EACCES at exports._errnoException (ut
我无法使用命令 yarn install 启动我的项目。获取错误: error /Users/lera/Desktop/beam-web/node_modules/sharp: Failed to a
我通常在 c9 上编码,我试图在本地环境中工作,我正在尝试一个非常愚蠢的应用程序,但我收到错误。 应用程序: //APP IMPORTS var express = require('expre
这个问题已经有答案了: FileNotFoundException: /storage/emulated/0/Android (2 个回答) java.io.FileNotFoundException
我正在开发一个应用程序,我想在其中仅从 SD 卡中的互联网下载 PDF 文件。 我正在使用 android kitkat (4.4.4)。下载文件时出现错误提示 java.io.FileNotFoun
我已经通过 npm 升级了 cordova,并且我必须在 OS X 上通过 sudo 以 root 身份运行命令 现在,当我运行“cordova build android -verbose”时,我得
尽管我在 list 文件中添加了以下内容: 我仍然收到以下错误: 07-09 13:26:18.650: E/Trace(10542): error opening trace file: No
我是一名优秀的程序员,十分优秀!