1、操作系统
[root@xxx ~]# uname -a
Linux iZwz9d0wcbzzl41m47ou4yZ 3.10.0-1127.19.1.el7.x86_64 #1 SMP Tue Aug 25 17:23:54 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
[root@xxx ~]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
2、docker安装官方地址:
3、创建licode 安装脚本install_licode.sh
注意:脚本中的your_ip_address 改为实际的外网ip
#!/bin/sh
MIN_PORT=30000;
MAX_PORT=30050;
docker run --name licode -p 3000:3000 -p $MIN_PORT-$MAX_PORT:$MIN_PORT-$MAX_PORT/udp -p 3001:3001 -p 8080:8080 -e "MIN_PORT=$MIN_PORT" -e "MAX_PORT=$MAX_PORT" -e "PUBLIC_IP=your_ip_address" lynckia/licode
4、修改可执行权限
chmod 755 install_licode.sh
5、执行安装
./chmod 755 install_licode.sh
6、安装成功后
[root@xxx ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e9552a082510 lynckia/licode "./licode/extras/doc…" 5 hours ago Up About an hour 0.0.0.0:3000-3001->3000-3001/tcp, 0.0.0.0:8080->8080/tcp, 0.0.0.0:30000-30050->30000-30050/udp licode
说明:
a、把相关端口打开,端口有:
TCP 端口:8080 3000 3001
UDP 端口:30000/30050 UDP端口需要按照官方文档写。
b、如果是阿里云服务器需要到安全控制里面添加端口访问控制
7、查看licode源代码目录
[root@xxx ~]# docker inspect licode|grep MergedDir
"MergedDir": "/var/lib/docker/overlay2/b34eef08046f08883650c1f7b512f8a6f439cfe80d740b6376ea881d724cb411/merged",
8、部署nginx https 8000代理到3001端口
server {
listen 8000 ssl;
server_name plat.uzntech.cn;
server_name_in_redirect off;
ssl on;
root html;
index index.html index.htm;
ssl_certificate cert/test.pem;
ssl_certificate_key cert/test.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
access_log /data/log/nginx/access.8000.log;
location / {
proxy_buffer_size 64k;
proxy_buffers 4 1024k;
proxy_busy_buffers_size 2048k;
proxy_temp_file_write_size 1024m;
proxy_connect_timeout 300;
proxy_read_timeout 300;
proxy_send_timeout 300;
proxy_headers_hash_max_size 51200;
proxy_headers_hash_bucket_size 6400;
proxy_pass http://127.0.0.1:3001;
}
}
9、添加ssl证书到licode目录
cd /var/lib/docker/overlay2/b34eef08046f08883650c1f7b512f8a6f439cfe80d740b6376ea881d724cb411/merged/merged/opt/licode
拷贝证书到
cert/ 目录下,按照默认文件名称
[root@xxx cert]# ll
total 16
-rwxr-xr-x 1 root root 3655 Nov 27 14:53 cert.pem
-rwxr-xr-x 1 root root 969 Nov 4 16:27 cert.pem.bak
-rwxr-xr-x 1 root root 1675 Nov 27 14:53 key.pem
-rwxr-xr-x 1 root root 887 Nov 4 16:27 key.pem.bak
10、修改服务ssl方式启动
//你服务器的域名,不配置默认是ip方式,浏览器将不会让访问,报ERR_CERT_COMMON_NAME_INVALID错误
config.erizoController.hostname = 'your_domain_name'
config.erizoController.ssl = true; //default value: false
// This configuration is used by erizoController server to listen for connections
// Use true if erizoController listens in HTTPS.
config.erizoController.listen_ssl = true; //default value: false
11、重启licode
docker restart licode
12、查看日志
docker logs -f licode
13、访问测试地址:
https://your_out_net_ip:8000/
14、文件分享功能开启
const config = { audio: true,
video: !configFlags.onlyAudio,
data: true,
screen: true, //改为true
attributes: {} };
// If we want screen sharing we have to put our Chrome extension id.
// The default one only works in our Lynckia test servers.
// If we are not using chrome, the creation of the stream will fail regardless.
if (configFlags.screen) {
// config.extensionId = 'okeephmleflklcdebijnponpabbmmgeo'; //屏蔽这一行
}
Erizo.Logger.setLogLevel(Erizo.Logger.INFO);
路径下的 /licode/erizo_controller/erizoClient/extras/chrome-extension/manifest.json修改为如下:
key是为了固定住浏览器插件的id
{
"background": {
"persistent": true,
"scripts": [ "script.js" ]
},
"browser_action": {
"default_icon": "lynckia_icon_16.png"
},
"description": "Extension to allow screen sharing in Licode applications.",
"externally_connectable": {
"matches": [ "https://plat.gzhaochuan.com:8016/*"]
},
"icons": {
"128": "lynckia_icon_128.png",
"16": "lynckia_icon_16.png",
"48": "lynckia_icon_48.png"
},
"key": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAm33R+7NW447+thHox8b5IVmKohsiliZOSS+RltfO9rVF2+F6qP3H94fk/UgoyjC9rDtJFM81zRUWwHDzbH01VbQeOW7t/eP8/qsAZwXHbxSAEAO8EUvWGgTL50w3iyHAnLwhuCucV6qdbvQcamJBFt9Ohm18ooZfSg7phwMCZQ/8uwDu/DxjJsuKYseLPBXjkuQEzmQMGnZwxtXUDgsd9kU6/dj8YuRXcdqDykVTpdOBrdeHrJ6E4QRowHkYk++/lo2BaZLYpkSEy7uG7Tq+j/eYSrSnOfHKU0wU3zvk18vmA0VY/lCHreF9ApxpRV0RxaYugtyvM0EqvZiHvcB5iwIDAQAB",
"manifest_version": 2,
"minimum_chrome_version": "34",
"name": "Lynckia Screensharing",
"permissions": [ "desktopCapture" ],
"short_name": "Screen sharing for lynckia",
"update_url": "https://clients2.google.com/service/update2/crx",
"version": "0.0.0.1"
}