nginx反向代理TCP,取RTMP流
一、说明
nginx默认只支持HTTP反向代理,如果需要支持TCP反向代理需添加tcp代理模块:nginx_tcp_proxy_module。
二、原料
1.nginx_tcp_proxy_module
下载地址:
wget
https://github.com/yaoweibin/nginx_tcp_proxy_module/archive/master.zip
2.nginx源码
http://nginx.org/download/nginx-1.6.3.tar.gz
三、步骤
1.解压nginx
略
2.解压nginx_tcp_proxy_module
解压至/nginx-1.6.3/src/nginx_tcp_proxy_module
3.patch
cd /usr/wkdir/nginx-1.6.3
patch -p1 < src/nginx_tcp_proxy_module/tcp.patch
4.编译&安装
./configure --add-module=src/nginx_tcp_proxy_module-master
如果报错缺少库,则安装相应库,如openssl
ubuntu下解决办法:
apt-get install openssl
apt-get install libssl-dev
centos下解决办法:
yum -y install openssl openssl-devel
继续编译安装
make
make install
5.修改配置文件
在nginx.conf中添加,模块指令是TCP,它是不属于HTTP框架内的,所以和HTTP{}同级别
tcp {
upstream proxy_name {
# simple round-robin
server localhost:1935;#需要代理的端口
#check interval=3000 rise=2 fall=5timeout=1000;
#check interval=3000 rise=2 fall=5timeout=1000
#check interval=3000 rise=2 fall=5timeout=1000
#check_http_send "GET /HTTP/1.0\r\n\r\n";
#check_http_expect_alive http_2xxhttp_3xx;
}
server {
listen 8888; #代理8888端口
proxy_pass proxy_name;
}
}
6.测试
启动nginx
./usr/local/nginx/sbin/nginx
启动srs
./usr/local/srs/objs/srs -c conf/srs.conf
使用ffmpeg推rtmp流到srs服务器(端口1935),然后通过vlc或者其他方式到代理端口8888获取rtmp流.
自测试成功!