我在 ubuntu 14.04(64 位)上使用 arangodb 2.8.5
- 在配置文件中,endpoint = ssl://0.0.0.0:443
- 无法启动,日志中出现错误消息“FATAL failed 绑定(bind)到端点“ssl://0.0.0.0:443”。请检查是否有另一个 实例已在运行或检查您的端点配置。”
运行 netstat -lnpt。 ssh 仅使用端口 22
当使用 endpoint = ssl://0.0.0.0:8530 时,服务器启动并使用 ssl 绑定(bind)到端口 8530。管理网站可访问https://www.website.com:8530/.../
我希望无需额外的端口 8530 即可访问管理用户界面,即 https://www.website.com/ .这可以在早期版本中设置。我做错了什么或者这不再可能了?
小型应用程序,因此我尽量避免在前面运行另一个 Web 服务器以将请求转发给 Arango 应用程序。非常感谢您的指导。
问候, 安然
最佳答案
问题与 ArangoDB 将其 root 特权删除给指定用户一起出现
[server]
endpoint = ssl://0.0.0.0:443
uid=arangodb
ArangoDB 3.0 可能再次成为可能,但是目前您必须 choose one of the workarounds to allow non-root processes to bind lower ports :
- > authbind
- > Using the iptables REDIRECT target to redirect a low port to a high port (“nat”表还没有为 ip6tables 实现,iptables 的 IPv6 版本)
- SELinux 或 AppArmor
使用从 Linux 内核 2.6.24 开始可用的功能系统和
CAP_NET_BIND_SERVICE
功能:setcap 'cap_net_bind_service=+ep'/usr/sbin/arangod
此后任何时候 ArangoDB 都将获得
CAP_NET_BIND_SERVICE
能力。setcap
位于 debian 软件包libcap2-bin
中。有关这些功能的更多详细信息,请访问:
- > capabilities(7) man page .如果您要在生产环境中使用功能,请仔细阅读这篇文章。关于如何跨 exec() 调用继承功能,这里有一些非常棘手的细节。
- > setcap man page
- > "Bind ports below 1024 without root on GNU/Linux"
关于ssl - 无法将 arango 2.8.5 绑定(bind)到端点 ssl ://0. 0.0.0:443,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36073276/