公网环境部署

服务器规划

服务器 域名 备注
221.226.4.130 meeting.soyuan.com.cn

服务改用docker方式部署,后期测试完成改成k8s

端口规划

服务 端口 备注 目录
signaling 48031:1989 信令服务 信令服务 /opt/srs/signaling
signaling proxy 48032:443 信令服务代理 信令服务代理 /opt/srs/signaling
srs 48033:1935 rtmp服务
48034:1985 http api 服务
48035:443 https api 服务
48036:8080 http proxy 服务
48037:8090 https proxy 服务
48038:48038 rtc udp
会议服务 /opt/srs/srs
es 48039
kibana 48040

signaling 服务

docker-compose.yaml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
version: "3"
services:
signaling:
image: java:8
container_name: signaling
ports:
- 48031:9999
volumes:
- ./signaling-0.0.1-SNAPSHOT.jar:/app.jar
- /etc/localtime:/etc/localtime
- ./ffmpeg:/ffmpeg
environment:
- TZ=Asia/Shanghai
command: java -jar app.jar
singnalingproxy:
image: nginx
container_name: singnalingproxy
links:
- signaling
ports:
- 48032:443
environment:
- TZ=Asia/Shanghai
volumes:
- ./meeting.soyuan.com.cn.pem:/meeting.soyuan.com.cn.pem
- ./meeting.soyuan.com.cn.key:/meeting.soyuan.com.cn.key
- ./nginxsetting:/etc/nginx/conf.d
- /etc/localtime:/etc/localtime
- ./web:/web

.nginxsetting/ssl.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
server {
listen 443 ssl;
#填写绑定证书的域名
server_name meeting.soyuan.com.cn;
#证书文件名称
ssl_certificate /meeting.soyuan.com.cn.pem;
#私钥文件名称
ssl_certificate_key /meeting.soyuan.com.cn.key;
ssl_session_timeout 5m;
#请按照以下协议配置
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
#请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;


location /meeting {
proxy_pass http://signaling:9999;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
}

location / {
root /web;
index index.html index.htm;
}
}

启动服务

docker-compose up -d

srs服务

docker-compose.yaml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
version: "3"
services:
srs:
image: ossrs/srs:4
container_name: srs
volumes:
- ./srs.conf:/usr/local/srs/conf/docker.conf
- ./meeting.soyuan.com.cn.pem:/meeting.soyuan.com.cn.pem
- ./meeting.soyuan.com.cn.key:/meeting.soyuan.com.cn.key
- ./live:/usr/local/srs/objs/nginx/html/live
ports:
- 48033:1935
- 48034:1985
- 48035:443
- 48036:8080
- 48037:8090
- 48038:48038/udp
environment:
- "CANDIDATE=meeting.soyuan.com.cn"

docker版本配置文件要映射到 docker.conf

SRS on amd64 x86_64, conf:conf/docker.conf, limit:1000, writev:1024, encoding:little-endian, HZ:100

srs.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
listen              1935;
max_connections 1000;
daemon off;
# the log tank, console or file.
# if console, print log to console.
# if file, write log to file. requires srs_log_file if log to file.
# default: file.
srs_log_tank console;

stats {
# the index of device ip.
# we may retrieve more than one network device.
# default: 0
network 0;
# the device name to stat the disk iops.
# ignore the device of /proc/diskstats if not configed.
disk sda sdb xvda xvdb;
}

http_api {
enabled on;
listen 1985;
raw_api {
# whether enable the HTTP RAW API.
# default: off
enabled on;
# whether enable rpc reload.
# default: off
allow_reload on;
# whether enable rpc query.
# default: off
allow_query on;
# whether enable rpc update.
# default: off
allow_update on;
}
https {
enabled on;
listen 443;
key /meeting.soyuan.com.cn.key;
cert /meeting.soyuan.com.cn.pem;
}
}
http_server {
enabled on;
listen 8080;
https {
enabled on;
listen 8090;
key /meeting.soyuan.com.cn.key;
cert /meeting.soyuan.com.cn.pem;
}
}
rtc_server {
enabled on;
# Listen at udp://48038
listen 48038;
#
# The $CANDIDATE means fetch from env, if not configed, use * as default.
#
# The * means retrieving server IP automatically, from all network interfaces,
# @see https://github.com/ossrs/srs/issues/307#issuecomment-599028124
candidate $CANDIDATE;
}

# 默认的 vhost __defaultVhost__
vhost meeting.soyuan.com.cn {
# 低延迟模式
tcp_nodelay on;
min_latency on;
play {
gop_cache off;
queue_length 10;
mw_latency 100;
}

publish {
mr off;
}

# hls 播放
hls {
enabled off;
hls_path ./objs/nginx/html;
}
# 开启 flv 播放
http_remux {
enabled off;
mount [vhost]/[app]/[stream].flv;
}
rtc {
enabled on;
bframe discard;
# rtc 转 rtmp,为了录制视频
rtc_to_rtmp on;
}
dvr {
enabled on;
dvr_apply all;
dvr_plan session;
dvr_path ./objs/nginx/html/[app]/[stream].[timestamp].mp4;
time_jitter full;
}
}

启动服务

docker-compose up -d


公网环境部署
https://zhaops-hub.github.io/2021/11/02/srs/公网环境部署/
作者
赵培胜
发布于
2021年11月2日
许可协议