单机部署网络配置

只有服务器直接暴露公网IP不使用NG,或者服务器暴露公网IP且同时本机部署NG才能算单机部署,其他情况应该是多入口或者单入口的单节点情况。

1. 配置文件修改

修改IM服务配置文件,server.ip配置为授权地址。端口配置保持默认既可以。如果有Web客户端,需要打开websocket_port的配置。如果需要支持HTTPS,需要打开https_portsecure_websocket_port,并配置好JKS证书(包括jks_pathkey_store_passwordkey_manager_password)。

2. NG配置

如果不使用NG,请忽略掉本节内容。把IM服务配置文件中的local_port改成其他端口,比如8000。然后参考添加如下NG配置:

upstream imserver_cluster  {
    server 192.168.2.5:8000;
}

server {
    listen 80;
    server_name 授权域名

    root   html;
    index  index.html index.htm index.php;

    proxy_connect_timeout 10s;

    location /route {
        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_pass  http://imserver_cluster;
    }

    location /api {
        proxy_pass  http://imserver_cluster;
    }

    location /im {
        add_header Access-Control-Allow-Origin *;
        add_header Access-Control-Allow-Methods 'POST, OPTIONS';
        add_header Access-Control-Allow-Headers 'p,cid,DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';

        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_pass  http://imserver_cluster;
        if ($request_method = 'OPTIONS') {
            return 204;
        }
    }

    location /fs {
        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_pass  http://imserver_cluster;
    }

    location /robot {
        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_pass  http://imserver_cluster;
    }

    location /channel {
        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_pass  http://imserver_cluster;
    }
}

3. 域名解析

如果授权地址为域名,需要把授权地址域名解析到当前IM服务的公网地址。

4. 防火墙

防火墙放开80,1883的入访权限。如果有web客户端,需要放开8083的入访权限,如果支持https,需要另外放开443和8084的入访权限。

5. 验证

所有操作都在外网进行,检查是否可以从外网连入。

5.1. 检查HTTP

检查HTTP端口:浏览器打开http://授权地址/api/version 看看是否返回json.

5.2. 检查TCP

检查TCP端口:telnet 授权地址 1883 看看是否能够连上。

5.3. 检查Web

如果有web客户端,可以用http://docs.wildfirechat.cn/web/wstool/index.html这个连接检查一下websocket。如果是HTTP的站点,地址为ws://授权地址:8083;如果站点是HTTPS的,地址为wss://授权地址:8084

如果站点是HTTPS的,还需要验证HTTPS的路由是否正确,浏览器打开地址https://授权地址/api/version 看看是否返回json.

powered by GitbookFile Modify: 2024-12-16 20:25:27

results matching ""

    No results matching ""