野火IM App server nginx 反向代理 宝塔 部署

前言:

准备要用野火IM系统的或想充分了解这个系统是否满足业务的,非常建议通读野火IM的文档,也就半天时间。很多技术问题都能从论坛中关键字搜索找着案例。

此篇只整理记录部署im-server(主服务)、app-server(登录注册群头像等应用服务)。

因野火考虑国内政策、安全等问题,没有开放客户端中服务器地址的端口编辑,故部署im-server的服务器,80端口必须能够给到野火使用。

但手里只有一台服务器,正常都是部署N个服务,由nginx通过域名转发分流到不同的进程上,不可能为了野火把nginx和之前部署的服务都关掉。故而研究了如何通过nginx转发的方式,让野火共享80端口。

野火IM 文档icon-default.png?t=O83Ahttps://docs.wildfirechat.cn/野火IM 论坛icon-default.png?t=O83Ahttps://bbs.wildfirechat.cn/野火IM git码云icon-default.png?t=O83Ahttps://gitee.com/wfchat 

开始:

按照文档中:快速开始--服务器部署,IM服务部署、应用服务部署,分别将最新版本下载下来。直接解压到服务器目录。

c5490f8a69724d17a3a06e30b54bf345.png

配置:

无论是im-server还是app-server,都有自己的一套数据库,建议上线运行时,调整数据源为mysql,且是分开的两个库,两个服务在启动时,遇到新的数据库,会分别创建好需要的全套表结构。

im-server:

编辑配置文件:/distribution-server/config/wildfirechat.conf

主要修改下图中的两处,其它配置请仔细参考文档和配置文件中的注释。

 fd23b5ebc28542499bc7d9478a6fee1a.png

app-server

编辑配置文件:/app-server/config/application.properties(配置该server本身)

指定该server的port,以及调整数据源。

ef675797bd4c4f43b16266928b236722.png

编辑配置文件:/app-server/config/im.properties(配置该server与im-server的连接)

主要是前两个参数一定要配置正确,其它自行调整

ccc9b6a57e6848de8e576397aede5382.png

启动:

配置调整完后,

im-server通过 /distribution-server/bin/wildfirechat.sh 脚本文件启动im-server。

前台
sh wildfirechat.sh

后台
nohup sh ./wildfirechat.sh 2>&1 &

ps:编辑wildfirechat.sh调整jvm内存,影响im-server承载能力。

-------------------------------------------------------------------------------------------------------------------------

app-server通过java -jar的命令,执行/app-server下的jar包(例:app-0.67.jar)

前台
java -jar app-0.xx.jar

后台
nohup java -jar app-0.xx.jar 2>&1 &

 放行端口

1.nginx80端口

2.im-server运行于9090

3.im-server的tcp长链1883端口

4.app-server的9088端口

d1e188d29ebd4f8b8f04f397b6d5fbdf.png

 nginx转发

如前言所提到的,接下来是最关键的一步

012a9d4939cf4b0eacef938a40c2c4b7.png

4bc71d2a35bc4417b0c77bb7b111671f.png

0341029beb4a454ba0b71896f7f2bec3.png

修改反代的nginx配置,宝塔面板不让直接修改,可以到/www/server/panel/vhost/nginx目录下找到对应域名的conf文件修改

5d029a6ec61b492082c0f2a2e05be362.png

im-server

server {
    listen 80;
    
    listen 443 ssl http2 ;
    listen [::]:80;
    
    listen [::]:443 ssl http2 ;
    
    server_name im.xxx.com;
    index index.php index.html index.htm default.php default.htm default.html;
    root /www/wwwroot/im.xxx.com;
    
    #SSL证书……

    location ^~ / {
      proxy_pass http://127.0.0.1:9090;
      proxy_set_header Host $http_host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Real-Port $remote_port;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header X-Forwarded-Proto $scheme;
      proxy_set_header X-Forwarded-Host $host;
      proxy_set_header X-Forwarded-Port $server_port;
      proxy_set_header REMOTE-HOST $remote_addr;
  
      proxy_connect_timeout 60s;
      proxy_send_timeout 600s;
      proxy_read_timeout 600s;
      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection $connection_upgrade;
    }

    #其它配置……省略
}

app-server

server {
    listen 80;
    server_name im-app.xxx.com;
    rewrite ^(.*)$  https://im-app.xxx.com permanent;
}

server {
    listen 443 ssl;
    server_name im-app.xxx.com;
    root /www/wwwroot/im-app.xxx.com;
    index index.html index.htm;
    client_max_body_size 30m;
    #省略配置……

    location / {
        proxy_read_timeout 100s;
        proxy_pass http://127.0.0.1:9088;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

    # 可选的路径分流
    # location /app/ {
    #     proxy_pass http://127.0.0.1:9088/;
    # }
}

修改后,到nginx的主程序目录下/www/server/nginx/sbin

nginx -t #测试配置

nginx -s reload #重载配置

service nginx restart #重启nginx

使配置生效

验证:

浏览器输入: https://im.xxx.com/api/version

如下返回,表示im-server启动成功且可访问

335a4643ad744d13b62e6a13cb22a929.png

浏览器输入: https://im-app.xxx.com/

返回Ok,表示app-server启动成功

 a8019c900e734019ab7910c2b9a44ed0.png

最后:

客户端SDK填写对应的server地址即大功告成

以野火uniapp-demo为例

config.js文件中

45f2fc0f329c44b5a47c5811975e338a.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Tenk啊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值