一、nginx的TCP/UDP转发

  一)stream模块

  1.9.0版之后nginx开始具有TCP/UDP的代理转发功能, 但需要手动安装stream模块

  用nginx -V命令(注意V是大写, 可查询nginx已安装模块)查了一下, 我的nginx是1.16.0版本, 并且已经安装了stream模块(命令输出包含--with-stream)

 

  二)配置

  1、概述

  TCP转发的配置, 是TCP层面的, 它和HTTP是同一层级, 并不是HTTP的下层

  所以其配置项目要放在nginx的顶级配置文件(/etc/nginx/nginx.conf)的顶级块里面, 和顶级配置文件中的http块同属一个层级。注意不能放在conf.d文件夹下, 这个文件夹下的配置文件都在http块级以下

  在顶级配置文件(/etc/nginx/nginx.conf)中添加如下配置块

  TCP和UDP转发

  • 内容需要定义在 stream 模块中
  • ​upstream​​​、​​server​​​ 填写和​​http​​中一样
  • UDP 的​​listen​​​ 后边要写​​udp​
user  nginx;
worker_processes auto;

error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;


events {
worker_connections 1024;
}

stream {
upstream vaas_tcp {
server 10.10.xxx.134:5060 weight=1 max_fails=3 fail_timeout=10s;
server 10.10.xxx.135:5060 backup;
}
server {
listen 5060;
proxy_pass vaas_tcp;
}
server {
listen 5060 udp;/etc/nginx/mime.types;
default_type application/octet-stream;
……

  nginx -t  检查一下配置文件,

  nginx -s reload  重新加载配置, 即可! 作者:有AI野心的电工和码农 https://www.bilibili.com/read/cv14968525 出处:bilibili