Check that the exact same *crypt text* for your [admins] users is
specified on all nodes. The exact same line should appear in all 3
.ini files.

Check that all nodes have the exact same [httpd] secret value in
their ini files.

Check that all nodes have the exact same [couchdb] uuid specified
in their ini files.

http://docs.couchdb.org/en/latest/setup/cluster.html has all of
this (new changes since 2.3.0 was released).



----- Original Message -----
> From: "Peter J Krawetzky" <krawetzk...@aetna.com>
> To: user@couchdb.apache.org
> Sent: Thursday, February 21, 2019 2:49:24 PM
> Subject: Cluster Configuration
> 
> So I successfully have a 3 node cluster set up which also includes
> using the SSL configuration so I can connection using port 6984.
> 
> I added a load balancer in front of the 3 cluster nodes using SSL
> (port 6984) and noticed I'm getting some weird results.
> 
>   *   the admin account is defined in the local.ini but when I
>   connect using the load balancer DNS some of the database are not
>   available to the admin account - says This database failed to load
>      *   When I connect to an individual node using SSL (port 6984)
>      the admin account work fine
>   *   when I logon using the load balancer DNS with a user that is in
>   the _users database and has rights to a database I cannot select
>   the database - says This database failed to load
>      *   Any database that does not have security is accessible
> 
> I can't figure out if it's something within the cluster node
> configuration or if it's the load balancer DNS I'm using.  FYI we
> use F5 as a load balancer.
> 
> Also does anyone have
> 
> Below is my local.ini file
> ; CouchDB Configuration Settings
> 
> ; Custom settings should be made in this file. They will override
> settings
> ; in default.ini, but unlike changes made to default.ini, this file
> won't be
> ; overwritten on server upgrade.
> 
> [couchdb]
> ;max_document_size = 4294967296 ; bytes
> ;os_process_timeout = 5000
> database_dir = /u01/couchdb
> uuid = 3f50bfb9faed229837b0911265b6bb27
> 
> [couch_peruser]
> ; If enabled, couch_peruser ensures that a private per-user database
> ; exists for each document in _users. These databases are writable
> only
> ; by the corresponding user. Databases are in the following form:
> ; userdb-{hex encoded username}
> ;enable = true
> ; If set to true and a user is deleted, the respective database gets
> ; deleted as well.
> ;delete_dbs = true
> ; Set a default q value for peruser-created databases that is
> different from
> ; cluster / q
> ;q = 1
> 
> [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 = [{recbuf, 262144}, {sndbuf, 262144}, {nodelay,
> true}]
> 
> [httpd]
> ; NOTE that this only configures the "backend" node-local port, not
> the
> ; "frontend" clustered port. You probably don't want to change
> anything in
> ; this section.
> ; Uncomment next line to trigger basic-auth popup on unauthorized
> requests.
> ;WWW-Authenticate = Basic realm="administrator"
> 
> ; Uncomment next line to set the configuration modification
> whitelist. Only
> ; whitelisted values may be changed via the /_config URLs. To allow
> the admin
> ; to change this value over HTTP, remember to include
> {httpd,config_whitelist}
> ; itself. Excluding it from the list would require editing this file
> to update
> ; the whitelist.
> ;config_whitelist = [{httpd,config_whitelist}, {log,level},
> {etc,etc}]
> enable_cors = true
> 
> [query_servers]
> ;nodejs = /usr/local/bin/couchjs-node
> /path/to/couchdb/share/server/main.js
> 
> [couch_httpd_auth]
> ; If you set this to true, you should also uncomment the
> WWW-Authenticate line
> ; above. If you don't configure a WWW-Authenticate header, CouchDB
> will send
> ; Basic realm="server" in order to prevent you getting logged out.
> ; require_valid_user = false
> secret = d75914a363aa5f8f28712eb2c1f280a0
> 
> [daemons]
> ; enable SSL support by uncommenting the following line and supply
> the PEM's below.
> ; the default ssl port CouchDB listens on is 6984
> httpsd = {chttpd, start_link, [https]}
> 
> [ssl]
> enable = true
> cert_file = /u01/instance_ssl_key/publickey.pem
> key_file = /u01/instance_ssl_key/privatekey.pem
> ;password = somepassword
> ; set to true to validate peer certificates
> ;verify_ssl_certificates = false
> ; Set to true to fail if the client does not send a certificate. Only
> used if verify_ssl_certificates is true.
> ;fail_if_no_peer_cert = false
> ; Path to file containing PEM encoded CA certificates (trusted
> ; certificates used for verifying a peer certificate). May be omitted
> if
> ; you do not want to verify the peer.
> cacert_file = /u01/instance_ssl_key/ca.pem
> ; The verification fun (optional) if not specified, the default
> ; verification fun will be used.
> ;verify_fun = {Module, VerifyFun}
> ; maximum peer certificate depth
> ;ssl_certificate_max_depth = 1
> ;
> ; Reject renegotiations that do not live up to RFC 5746.
> ;secure_renegotiate = true
> secure_renegotiate = undefined
> ; The cipher suites that should be supported.
> ; Can be specified in erlang format
> "{ecdhe_ecdsa,aes_128_cbc,sha256}"
> ; or in OpenSSL format "ECDHE-ECDSA-AES128-SHA256".
> ;ciphers = ["ECDHE-ECDSA-AES128-SHA256", "ECDHE-ECDSA-AES128-SHA"]
> ciphers = undefined
> ; The SSL/TLS versions to support
> ;tls_versions = [tlsv1, 'tlsv1.1', 'tlsv1.2']
> tls_versions = undefined
> 
> ; To enable Virtual Hosts in CouchDB, add a vhost = path directive.
> All requests to
> ; the Virual Host will be redirected to the path. In the example
> below all requests
> ; to http://example.com/ are redirected to /database.
> ; If you run CouchDB on a specific port, include the port number in
> the vhost:
> ; example.com:5984 = /database
> [vhosts]
> ;example.com = /database/
> 
> ; To create an admin account uncomment the '[admins]' section below
> and add a
> ; line in the format 'username = password'. When you next start
> CouchDB, it
> ; will change the password to a hash (so that your passwords don't
> linger
> ; around in plain-text files). You can add more admin accounts with
> more
> ; 'username = password' lines. Don't forget to restart CouchDB after
> ; changing this.
> [admins]
> ;admin = mysecretpassword
> admin = <encrypted-password>
> replicator = <encrypted-password>
> 
> [cors]
> origins = https://github.aetna.com
> credentials = true
> methods = GET, PUT, POST, HEAD, DELETE
> headers = accept, authorization, content-type, origin, referer
> 
> 
> Proprietary
> 
> This e-mail may contain confidential or privileged information. If
> you think you have received this e-mail in error, please advise the
> sender by reply e-mail and then delete this e-mail immediately.
> Thank you. Aetna
> 

Reply via email to