在不使用 Fauxton 的情况下更改 CouchDB bind_address

CouchDB change bind_address without using Fauxton

我想更新我的 CouchDB v3.1.0 实例的绑定地址(注意:安装在 Windows 10)。

我想使用网络UI (Fauxton)。

这是我正在做的事情:

  1. 正在文本编辑器中打开 C:\CouchDB\etc\local.ini
  2. [chhtpd] 部分中,我正在设置 bind_address = 0.0.0.0
    • 基于this answer
[chttpd]
;port = 5984
bind_address = 0.0.0.0
; Options for the MochiWeb HTTP server.
;server_options = [{backlog, 128}, {acceptor_pool_size, 16}]
; For more socket options, consult Erlang's module 'inet' man page.
;socket_options = [{sndbuf, 262144}, {nodelay, true}]
  1. 保存更改
  2. 正在通过 services.msc 重新启动 Apache CouchDB 服务
    • this answer
  3. 我发现 bind_address 的变化没有生效

C:\CouchDB\etc\local.d-admins.ini[chttpd] 部分似乎覆盖了我的值。

[chttpd]
bind_address = 127.0.0.1
port = 5984

我做错了什么?我需要更改 10-admins.ini 文件中的 bind_address 吗?

你是对的,你需要更改 etc\local.d-admins.ini 文件中的绑定地址。
根据 CouchDB documentation,文件 etc/local.d/*.ini 优先:

By default, CouchDB reads configuration files from the following locations, in the following order:

etc/default.ini
etc/default.d/*.ini
etc/local.ini
etc/local.d/*.ini

All paths are specified relative to the CouchDB installation directory: /opt/couchdb recommended on UNIX-like systems, C:\CouchDB recommended on Windows systems, and a combination of two directories on macOS: Applications/Apache CouchDB.app/Contents/Resources/couchdbx-core/etc for the default.ini and default.d directories, and /Users/youruser/Library/Application Support/CouchDB2/etc/couchdb for the local.ini and local.d directories.

Settings in successive documents override the settings in earlier entries. For example, setting the chttpd/bind_address parameter in local.ini would override any setting in default.ini.

您应该能够更改 bind_address 而无需使用 Web UI (Fauxton)。

获取节点成员信息以查看节点名称。

curl -X GET "http://localhost:5984/_membership" --user <username>

使用以下 cURL 请求更改 chttpd/bind_address 配置中的 bind_address

curl -X PUT -H 'Content-Type: application/json' http://localhost:5984/_node/<name@host>/_config/chttpd/bind_address -d '"0.0.0.0"' --user <username>