Nginx 端口转发实现!

题外话

如需转载文章,请保留文章出处(knight.blog.csdn.net)。因为我的很多文章一般是会进行更新的。也避免百度搜出来一大推相似的文章,却找不到原创博主。

端口转发的常见方式

  • 通过 Linux iptables实现
  • HAProxy 实现(常见)
  • 通过Nginx的代理实现
  • 等等(实现方式比较多,很多软件能支持)

背景

最老版本的Nginx是不支持端口转发的,稍微老一点的Nginx需要第三方软件支持。新版本的Nginx是支持端口转发的。我们采用的Nginx的版本如下:

$nginx -v
nginx version: nginx/1.16.1

安装Nginx

 ./configure  --prefix=/usr/local/nginx --conf-path=/etc/nginx/nginx.conf --with-file-aio --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_ssl_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_sub_module --with-http_v2_module --with-mail --with-mail_ssl_module --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -fPIC' --with-ld-opt='-Wl,-z,relro -Wl,-z,now -pie' --with-http_stub_status_module --with-stream --with-stream_ssl_module

端口转发配置实现

Nginx的TCP端口转发是通过 stream模块 实现的。

我们想要通过Nginx的端口转发功能实现,将Nginx的6033端口转发到某一个主机的mysql数据库端口3306上。Nginx的配置文件如下:

# 本文博客地址: https://blog.csdn.net/caidingnu/article/details/90739915
##
events
{
 use epoll;
 worker_connections 65535;
}
## 端口转发到mysql数据库
stream {
    proxy_timeout 30m;
    server {
        listen 10.19.193.223:6033;
        proxy_pass 10.19.2.198:3306;
}
}

 

 

你可能感兴趣的:(Nginx)