我正在尝试按照此处的 RabbitMQ 文档中的步骤使用 SSL 在 Windows 上进行集群。我注意到,在设置了这些步骤中定义的环境变量后,“rabbitmqctl status”命令开始失败。执行“rabbitmqctl status”时出现以下错误:
Error: unable to connect to node 'rabbit@server1': nodedown
我已经将 RabbitMQ 配置为使用 TLS 1.2 并验证它可以正常工作。我确保我的 Erlang 18 cookie 在机器上的用户目录 C:\users\me 和 C:\Windows 中是相同的,但错误仍然存在,并且正在阻止其他服务器与其集群。文档说 Windows SSL 集群设置“即将推出”......这是我迄今为止在 server1 上采取的步骤。我认为Erlang 想要路径中的正斜杠 - 这与 rabbit.config SSL 设置相匹配。
- 通过命令“type server\cert.pem server\key.pem > server\rabbit.pem”将我的 server\cert.pem 和 server\key.pem 的内容合并到 rabbit.pem
- 创建环境变量 ERL_SSL_PATH 并设置为:“C:/Program Files/erl7.0/lib/ssl-7.0/ebin”
- 创建环境变量 RABBITMQ_CTL_ERL_ARGS 并设置为: -pa "%ERL_SSL_PATH%" -proto_dist inet_tls -ssl_dist_opt server_certfile C:/OpenSSL-Win64/server/rabbit.pem -ssl_dist_opt server_secure_renegotiate true client_secure_renegotiate true
- 创建环境变量 RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS 并设置为与 RABBITMQ_CTL_ERL_ARGS 相同的值
- 将 C:\Windows.erlang.cookie 中的 erlang cookie 复制到我的本地用户配置文件目录。
- 使用 rabbitmq-service start 重启 rabbit
- 此时,在 server1 上,“rabbitmqctl status”不再起作用。尝试将 server2 加入 server1 会导致“节点关闭”错误。
编辑 1:我无法在文档中开始要求 Erlang 在 Windows 上报告其 SSL 目录以正确设置 ERL_SSL_PATH。Erlang 安装在我服务器上的 C:\Program Files\erl7.0 中。
编辑 2:使用 werl.exe(在 C:\Program Files\erl7.0\bin\werl.exe),我能够发出命令“Foo=io:format(code:lib_dir(ssl, ebin))。 " 并将路径报告为:c:/Program Files/erl7.0/lib/ssl-7.0/ebin。但是,这似乎不是这个问题的原因,因为这已经是我正在使用的。
谢谢,安迪