github.com/cnotch/ipchub@v1.1.0/docs/config.md (about)

     1  ## 1. 配置文件(config.json)
     2  属性 | 说明 |  示例  
     3  -|-|-
     4  listen | 侦听地址,":1554" | 默认:":1554" |
     5  auth | 访问流媒体时,是否启用身份和权限验证 |默认:false |
     6  cache_gop | 是否缓存GOP,缓存GOP会提高打开速度|默认:false |
     7  hlsfragment | hls 分段大小(单位秒)| 默认:10 |
     8  hlspath | hls临时文件存储目录,不设置则在内存存储|默认:空字串,使用内存文件 |
     9  profile | 是否启动在线诊断|默认:false |
    10  tls | 安全连接配置 |如果需要http范围,设置该配置向 |
    11  routetable | 路由表提供者 | 默认:json provider|
    12  users | 用户提供者 |默认:json provider|
    13  log | 日志配置 | |
    14  
    15  ### 1.1 tls 配置
    16  属性 | 说明 |  示例  
    17  -|-|-
    18  listen | 安全连接侦听地址 |默认":443" |
    19  cert | 证书内容或文件 | |
    20  key | 私钥内容或文件 | |
    21  
    22  ### 1.2 routetable 配置
    23  属性 | 说明 |  示例  
    24  -|-|-
    25  provider | 路由表提供者名称 |默认"json" |
    26  config | 提供者配置 | |
    27  config.xxx | 提供者所需的配置名称和值 | |
    28  
    29  目前支持 json 和 memory 提供者,以json为例:
    30  ``` json
    31  	"routetable":{
    32  		"provider":"json",
    33  		"config":{
    34   			"file":"./cfg/routetable.json"
    35  		}
    36  	}
    37  ```
    38  需要其他路由表提供者,需自行开发。
    39  
    40  ### 1.3 users 配置
    41  属性 | 说明 |  示例  
    42  -|-|-
    43  provider | 用户安全提供者名称 |默认"json" |
    44  config | 提供者配置 | |
    45  config.xxx | 提供者所需的配置名称和值 | |
    46  
    47  目前支持 json 和 memory 提供者,以json为例:
    48  ``` json
    49  	"users":{
    50  		"provider":"json",
    51  		"config":{
    52   			"file":"./cfg/users.json"
    53  		}
    54      }
    55  ```
    56  需要其他用户安全提供者,需自行开发。
    57  
    58  ### 1.4 完整配置文件示例
    59  ``` json
    60  {
    61  	"listen": ":1554",
    62  	"auth": false,
    63  	"cache_gop": true,
    64  	"hlspath":"./",
    65  	"hlsfragment":10,
    66  	"profile": false,
    67  	"routetable":{
    68  		"provider":"json",
    69  		"config":{
    70   			"file":"./cfg/routetable.json"
    71  		}
    72  	},
    73  	"users":{
    74  		"provider":"json",
    75  		"config":{
    76   			"file":"./cfg/users.json"
    77  		}
    78  	},
    79  	"log": {
    80  		"level": "debug",
    81  		"tofile": false,
    82  		"filename": "./logs/ipchub.log",
    83  		"maxsize": 20,
    84  		"maxdays": 7,
    85  		"maxbackups": 14,
    86  		"compress": false
    87  	}
    88  }
    89  ```
    90  ## 2. 路由表配置文件
    91  默认位置在可执行文件同目录,默认名称:routetable.json。
    92  
    93  属性 | 说明 |  示例  
    94  -|-|-
    95  pattern | 本地路径模式字串 | 当以'/'结尾,表示一个以pattern开头的请求都路由到下面的url |
    96  url | 路由的目标地址,用户名和密码可以直接写在url中 | rtsp://admin:admin@localhost/live2 |
    97  keepalive | 是否保持连接;如果没有消费者是否继续保持连接,如果为false在5分钟后自动断开 | false/true |
    98  
    99  ### 2.1 pattern
   100  模式字串有两种形式:
   101  + 精确形式
   102  + 目录形式
   103  
   104  目录形式以'/'字符结束,表示以此pattern开始的流路径都将路由到它对应的url。它适合于多层组织结构的路由导航。
   105  ### 2.2 完整实例:
   106  ``` json
   107  [
   108  	{
   109          "pattern": "/entrance/A1",
   110          "url": "rtsp://admin:admin@localhost:5540/live2",
   111  		"keepalive": true
   112      },
   113      {
   114          "pattern": "/hr/",
   115          "url": "rtsp://admin:admin@localhost:8540/video",
   116  		"keepalive": false
   117  	}
   118  ]
   119  ```
   120  
   121  
   122  访问流媒体描述
   123  + rtsp://localhost:1554/entrance/A1
   124  
   125  将路由到 rtsp://admin:admin@localhost:5540/live2
   126  + rtsp://localhost:1554/hr/door
   127  
   128  将路由到 rtsp://admin:admin@localhost:8540/video/door
   129  
   130  ## 3. 用户配置文件
   131  默认位置在可执行文件同目录,默认名称:users.json。
   132  
   133  属性 | 说明 |  示例  
   134  -|-|-
   135  name | 用户名 | admin |
   136  password | 密码 |  |
   137  admin | 是否是管理员 | false/true |
   138  push | 推送权限 | /rooms/+/entrace |
   139  pull | 拉取权限 | * |
   140  
   141  ### 4.1 完整示例:
   142  ``` json
   143  [
   144      {
   145          "name":"admin",
   146          "password":"admin",
   147          "admin":true,
   148          "push":"*",
   149          "pull":"*"
   150      },
   151      {
   152          "name":"user1",
   153          "password":"user1",
   154          "push":"/rooms/+/entrance",
   155          "pull":"/test/*;/rooms/*"
   156      }
   157  ]
   158  ```
   159  
   160  ### 3.2 权限配置格式说明
   161  + `*` 0-n 段通配
   162  + `+` 表示可以一个路径端通配
   163  
   164  可以通过分号设置多个
   165  #### 3.2.1 例子1
   166  当权限设置为 /a
   167  + 路径 /a 通过授权
   168  + 路径 /a/b 不通过授权
   169  
   170  #### 3.2.2 例子2
   171  当权限设置为 /a/*
   172  + 路径 /a 通过授权
   173  + 路径 /a/b, /a/c, /a/b/c 都通过授权
   174  
   175  #### 3.2.3 例子3
   176  当权限设置为 /a/+/c/*
   177  + 路径 a/b/c, a/d/c, a/b/c/d, a/b/c/d/e 都通过授权
   178  + 路径 a/c 不通过授权