wget http://download.redis.io/releases/redis-5.0.5.tar.gz
tar xzf redis-5.0.5.tar.gz
cd redis-5.0.5

make
make install

mkdir -p /var/redis/3099
mkdir /etc/redis
cp redis.conf /etc/redis/3099.conf

vi /etc/redis/3099.conf

-daemonize yes
-pidfile /var/run/redis_3099.pid
-port 3099
-dir /var/redis/3099
-requirepass 51VQUpv8noaV #设置密码
-注释bind 127.0.0.1,以侦听所有IP
cd utils
cp redis_init_script /etc/init.d/redis_3099

vi /etc/init.d/redis_3099

在第行(#Simple Redis...后面)插入:
# chkconfig: 2345 90 10
# description: Redis is a persistent key-value database
修改 #Provides: redis_端口号
修改:REDISPORT=3099
chkconfig redis_3099 on  #设置开机启动

开始运行或停止

/etc/init.d/redis_3099 start
/etc/init.d/redis_3099 stop

也可以用:

service redis_3099 start
service redis_3099 stop

测试:

./redis-cli -h 127.0.0.1 -p 3099
>auth 51VQUpv8noaV
>set hello world
>get hello

批量删除:

redis-cli -a 51VQUpv8noaV -p 3099 keys "Trans_*" | xargs redis-cli -a 51VQUpv8noaV -p 3099 del

查询:

redis-cli -a 51VQUpv8noaV -p 3099 keys "Trans_*"

清除所有:
登录

redis:redis-cli -h 127.0.0.1 -p 6379

查看所有key值:

keys *

删除指定索引的值:

del key

清空整个 Redis 服务器的数据:

flushall

清空当前库中的所有 key:

flushdb

最新包地址:

erlang    https://mirrors.tuna.tsinghua.edu.cn/epel/7/x86_64/Packages/e/
rabbitmq    https://www.rabbitmq.com/releases/rabbitmq-server

rpm -Uvh https://mirrors.tuna.tsinghua.edu.cn/epel/7/x86_64/Packages/e/epel-release-7-11.noarch.rpm
yum install erlang
wget https://www.rabbitmq.com/releases/rabbitmq-server/v3.6.15/rabbitmq-server-3.6.15-1.el7.noarch.rpm
yum install rabbitmq-server-3.6.15-1.el7.noarch.rpm

创建配置文件

vi /etc/rabbitmq/rabbitmq.config

[{rabbit, [{loopback_users, []}]}].

firewall-cmd --zone=public --add-port=5672/tcp --permanent
firewall-cmd --reload 

启动:

service rabbitmq-server start

查看状态:

systemctl status rabbitmq-server.service

日志:

journalctl -xe

或:

service rabbitmq-server status

其中 Logs 为日志文件地址

CentOS的目录大体上可分为四类:管理类、用户类、应用程序类、信息类文件目录。

管理类目录:
/boot linux 的内核及引导系统程序所需要的文件目录
/bin 存放标准 linux 的工具,在终端里输入ls,系统就系统将会到该目录查看是否存在该命令程序。
/sbin 大多是涉及系统管理的命令的存放,是超级权限用户root的可执行命令存放地,普通用户无权限执行这个目录下的命令
/var 这个目录的内容是经常变动的,用来存储经常被修改的文件,如日志、数据文件、邮箱等
/etc 主要存放系统配置方面的文件
/dev 主要存放与设备有关的文件
/mnt 这个目录一般是用于存放挂载储存设备的挂载目录的,比如有cdrom 等目录。可以参看/etc/fstab的定义

用户类目录:
/root 系统管理员目录
/home 主要存放个人数据

应用程序类目录:
/lib 该目录用来存放系统动态链接共享库,几乎所有的应用程序都会用到该目录下的共享库
/tmp 临时目录,有些linux会定期清理
/usr 存放一些不适合放在/bin 或 /etc 目录下的额外工具,如个人安装的程序或工具
/usr/local 主要存放那些手动安装的软件,
/usr/bin 用于存放程序
/usr/share 用于存放一些共享数据
/usr/lib 存放一些不能不能直接运行,但却是许多程序运行所必需的一些函数库文件
/opt 主要存放可选程序,直接删除程序不影响系统其设置。安装到/opt目录下的程序,它所有的数据、库文件等等都是放在同个目录下面

信息类目录:
/lost+found 在ext2或ext3文件系统中,当系统意外崩溃或机器意外关机,而产生一些文件碎片放在这里。但当突然停电、或者非正常关机后,有些文件就临时存放在这里。
/proc 操作系统运行时,进程信息及内核信息(比如cpu、硬盘分区、内存信息等)存放在这里

其他重要目录:
/etc/rc.d 放置开机和关机的脚本。
/etc/rc.d/init.d 放置启动脚本
/etc/xinetd.d 配置xinetd.conf可以配置启动其他额外服务。
/usr/include 一些distribution套件的头文件放置目录,安装程序时可能会用到。
/usr/lib* 套件的程序库
/usr/local 默认的软件安装目录。
/usr/share/doc 系统说明文件的放置目录
/usr/share/man 程序说明文件放置目录
/usr/src 内核源代码目录
/usr/X11R6 X的存放目录

先装 Java SDK, Tomcat, Maven

cd /usr
wget http://ftp.icm.edu.pl/pub/unix/graphics/GraphicsMagick/GraphicsMagick-LATEST.tar.gz
tar zxf GraphicsMagick-LATEST.tar.gz
rm -rf GraphicsMagick-LATEST.tar.gz
./configure
make
make install

cd /home
git clone https://github.com/langhsu/mblog
cd mblog/src/main/resources
#修改配置文件:application-mysql.yml
cd /home/mblog
#修改配置文件:pom.xml,将包类型改为 war
#sh build.sh
#sh run.sh start

#数据库
mysql -p8020 -uroot -p
create database db_mblog;
use db_mblog;
source /home/mblog/src/main/resources/scripts/schema.sql;
source /home/mblog/src/main/resources/scripts/migration/V3.2__update.sql;

java方式启动:java -jar target/mblog-latest.jar

cd target
mv mblog-latest.war ROOT.war
sh /usr/tomcat9/bin/shutdown.sh
rm -rf /usr/tomcat9/webapps/ROOT
mv ROOT.war /usr/tomcat9/webapps/
sh /usr/tomcat9/bin/startup.sh


vi /usr/tomcat9/conf/server.xml
cd /usr/tomcat9/webapps

1.安装需要的环境
yum install -y openssl-devel
yum install -y libevent2
yum install -y libevent-devel
yum install mysql-devel
yum install mysql-server

这里数据库使用mysql,也可以用其他数据库。
其中libevent2可能会安装失败,建议先下载下来然后传到服务器手动安装。

2.手动安装libevent2
官网地址:http://www.monkey.org/~provos/libevent/
1.下载最新的版本上传到/usr目录下并解压
wget https://github.com/libevent/libevent/releases/download/release-2.1.11-stable/libevent-2.1.11-stable.tar.gz
tar zxvf libevent-2.1.11-stable.tar.gz
rm -rf libevent-2.1.11-stable.tar.gz

2.进入解压后的目录
cd libevent-2.1.11-stable

3.安装gcc
yum install gcc

4.设置安装路径
./configure -prefix=/usr

5.编译、安装
make && make install

3.安装coturn
1.在/usr目录下下载coturn

git clone https://github.com/coturn/coturn

若没有安装git,执行yum install git安装git

2.安装
cd coturn
./configure
make && make install

查看是否安装成功(若显示了安装路径则表示安装成功)
which turnserver

4.签名证书
cert和pkey配置的自签名证书用Openssl命令生成:
openssl req -x509 -newkey rsa:2048 -keyout /etc/turn_server_pkey.pem -out /etc/turn_server_cert.pem -days 99999 -nodes

执行命令后需要填写一些信息,随意填写即可

5.设置用户名和密码
使用命令生成密码turnadmin -k -u <用户名> -r north.gov -p <密码>,执行命令后屏幕会打印加密后的密码,请记住这个密码
turnadmin -k -u tuoling -r north.gov -p eee333
0xcf2f076caf51774d114e8ed8ac21fb38

6.在/etc目录下新建turnuserdb.conf文件,将用户名和上一步生成的密码填写进去然后保存退出。可以多生成几个用户名和密码
vi /etc/turnuserdb.conf
tuoling:0xcf2f076caf51774d114e8ed8ac21fb38

5.修改turnserver.conf配置文件
正确配置
vi /usr/local/etc/turnserver.conf
其中listening-ip与relay-ip采用内网ip,external-ip是外网的ip。

listening-ip=0.0.0.0
listening-port=3478
tls-listening-port=5349
relay-ip=103.196.127.20
external-ip=103.196.127.20
relay-threads=50
lt-cred-mech
cert=/etc/turn_server_cert.pem
pkey=/etc/turn_server_pkey.pem
pidfile=/var/run/turnserver.pid
min-port=49152
max-port=65535
userdb=/etc/turnuserdb.conf
user=love:123456
cli-password=888999

6.运行coturn
执行命令运行coturn服务
turnserver -v -r 103.196.127.20:3478 -a -o -c /usr/local/etc/turnserver.conf

关闭命令:
执行 cat /var/run/turnserver.pid
找到进程后:kill

在浏览器输入
<外网ip>:3478,显示

表示启动成功,如果访问不了可能是服务器防火墙没有开启3478端口

7.开启防火墙端口

tcp和udp都要打开

firewall-cmd --permanent --add-port=3478/tcp
firewall-cmd --permanent --add-port=3478/udp

刷新防火墙

firewall-cmd --reload

查看当前开放的端口

firewall-cmd --list-port

如果还是不能访问,请考虑云服务的安全组策略是否同样开启了3478的tcp和udp端口。
8.网站检测穿透效果
访问:https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/
turn:103.196.127.20:3478
love
123456
点 Gather candidates 后,如果出现 rtp host、rtp srflx、rtp relay 3个不同IP则成功(分别对应本机内部、外部IP、服务器IP)