fiware - 使用 HTTPS 在 docker 上运行 Orion
问题描述
再次问候我(对不起),
我想将在 docker 中运行的 Orion 配置为在 HTTPS 上运行。我采取的步骤:
从中生成密钥和证书(localhost.key/localhost.crt)
- 运行cli命令
contextBroker -https -key /localhost.key -cert /localhost.crt
附加信息:
{
"orion" : {
"version" : "1.13.0-next",
"uptime" : "0 d, 0 h, 15 m, 56 s",
"git_hash" : "95ec3913f20682214891e92a5afbb0122293ffa2",
"compile_time" : "Thu Jun 14 11:03:03 UTC 2018",
"compiled_by" : "root",
"compiled_in" : "bfe336509e64",
"release_date" : "Thu Jun 14 11:03:03 UTC 2018",
"doc" : "https://fiware-orion.readthedocs.org/en/master/"
}
}
输入 cli 命令后的错误日志:
lvl=ERROR | corr=N/A | trans=N/A | from=N/A | srv=N/A | subsrv=N/A | comp=Orion | op=contextBroker.cpp[382]:pidFile | msg=PID-file '/tmp/contextBroker.pid' found. A broker seems to be running already
更多信息:
root 1 0.0 0.6 383308 13592 ? Ssl 08:31 0:00
/usr/bin/contextBroker -fg -multiservice -ngsiv1Autocast -dbhost mongo
root 184 0.0 0.0 9096 868 pts/0 S+ 08:54 0:00 grep --
color=auto contextBroker
问题:我的方法是否犯了错误,似乎使用我的 cli 命令我尝试创建另一个 cb 进程并得到这样的错误?
运行此命令时的更多信息:
/usr/bin/contextBroker -fg -multiservice -ngsiv1Autocast -dbhost mongo -https
-key /localhost.key -cert /localhost.cert
我收到此错误:
time=Friday 15 Jun 09:25:20 2018.271Z | lvl=FATAL | corr=N/A | trans=N/A |
from=N/A | srv=N/A | subsrv=N/A | comp=Orion | op=rest.cpp[1732]:restStart |
msg=Fatal Error (error starting REST interface)
我知道这个错误是什么意思,因为我看到你已经在多个帖子上回复了这个错误,有 2 个进程使用端口并且解决方案正在杀死一个。但是我只从上面的代码中看不到这样的过程。希望这些信息对您有所帮助。
谢谢。
更新 2 个错误:
找到 PID 文件“/tmp/contextBroker.pid”。经纪人似乎已经在运行
按照你的建议删除旧的 pid 解决了这个错误。然后我继续运行 cli 命令:
contextBroker -https -key /localhost.key -cert /localhost.crt
然后我检查了:
ps ax | grep contextBroker
输出:
1 ? Ssl 0:00 /usr/bin/contextBroker -fg -multiservice -ngsiv1Autocast -dbhost mongo
90 ? Ss 0:00 contextBroker -https -key /localhost.key -cert /localhost.crt
95 pts/0 S+ 0:00 grep --color=auto contextBroker
网络统计输出:
tcp 0 0 0.0.0.0:1026 0.0.0.0:* LISTEN
1/contextBroker
tcp6 0 0 :::1026 :::* LISTEN
1/contextBroker
有类似问题的人的解决方案。
mongo:
image: mongo:3.4
command: --nojournal
orion:
image: fiware/orion
volumes:
- /home/igor/Fiware/Orion/localhost.key:/localhost.key
- /home/igor/Fiware/Orion/localhost.pem:/localhost.pem
links:
- mongo
ports:
- "1026:1026"
command: -dbhost mongo -https -key /localhost.key -cert /localhost.pem
解决方案
让我们看看不同的错误:
找到 PID 文件“/tmp/contextBroker.pid”。经纪人似乎已经在运行
这可能是由于两个原因:
- 另一个 Context Broker 使用相同的 PID 文件在同一台机器上运行
- 另一个上下文代理正在运行,它以无序的方式停止(例如崩溃),因此它无法在停止之前删除 PID 文件
解决方案:
- 检查没有其他上下文代理在该机器上运行(例如
ps ax | grep contextBroker
)。如果有,杀了它。 - 删除
/tmp/contextBroker.pid
文件(如果存在)。
致命错误(启动 REST 接口时出错)
此错误通常是由于另一个进程使用与 Orion 相同的端口(默认值:1026)。检查没有其他进程正在使用它,例如使用netstat
. 这通常是由于之前已经启动了另一个 Orion 实例,但也可能是由于其他原因。
推荐阅读
- perl - 使用 perl 在数据流中将 UNIX 纪元时间转换为 ISO8601
- qt - Qml TreeView 只选择单元格而不是行
- postgresql - Postgres 函数将 regexp_matches SETOF 结果转换为 ARRAY
- javascript - 检查用户的浏览器是否不支持javascript
- html - 显示的CSS交替行顺序:表
- c - 结构的大小取决于联合所在的位置
- android - 在模块番石榴错误中发现重复的类 com.google.common
- laravel - 如何查看评级为 1、3 和 5 Laravel 查询的所有记录
- vue.js - 我们可以改变 v-data-table 中选择菜单的样式(颜色)吗,默认 class primary--text 应用于高亮和标签
- r - 对多个列表中的多个变量进行统计测试(小标题)