linux下打包wvp和ZLMediaKit的文章很多,这里不再叙述。
WVP后端可以先在idea开发工具中配置好参数,然后打包成jar文件,再用docker去跑服务,又或者使用命令直接运行
java -jar wvp.jar
WVP的前端则可以导出html后,放到nginx中运行
ZLMediaKit在编译完后,可以通过命令行运行
直接运行
./MediaServer
后台运行
nohup ./MediaServer
下面详细展开说一下注意事项
WVP前端
1、通过开发工具可以将web_src目录下的文件导出成html,放到指定的目录
例如这里放的目录位置是
/home/kwb/dist
2、 然后找到nginx所在的文件目录,找到配置文件nginx.conf
在里面添加配置,注意这个需要添加在http块下添加
server {
listen 8080;
# gzip config
gzip on;
gzip_min_length 1k;
gzip_comp_level 9;
gzip_types text/plain text/css text/javascript application/json application/javascript application/x-javascript application/xml;
gzip_vary on;
gzip_disable "MSIE [1-6]\.";
root /home/kwb/dist;
location / {
try_files $uri $uri/ /index.html;
}
location /api/ {
resolver 8.8.8.8;
proxy_pass http://192.168.3.111:18080;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
}
}
这里配置需要注意的地方有3个,其他参数可以不改
listen是监控的端口,这里跟前端config下的index.js里面的port参数一致
root配置前端放的位置
proxy_pass是后端接口的地址
3、在浏览器访问服务器的ip加端口,即可访问,如果成功,会跳到登录界面
http://192.168.3.111:8080
WVP后端
直接用java命令跑jar可以,但是不利于管理,所以这里介绍的是将后端打包成docker去跑
1、修改配置文件
因为docker是一个独立的容器,不能直接用服务器ip访问,所以在达成jar之前,需要修改sip.ip的参数,按照说明,使用0.0.0.0即可
# 作为28181服务器的配置
sip:
# [必须修改] 本机的IP,对应你的网卡,监听什么ip就是使用什么网卡,
# 如果要监听多张网卡,可以使用逗号分隔多个IP, 例如: 192.168.1.4,10.0.0.4
# 如果不明白,就使用0.0.0.0,大部分情况都是可以的
# 请不要使用127.0.0.1,任何包括localhost在内的域名都是不可以的。
ip: 0.0.0.0
# [可选] 28181服务监听的端口
port: 5060
2、将后端生成jar包,并通过java命令先测试jar是否能正常运行,确认无误后,添加到指定的目录,例如我这里放到的是/home/kwb/wvpdocker目录下
3、在同目录下创建Dockerfile,用于生成docker文件
vim Dockerfile
FROM openjdk:11
COPY wvp.jar /app/wvp.jar
EXPOSE 18080/tcp
EXPOSE 5060/tcp
EXPOSE 5060/udp
CMD ["java","-jar","/app/wvp.jar"]
from这里是构建的jdk版本,可以换成其他的版本,例如jdk8
copy是将wvp复制到docker镜像里面
expose的3个端口,是需要映射到外面供其他服务调用的,其中5060需要tcp和udp
cmd是运行docker镜像后在镜像内自动执行的命令
4、创建docker镜像,执行build命令后,会自动根据当前目录下的Dockerfile去处理
#-t后面跟的是镜像名,冒号后面的0.1是自定义的版本号,最后“.”不能少
docker build -t wvp:0.1 .
5、等待镜像创建,如果正常创建成功,会提示
然后通过命令查看镜像
docker images
6、启动容器
#多个映射的端口需要用多个-p,name后面跟的是服务名可以自定义,服务名后面的是对应的镜像名和版本号
docker run -d -it -p 5060:5060 -p 5060:5060/udp -p 18080:18080 --name wvp wvp:0.1
在命令启动容器后,可能不会自动运行,那么就需要再次启动,可以通过命令确认,这个命令只会显示已在运行的docker服务
docker ps
如果没有看到wvp服务,那就表示没有启动,这时候就需要查看docker容器
docker ps -a
如果没有启动,status会是Exited状态,因为我这里是已经正常启动,所以是up状态。而且会看到映射端口的参数已经自动加上
最后启动容器
#docker start 容器id
docker start xxxxx
如果要确认服务是否正常,可以通过查看日志
#docker logs -f 容器id,-f是持续输出的意思
docker logs -f xxxxx
ZLMediaKit服务
ZLMediaKit服务编译后,就会有可以直接运行的文件,直接执行即可
直接运行
./MediaServer
后台运行
nohup ./MediaServer
如果使用nohup命令后,没有指定日志的名字,那么会在同目录自动生成一个nohup.out的日志文件,这个文件会记录运行日志,如果占用的空间太大,可以自行手动删除