Nginx 四层代理mysql、nacos、redis等服务——筑梦之路

Nginx 七层和四层负载均衡——筑梦之路_nginx4层和7层负载均衡配置_筑梦之路的博客-CSDN博客

首先要明确的是mysql、nacos、redis等服务主要使用的是tcp协议,虽然也可以使用七层代理去暴露nacos服务,但仍然是有区别的。这里主要介绍这几种服务的代理配置,其他服务也可以作为参考。

代理mysql服务配置

stream {
   server {
      listen 3388;
      proxy_pass host:3306;
   }
}

 代理redis服务配置

stream {
   server {
      listen 6388;
      proxy_pass host:6379;
   }
}

代理nacos服务配置

stream {
   server {
        listen 8188;
        proxy_pass host:8848;
   }
}

为什么需要使用四层代理?

1.端口转义

通常看到3306就知道是mysql专用端口,通过转义,客户端只能看到nginx监听的端口,看不出来是代表什么程序和协议,当然也是一种浅层防护方式。

2.防护

内网访问通过内网ip和端口,公网访问通过nginx代理,如果公网访问有风险可以配置,可以基于limit_conn_module 和 limit_req_module模块实现限流和限制客户端连接。并且在极端情况下可以关停代理,断开公网访问,从而不影响mysql实例运行和内网访问。

3.动态负载

在客户端不感知的情况下可以动态替换代理的mysql实例,也可以在集群情况下实现请求负载和路由分发,从而提高服务的可用性。

4.屏蔽真实mysql服务器

通过 Nginx,可以屏蔽 MySQL 服务器的真实 IP 地址,防止攻击者利用暴力破解等方式攻击 MySQL 服务器。

猜你喜欢

转载自blog.csdn.net/qq_34777982/article/details/131300277
今日推荐