3.1. 配置简介¶
3.1.1. 配置文件¶
默认情况下,CouchDB按以下顺序从以下位置读取配置文件:
etc/default.ini
etc/default.d/*.ini
etc/local.ini
etc/local.d/*.ini
所有路径都是相对于CouchDB安装目录指定的: /opt/couchdb
建议在类UNIX系统上使用 C:\CouchDB
建议在Windows系统上使用,在MacOS上使用两个目录的组合: Applications/Apache CouchDB.app/Contents/Resources/couchdbx-core/etc
对于 default.ini
和 default.d
目录,并且其中之一 /Users/<your-user>/Library/Application Support/CouchDB2/etc/couchdb
或 /Users/<your-user>/Library/Preferences/couchdb2-local.ini
对于 local.ini
和 local.d
目录。
连续文档中的设置会覆盖以前条目中的设置。例如,设置 chttpd/bind_address
参数在 local.ini
会覆盖中的任何设置 default.ini
.
警告
这个 default.ini
文件可能在升级或重新安装期间被覆盖,因此应对 local.ini
文件 local.d
目录。
可以通过设置ERL_FLAGS环境变量来更改配置文件链:
export ERL_FLAGS="-couch_ini /path/to/my/default.ini /path/to/my/local.ini"
或者把 -couch_ini ..
直接在 etc/vm.args
file. Passing -couch_ini ..
启动时作为命令行参数 couchdb
与设置 ERL_FLAGS
环境变量。
警告
环境变量/命令行标志重写任何 -couch_ini
中指定的选项 etc/vm.args
文件。而且, BOTH 在这些选项中 完全地 覆盖CouchDB以避免在默认位置进行搜索。仅在必要时使用这些选项,并确保跟踪 etc/default.ini
,在将来的版本中可能会更改。
如果需要使用不同的 vm.args
或 sys.config
例如,在CouchDB提供的文件的不同位置,或者您不想编辑原始文件,可以通过设置CouchDB_ARGS_FILE或CouchDB_SYSCONFIG_FILE环境变量来更改默认位置:
export COUCHDB_ARGS_FILE="/path/to/my/vm.args"
export COUCHDB_SYSCONFIG_FILE="/path/to/my/sys.config"
3.1.2. 参数名称和值¶
所有参数名都是 case-sensitive . 每个参数取五种类型之一的值: boolean, integer, string, tuple 和 proplist . 布尔值可以写成 true
或 false
.
值类型为的参数 tuple 或 proplist 遵循Erlang对样式和命名的要求。
3.1.3. 通过配置文件设置参数¶
设置某些参数的常用方法是编辑 local.ini
文件(上述位置说明)。
例如::
; This is a comment
[section]
param = value ; inline comments are allowed
每个配置文件行可能包含 section 定义, parameter 规范,空(仅限空格和换行符)或 commented 行。你可以设置 inline 评论 sections 或 parameters .
这个 section 定义属于某个特定CouchDB子系统的参数组。例如, httpd
节不仅包含HTTP服务器参数,还包含其他直接与之交互的参数。
这个 parameter 规范包含两部分除以 equal 签名 (=
):左边是参数名,右边是参数值。的前导空格和后空格 =
是提高配置可读性的可选选项。
注解
如果您想从 default.ini 在不修改该文件的情况下,可以在中重写 local.ini ,但没有任何值:
[compactions]
_default =
这可以理解为:“移除 _default 参数来自 compactions 如果以前设置过的话。
分号 (;
)表示注释的开始。这个字符后面的所有内容都被CouchDB忽略。
编辑配置文件后,应该重新启动CouchDB以应用任何更改。
3.1.4. 通过HTTP API设置参数¶
或者,可以通过 HTTP API . 此API允许动态更改CouchDB配置,而无需重新启动服务器:
curl -X PUT http://localhost:5984/_node/<name@host>/_config/uuids/algorithm -d '"random"'
旧参数的值在响应中返回:
"sequential"
您应该小心地通过httpapi更改配置,因为有可能使CouchDB无法访问,例如,通过更改 chttpd/bind_address
::
curl -X PUT http://localhost:5984/_node/<name@host>/_config/chttpd/bind_address -d '"10.10.0.128"'
如果您输入错误或指定的IP地址在您的网络中不可用,CouchDB将无法访问。解决此问题的唯一方法是远程进入服务器,更正配置文件,然后重新启动CouchDB。为了保护您自己免受此类事故的影响,您可以将 chttpd/config_whitelist
允许通过HTTP API进行更新的配置参数。设置此选项后,必须通过配置文件对非白名单参数进行进一步更改,并且在大多数情况下,还需要重新启动服务器才能生效。