nginx stream 流转发,可以转发rtmp、mysql访问流,转发rtmp、jdbc请求

wegt https://github.com/arut/nginx-rtmp-module/archive/master.zip

下载之后解压 unzip master.zip

安装nginx

wget http://nginx.org/download/nginx-1.8.1.tar.gz
tar -zxvf nginx-1.8.1.tar.gz
cd nginx-1.8.1

./configure --prefix=/usr/local/nginx --add-module=../nginx-rtmp-module --with-http_ssl_module
make && make install

  

平滑安装stream,不覆盖原来的nginx配置文件

此处nginx源码目录为:/usr/local/src/nginx-1.8.1,即为编译命令执行目录。

 
编译命令如下:
./configure --prefix=/usr/local/nginx --add-module=../nginx-rtmp-module --with-http_ssl_module --with-stream
此处之用make在当前目录下编译,不要make install不然会覆盖之前的安装
make
关闭nginx服务
cd /usr/local/nginx
./sbin/nginx -s stop
备份原有nginx二进制文件。
cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx-no-strem
 
复制新编译好的nginx二进制文件。从此处nginx源码目录为:/usr/local/nginx-1.8.1。即为编译命令执行目录。
cp ./objs/nginx /usr/local/nginx/sbin/nginx
启动测试
./sbin/nginx
stream{
  server{
     listen 8088;
     proxy_pass 127.0.0.1:9935; #推流服务
  }
  server{
     listen 8081;
     proxy_pass 127.0.0.1:3306; #数据库
  }

}

stream模块和http模块同级

如果不成功,检测网络和端口是否通。

代理完毕。

stream官方例子

stream段的配置要与http段在同级目录。此处引用的为官方nginx说明配置。
stream { upstream backend { hash $remote_addr consistent; server backend1.example.com:12345 weight=5; server 127.0.0.1:12345 max_fails=3 fail_timeout=30s; server unix:/tmp/backend3; } upstream dns { server 192.168.0.1:53535; server dns.example.com:53; } server { listen 12345; proxy_connect_timeout 1s; proxy_timeout 3s; proxy_pass backend; } server { listen 127.0.0.1:53 udp reuseport; proxy_timeout 20s; proxy_pass dns; } server { listen [::1]:12345; proxy_pass unix:/tmp/stream.socket; } }

  

 

  

原文地址:https://www.cnblogs.com/lalalazar/p/15704765.html