Nginx服务器搭建
Linux服务器下操作:
下载nginx wget nginx.org/download/ng…
解压
$tar -xvf nginx-1.15.3.tar.gz
复制代码
下载nginx rtmp模块 wget codeload.github.com/arut/nginx-…
解压
$tar -xvf v1.2.1
复制代码
进入nginx目录
$cd nginx-1.15.3
复制代码
执行:
#--add-module 指向rtmp模块目录
./configure --prefix=./bin --add-module=../nginx-rtmp-module-1.2.1
复制代码
在这个过程中可能因为环境不同而出现不同错误,比如缺少pcre、openssl等,这时候就需要安装这些库。
blog.youkuaiyun.com/z920954494/…
执行完后会在 nginx目录下生成 MakeFile文件, cd nginx-1.15.3 后,执行
$make install
复制代码
生成 /bin 目录,查看bin目录下的 ./bin/conf/
这个nginx.conf 文件配置其实是不支持 RTMP服务的, 需要替换成nginx-rtmp-module-1.2.1下的nginx.conf 的文件,在此基础上稍作修改,bin目录下的 nginx.conf 做备份
$mv nginx.conf nginx.conf.bak
复制代码
拷贝./nginx-rtmp-module-1.2.1/test/nginx.conf 到 ./nginx-1.15.3/bin/conf 目录下
$cd nginx-rtmp-module-1.2.1/test
$cp nginx.conf /root/live/nginx-1.15.3/bin/conf/
复制代码
查看修改nginx.conf中路径相关选项:
$vim nginx.conf
复制代码
user root;
worker_processes 1;
error_log logs/error.log debug;
events {
worker_connections 1024;
}
rtmp {
server {
#注意端口的占用
listen 1935;
application myapp {
live on;
#丢弃闲置5秒的连接
drop_idle_publisher 5s;
}
}
}
http {
server {
#注意端口的占用
listen 8080;
location /stat {
rtmp_stat all;
rtmp_stat_stylesheet stat.xsl;
}
location /stat.xsl {
#修改为自己nginx-rtmp-module-1.2.1的路径
root /root/live/nginx-rtmp-module-1.2.1/;
}
location /control {
rtmp_control all;
}
location /rtmp-publisher {
#修改为自己nginx-rtmp-module-1.2.1的路径
root /root/live/nginx-rtmp-module-1.2.1/test;
}
location / {
#修改为自己nginx-rtmp-module-1.2.1的路径
root /root/live/nginx-rtmp-module-1.2.1/test/www;
}
}
}
复制代码
以上配置中查看端口是否占用:
$lsof -i:8080
$lsof -i:1935
复制代码
需要注意的是目录与端口是否被占用,比如我的8080端口被占用,我改为了8081,然后需要开放端口。
配置了iptables防火墙的翻下前面的资料,如果没安装的阿里云服务器可以进入阿里云控制台开放
然后点击配置规则
,在新页面点击添加安全组规则
,开放8081端口,然后确定,就可以了。
以上需要添加nginx指定的两个端口:我这里配置的1935、8080。配置完成后,就可以启动nginx了
到nginx根目录下执行 :
$./bin/sbin/nginx #启动服务
$./bin/sbin/nginx -s stop #停止服务
复制代码
在当前目录 执行 bin/sbin/nginx 即可启动
bin/sbin/nginx -s stop 停止
一定要在当前目录启动,因为上面的配置 error_log logs/error.log debug; 会去执行命令的目录下查找 logs。
如果error_log 改成一个绝对路径 那就没关系了。
nginx: [emerg] open() "/root/live/bin/logs/error.log" failed (2: No such file or directory)
复制代码
启动服务后打开浏览器 ,在浏览器中输入 :
【IP】:8081
能访问就表示配置完成了
之前在此遇到403 forbidden, 在 nginx.conf 下第一行添加 user root;问题解决
至此服务器配置完成。
测试推流
下载 推流软件 OBS,配置好相关设置,可自行百度
在来源里添加显示捕捉,然后点击 开始录制, 开始推流:
可在浏览器中看到多出来一条test的流数据,正是我推送的: