齐河县城乡建设局官方网站,wordpress移动排版,网页qq登陆官网,做网站App价格多少需求 容器化部署rabbitmq服务
部署服务
找到如下官网信息版本
官网版本发布信息 这里看到最新版本是3.13版本#xff0c;这里在3.13中找一个版本下载容器镜像即可。
找到dockrhub.com中 找到3.13.2版本镜像。 容器服务安装此处省略
现在下载容器镜像需要配置容器代理
~#…需求 容器化部署rabbitmq服务
部署服务
找到如下官网信息版本
官网版本发布信息 这里看到最新版本是3.13版本这里在3.13中找一个版本下载容器镜像即可。
找到dockrhub.com中 找到3.13.2版本镜像。 容器服务安装此处省略
现在下载容器镜像需要配置容器代理
~# cat /etc/docker/daemon.json
{registry-mirrors: [https://hub.iyuu.cn,https://docker.1panel.live]
}下载rabbitmq镜像
docker pull rabbitmq:3.13.2-management
部署容器服务
docker run -d --hostname my-rabbit --name some-rabbit -e RABBITMQ_DEFAULT_USERuser -e RABBITMQ_DEFAULT_PASSpassword rabbitmq:3.13.2-management
查看容器状态容器异常退出查看容器日志
# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a739628b8375 rabbitmq:3.13.2-management docker-entrypoint.s… About an hour ago Exited (134) About an hour ago n# docker logs a73
Failed to create thread: Operation not permitted (1)
Aborted (core dumped)
这个报错是容器出现了权限问题部署容器的时候需要加root特权的这里加入参数docker时加上参数 --privilegedtrue privilegedtrue获得真正的root权限
删除这个异常退出的容器 重新部署 docker run -d -p 15672:15672 -p 5672:5672 --privilegedtrue --hostname my-rabbit --name some-rabbit -e RABBITMQ_DEFAULT_USERuser -e RABBITMQ_DEFAULT_PASSpassword rabbitmq:3.13.2-management
bda51306d6691788437c49f1a5284c84be85abf10653ac5eb8930283a969b6e8
:~# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
bda51306d669 rabbitmq:3.13.2-management docker-entrypoint.s… 2 seconds ago Up 1 second 4369/tcp, 5671/tcp, 0.0.0.0:5672-5672/tcp, :::5672-5672/tcp, 15671/tcp, 15691-15692/tcp, 25672/tcp, 0.0.0.0:15672-15672/tcp, :::15672-15672/tcp some-rabbit查看到容器服务已正常运行 无报错 验证及访问服务
访问 web端 用IP地址15672 账号密码 user/password 到这里 mq服务部署 配置无误。 rabbitmq配置LTS
这边配置LTS依然在容器环境下
以下代码在宿主机上运行
# 创建 CA 证书
# 创建一个 CA 密钥文件用于签发证书。
openssl genrsa -out ca_key.pem 4096# 使用 CA 密钥创建一个自签名的 CA 证书。
openssl req -new -x509 -days 3650 -key ca_key.pem -out ca_certificate.pem -subj /CUS/STCalifornia/LSan Francisco/OYourOrg/CNYourOrg CA# 创建服务器证书和密钥
# 创建一个服务器密钥文件。
openssl genrsa -out server_key.pem 4096# 使用服务器密钥创建一个证书请求。
openssl req -new -key server_key.pem -out server_csr.pem -subj /CUS/STCalifornia/LSan Francisco/OYourOrg/CNyourserver.example.com# 使用 CA 证书签发服务器证书。
openssl x509 -req -in server_csr.pem -CA ca_certificate.pem -CAkey ca_key.pem -CAcreateserial -out server_certificate.pem -days 365
确认所有证书文件都已正确生成
•ca_key.pemCA 密钥文件
•ca_certificate.pemCA 证书文件
•server_key.pem服务器密钥文件
•server_certificate.pem服务器证书文件 以下代码在宿主机运行
提前把配置文件从容器服务中取出来配置文件路径是/etc/rabbitmq/conf.d/10-defaults.conf
docker cp 容器名称:/etc/rabbitmq/conf.d/10-defaults.conf .
把配置文件获取到本地后开始编辑配置文件追加以下配置文件
listeners.ssl.default 5671ssl_options.cacertfile /etc/rabbitmq/ca_certificate.pem
ssl_options.certfile /etc/rabbitmq/server_certificate.pem
ssl_options.keyfile /etc/rabbitmq/server_key.pem
ssl_options.verify verify_peer
ssl_options.fail_if_no_peer_cert true注意 上面生成的ssl配置文件是在宿主机的路径下配置文件指定的路径是容器内的路径这里要注意替换配置文件路径。 这里需要提前给上面的配置文件和秘钥授权不然会有如下报错。
报错参考如下这里是因为秘钥文件在宿主机是因root创建的容器内是已rabbitmq用户运行的程序这里权限访问不到会报错路径找不到文件。
2024-09-14 07:05:01.73687800:00 [error] 0.156.0 ssl_options.keyfile invalid, file does not exist or cannot be read by the node
2024-09-14 07:05:01.74704500:00 [error] 0.156.0 Error preparing configuration in phase validation:
2024-09-14 07:05:01.74711100:00 [error] 0.156.0 - ssl_options.keyfile invalid, file does not exist or cannot be read by the node2024-09-14 07:05:01.74903700:00 [error] 0.156.0
2024-09-14 07:05:01.74903700:00 [error] 0.156.0 BOOT FAILED
2024-09-14 07:05:01.74903700:00 [error] 0.156.0
2024-09-14 07:05:01.74903700:00 [error] 0.156.0 Error during startup: {error,failed_to_prepare_configuration}
2024-09-14 07:05:01.74903700:00 [error] 0.156.0进入容器查看服务运行的用户容器内是用rabbitmq用户运行的程序 解决以上报错给文件授权
# 在配置文件和秘钥文件 的存储目录执行
chmod 777 * 把run命令 准备好一般建议放到sh文件中。注意秘钥文件路径 docker run -d --hostname my-rabbit --privilegedtrue --name some-rabbit -v /root/rabbitmq/10-defaults.conf:/etc/rabbitmq/conf.d/10-defaults.conf -v /root/rabbitmq/ca_certificate.pem:/etc/rabbitmq/ca_certificate.pem -v /root/rabbitmq/server_certificate.pem:/etc/rabbitmq/server_certificate.pem -v /root/rabbitmq/server_key.pem:/etc/rabbitmq/server_key.pem -e RABBITMQ_DEFAULT_USERuser -e RABBITMQ_DEFAULT_PASSpassword -p 5671:5671 -p 5672:5672 -p 15672:15672 rabbitmq:3.13.2-management查看容器日志信息
2024-09-14 08:05:32.13359300:00 [info] 0.669.0 Ready to start client connection listeners
2024-09-14 08:05:32.13505400:00 [info] 0.822.0 started TCP listener on [::]:5672
2024-09-14 08:05:32.13666500:00 [info] 0.842.0 started TLS (SSL) listener on [::]:5671completed with 6 plugins.
2024-09-14 08:05:32.20798800:00 [info] 0.669.0 Server startup complete; 6 plugins started.
2024-09-14 08:05:32.20798800:00 [info] 0.669.0 * rabbitmq_prometheus
2024-09-14 08:05:32.20798800:00 [info] 0.669.0 * rabbitmq_federation
2024-09-14 08:05:32.20798800:00 [info] 0.669.0 * rabbitmq_management
2024-09-14 08:05:32.20798800:00 [info] 0.669.0 * rabbitmq_management_agent
2024-09-14 08:05:32.20798800:00 [info] 0.669.0 * rabbitmq_web_dispatch
2024-09-14 08:05:32.20798800:00 [info] 0.669.0 * oauth2_client
2024-09-14 08:05:32.21810900:00 [info] 0.9.0 Time to start RabbitMQ: 5468 ms
2024-09-14 08:05:45.80017600:00 [info] 0.886.0 Waiting for Mnesia tables for 30000 ms, 9 retries left
2024-09-14 08:05:45.80032600:00 [info] 0.886.0 Successfully synced tables from a peer
2024-09-14 08:05:46.79445800:00 [info] 0.914.0 Waiting for Mnesia tables for 30000 ms, 9 retries left
2024-09-14 08:05:46.79459800:00 [info] 0.914.0 Successfully synced tables from a peer
2024-09-14 08:44:57.19173000:00 [notice] 0.1672.0 TLS server: In state hello at tls_record.erl:561 generated SERVER ALERT: Fatal - Unexpected Message
2024-09-14 08:44:57.19173000:00 [notice] 0.1672.0 - {unsupported_record_type,13}最重要的要搜索到以下两句话这个是可以证明TLS已启用状态了基本可以说是没有问题了。
2024-09-14 08:05:32.13505400:00 [info] 0.822.0 started TCP listener on [::]:5672
2024-09-14 08:05:32.13666500:00 [info] 0.842.0 started TLS (SSL) listener on [::]:5671参考官网链接 服务验证
这里访问 IP地址端口号 先测试一下 管理端是否可以访问账号密码是 user/password就是上面容器传进去的变量。这边可以访问到就证明MQ是没有明显报错的。 TLS验证
先在其它宿主机上telnet 5671 TLS的专用端口 是否可以通目前看到端口可以通基本无误可以联系研发进行 下一步程序连接TLS端口的测试和验证。
/rabbitmq# telnet 110.120.110.110 5671
Trying 110.120.110.110...
Connected to 110.120.110.110.
Escape character is ^].参考官网的配置文件