Nginx 配置TCP代理转发

Posted jeikerxiao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nginx 配置TCP代理转发相关的知识,希望对你有一定的参考价值。

nginx 配置TCP代理转发

使用Nginx 新版的 stream方式,实现TCP/UDP代理转发。

在Nginx安装了 stream 模块后。

修改nginx.conf

在主配置文件下 nginx.conf 增加 stream配置。

如 nginx home 为 /opt/software/nginx

cd /opt/software/nginx/conf

vim nginx.conf

增加如下配置

stream 

    log_format proxy '$remote_addr [$time_local] '
                 '$protocol $status $bytes_sent $bytes_received '
                 '$session_time "$upstream_addr" '
                 '"$upstream_bytes_sent" "$upstream_bytes_received" "$upstream_connect_time"';

    access_log /opt/software/nginx/logs/tcp-access.log proxy ;
    open_log_file_cache off;

	# 统一放置,方便管理
	include tcpConf/*.conf;


增加stream配置

创建tcp配置文件夹,方便以后统一管理配置文件:

cd /opt/software/nginx/conf

mkdir tcpConf

创建配置文件

cd tcpConf

vim tcp9004.conf

编辑如下:

upstream tcp9004 
    server 118.178.188.188:8992;


server 
    listen 9004;
    proxy_connect_timeout 8s;
    proxy_timeout 24h;
    proxy_pass tcp9004;


测试重启Nginx

测试Nginx

cd /opt/software/nginx

./sbin/nginx -t

没有问题之后

重启Nginx

./sbin/nginx -s reload

端口监听

使用tcpdump监听tcp数据

安装tcpdump

yum install -y tcpdump

查看网卡

ifconfig

监听对应网卡上的端口

tcpdump -n -v -i eth1 port 8992

以上是关于Nginx 配置TCP代理转发的主要内容,如果未能解决你的问题,请参考以下文章

Nginx 配置TCP代理

nginx1.9+做TCP代理(端口转发)

nginx tcp端口转发

【nginx】如何解决使用nginx作为反向代理端口耗尽问题?

手头没证书,如何给https做代理?NGINX TCP转发

Nginx代理tcp协议(mysql)