@@ -5,7 +5,6 @@ sidebar_position: 5
55
66
77
8-
98## open-im-server 源码集群部署指南
109
1110本指南将指导您在两台机器(A 和 B,内网 IP 分别为 ` IP_A ` 和 ` IP_B ` )上集群部署 ` open-im-server ` 和 ` nginx ` ,并在机器 A 上部署监控组件(Prometheus、Grafana、Alertmanager)。
@@ -193,6 +192,180 @@ mage start
193192- ` apiAddr ` : ` https://your_domain.com/api `
194193- ` wsAddr ` : ` wss://your_domain.com/msg_gateway `
195194
195+ ## Chat源码集群部署指南
196+
197+ 本部分将指导您在两台机器(A 和 B,内网 IP 分别为 ` IP_A ` 和 ` IP_B ` )上集群部署 ` chat ` 和 ` nginx ` ,。
198+ 此文档中假设您已部署 Redis 集群、MongoDB 分片集群及 Etcd 集群,具体地址如下:
199+
200+ - ** Redis 集群地址** : ` redisAddr1 ` , ` redisAddr2 ` , ` redisAddr3 `
201+ - ** MongoDB 集群地址** : ` mongoAddr1 ` , ` mongoAddr2 ` , ` mongoAddr3 `
202+ - ** Etcd 集群地址** : ` etcdAddr1 ` , ` etcdAddr2 ` , ` etcdAddr3 `
203+
204+ 本文假设以上组件都部署在三台机器上,实际上不限于三台,** 您可根据需求自行选择多台或者一台** 。
205+
206+ A 和 B 两台机器以及组件集群内网互通,且A、B两台机器都有外网IP。
207+
208+ ### 目录结构
209+
210+ 1 . [ 前提条件] ( #前提条件 )
211+ 2 . [ 克隆仓库] ( #1-克隆仓库 )
212+ 3 . [ 配置修改] ( #2-配置修改 )
213+ 4 . [ 配置 nginx] ( #3-配置-nginx )
214+ 5 . [ 启动服务] ( #5-启动服务 )
215+
216+ ### 前提条件
217+
218+ 确保以下组件已正确部署并运行:
219+
220+ - ** Redis 集群**
221+ - ** MongoDB 分片集群**
222+ - ** Etcd 集群**
223+ - ** MinIO 服务**
224+
225+ ### 1. 克隆仓库
226+
227+ 在两台机器(A 和 B)上分别执行以下命令以克隆 ` chat ` 仓库:
228+
229+ ``` bash
230+ git clone https://github.com/openimsdk/chat
231+ cd chat
232+ ```
233+
234+ ### 2. 配置修改
235+
236+ 在机器 A 和 B 上,按照以下步骤修改配置文件,确保各组件正确连接。所有地址字段均采用单行列表格式 ` address: [addr1, addr2, addr3] ` 。
237+
238+ #### 2.1 MongoDB 配置
239+
240+ 编辑 ` chat/config/mongodb.yml ` 文件,设置 ` address ` 字段为 MongoDB 集群地址列表:
241+
242+ ``` yaml
243+ address : [mongoAddr1, mongoAddr2, mongoAddr3]
244+ ` ` `
245+
246+ #### 2.2 Etcd 配置
247+
248+ 编辑 ` open-im-server/config/discovery.yml` 文件,设置 `etcd.address` 字段为 Etcd 集群地址列表:
249+
250+ ` ` ` yaml
251+ etcd:
252+ address: [etcdAddr1, etcdAddr2, etcdAddr3]
253+ ` ` `
254+
255+ # ### 2.3 Redis 配置
256+
257+ 编辑 `open-im-server/config/redis.yml` 文件,设置 `address` 字段为 Redis 集群地址列表,并启用集群模式:
258+
259+ ` ` ` yaml
260+ address: [redisAddr1, redisAddr2, redisAddr3]
261+ clusterMode: true
262+ ` ` `
263+
264+ # ## 3. 配置 nginx
265+
266+ 在机器 A 、B上部署 `nginx`,参考以下配置。请确保替换为您的实际域名、SSL 证书路径和 SSL 密钥路径。
267+
268+ > 🚀 **提示**: 确保替换成您的实际域名、SSL 证书路径和 SSL 密钥。
269+
270+ ` ` ` nginx
271+ events {
272+ worker_connections 1024;
273+ }
274+
275+ http {
276+ upstream chat_admin_api {
277+ # Chat Admin API (管理员模块api) 服务器地址,可根据部署情况指定多个
278+ server IP_A:10009;
279+ server IP_B:10009;
280+ }
281+
282+ upstream chat_chat_api {
283+ # Chat Chat API (chat服务模块) 服务器地址,可根据部署情况指定多个
284+ server IP_A:10008;
285+ server IP_B:10008;
286+ }
287+
288+ upstream chat_bot_api {
289+ # Chat Bot API (智能体模块) 服务器地址,可根据部署情况指定0个或多个
290+ server IP_A:10010;
291+ server IP_B:10010;
292+ }
293+
294+ server {
295+ listen 443 ssl;
296+ server_name your_chat_domain.com; # 替换为您的域名
297+
298+ ssl_certificate /usr/local/nginx/conf/ssl/your_domain_bundle.pem; # 替换为您的证书路径
299+ ssl_certificate_key /usr/local/nginx/conf/ssl/your_domain.key; # 替换为您的证书密钥路径
300+
301+ location ^~/chat_admin_api/ {
302+ proxy_http_version 1.1;
303+ proxy_set_header Upgrade $http_upgrade;
304+ proxy_set_header Connection "Upgrade";
305+ proxy_set_header X-Real-IP $remote_addr;
306+ proxy_set_header X-Forwarded-For $remote_addr;
307+ proxy_set_header X-Request-Api $scheme://$host/api;
308+ proxy_pass http://chat_admin_api/;
309+ }
310+
311+ location ^~/chat_chat_api/ {
312+ proxy_http_version 1.1;
313+ proxy_set_header Upgrade $http_upgrade;
314+ proxy_set_header Connection "Upgrade";
315+ proxy_set_header X-Real-IP $remote_addr;
316+ proxy_set_header X-Forwarded-For $remote_addr;
317+ proxy_set_header X-Request-Api $scheme://$host/api;
318+ proxy_pass http://chat_chat_api/;
319+ }
320+
321+ location ^~/chat_bot_api/ {
322+ proxy_http_version 1.1;
323+ proxy_set_header Upgrade $http_upgrade;
324+ proxy_set_header Connection "Upgrade";
325+ proxy_set_header X-Real-IP $remote_addr;
326+ proxy_set_header X-Forwarded-For $remote_addr;
327+ proxy_set_header X-Request-Api $scheme://$host/api;
328+ proxy_pass http://chat_bot_api/;
329+ }
330+ }
331+
332+ # 可选: HTTP 重定向到 HTTPS
333+ server {
334+ listen 80;
335+ server_name your_chat_domain.com; # 替换为您的域名
336+
337+ return 301 https://$host$request_uri;
338+ }
339+ }
340+ ` ` `
341+
342+ 将此配置添加到 `nginx` 的配置文件中, 并reload使配置生效:
343+
344+ # ## 4. 设置 DNS
345+
346+ 将您的域名 `your_chat_domain.com` 指向机器A、B的外网 IP 地址。
347+
348+ # ## 5. 启动服务
349+
350+ 在两台机器(A 和 B)的 `chat` 目录下执行以下命令以编译和启动服务:
351+
352+ 中国境内建议设置go代理
353+ ```
354+ $ go env -w GO111MODULE=on
355+ $ go env -w GOPROXY=https://goproxy.cn,direct
356+ ```
357+
358+ #### 5.1 编译
359+
360+ ```bash
361+ mage
362+ ```
363+
364+ #### 5.2 启动服务
365+
366+ ``` bash
367+ mage start
368+ ```
196369
197370
198371
0 commit comments