nginx下http转发和tcp转发的区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx下http转发和tcp转发的区别相关的知识,希望对你有一定的参考价值。

参考技术A 转发tcp的方式

使用Nginx转发TCP/UDP数据

编译安装Nginx

从1.9.0开始,nginx就支持对TCP的转发,而到了1.9.13时,UDP转发也支持了。提供此功能的模块为ngx_stream_core。不过Nginx默认没有开启此模块,所以需要手动安装

cd /usr/local/src
wget http://nginx.org/download/nginx-1.12.1.tar.gz
tar zxf nginx-1.12.1.tar.gz
cd nginx-1.12.1
./configure --prefix=/usr/local/nginx --with-stream
make && make install

配置Nginx

TCP转发

目标:通过3000端口访问本机Mysql(其中mysql使用yum安装,默认配置文件)

/usr/local/nginx/conf/nginx.conf配置如下:

user nobody;
worker_processes auto;
 
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
 
#pid logs/nginx.pid;
 
 
events {
use epoll;
worker_connections 1024;
}
 
 
stream {
  server {
  listen 3000;
  proxy_pass 127.0.0.1:3306;
 
  4# 也支持socket
  4# proxy_pass unix:/var/lib/mysql/mysql.socket;
  }
}

 

 

UDP转发

目标: 发送UDP数据到3000端口,3001端口可以接收

/usr/local/nginx/conf/nginx.conf配置如下:

user nobody;
worker_processes auto;
 
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
 
#pid logs/nginx.pid;
 
 
events {
use epoll;
worker_connections 1024;
}
 
 
stream {
  server {
  listen 3000 udp;
  proxy_pass 127.0.0.1:3001;
 
  }
}

 

以上是关于nginx下http转发和tcp转发的区别的主要内容,如果未能解决你的问题,请参考以下文章

Nginx Tcp端口转发(参考)

Nginx转发请求过程解析

阿里一面 —— HTTP中重定向和请求转发的区别?

Nginx配置TCP转发+http转发+keepalived高可用

TCP的请求代理与报文转发

nginx实现TCP转发