CouchDB
"Apache CouchDB 是一个面向文档的数据库,可以使用 JavaScript 以 MapReduce 方式进行查询和索引。" ― CouchDB 首页
安装
安装 couchdb 软件包。
用法
在启动应用程序之前,您需要按如下方式创建管理员帐户 [1]
/etc/couchdb/local.ini
[admins] admin = plain-password
首次启动 CouchDB 后,plain-password
将被替换为哈希版本。
接下来,启动/启用 couchdb.service
守护进程。
运行 curl http://127.0.0.1:5984/
测试服务是否正在运行。 请注意,要从另一个系统访问此 CouchDB 实例,您需要对其进行配置(见下文)。
使用 Fauxton 管理界面
您现在可以通过访问 https://127.0.0.1:5984/_utils 来访问 Fauxton 管理界面。
配置
您可以通过 Fauxton 或使用命令行来完成此操作。
要通过 Fauxton 设置数据库并创建管理员帐户,请访问 http://127.0.0.1:5984/_utils/#setup。
要从命令行设置单节点(其中 <adminuser>
和 <password>
需要替换)。
$ curl -X POST -H "Content-Type: application/json" http://127.0.0.1:5984/_cluster_setup -d '{"action": "enable_single_node", "bind_address":"127.0.0.1", "username": "<adminuser>", "password": "<password>"}'
此外,您可能需要查看 #Single_node_setup_&_Security。
bind_address
设置为 0.0.0.0
以从其他节点访问 CouchDB。请注意,您也可以在 /etc/couchdb/local.ini
中完成所有这些操作,以及更改默认端口、绑定地址、日志级别和其他有用的配置项。
/etc/couchdb/default.ini
,因为它会在每次 couchdb 更新时被覆盖,复制您想要更改的任何值并将它们放在 /etc/couchdb/local.ini
中。 此外,请务必在此文件更改后重启 couchdb.service
。如果您想在端口 80 上运行 CouchDB,您将必须以 root 身份运行守护进程,使用反向代理或设置 iptables 规则,例如
$ iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 5984
创建自签名证书
如果您想将 ssl 与自签名证书一起使用,您可以像这样创建一个
# cd /etc/couchdb # openssl req -new -x509 -nodes -newkey rsa:4096 -keyout server.key -out server.crt
然后取消注释 httpsd 并更新 [daemons]
和 [ssl]
部分中的路径
/etc/couchdb/local.ini
[daemons] httpsd = {couch_httpd, start_link, [https]} [ssl] cert_file = /etc/couchdb/server.crt key_file = /etc/couchdb/server.key
然后可以通过 SSL 在端口 6984 上通过 https://127.0.0.1:6984/_utils/ 访问 Fauxton。
单节点设置 & 安全性
如果您在单节点设置中运行 CouchDB,您可能希望通过不必要地绑定到公共网络接口来提高安全性。 实际上有两个进程这样做:epmd
和 beam.smp
。 第一个很容易解决,您可以简单地将以下 systemd drop-in 添加到 couchdb.service
/etc/systemd/system/couchdb.service.d/10-bind-locally.conf
[Service] Environment=ERL_EPMD_ADDRESS=127.0.0.1
第二个需要在 vm.args
中进行编辑
/etc/couchdb/vm.args
-kernel inet_dist_use_interface {127,0,0,1}
参见
- CouchDB 官方页面
- CouchDB 文档
- CouchDB - 权威指南[死链 2025-01-19 ⓘ]
- 创建只读数据库[死链 2025-01-19 ⓘ]