1.前言

我们的生产环境基本上都部署在云服务器上,例如应用服务器、MySQL服务器等。如果MySQL服务器直接暴露在公网,就会存在很大的风险,为了保证数据安全,MySQL服务器的端口是不对外开放的。

好巧不巧,线上业务遇到bug了,开发的小伙伴需要远程连接MySQL来查看数据,那应该怎么办呢?

我们可以通过Nginx代理(“跳板机”)来进行连接。

端口开放了为什么依然不通_端口开放检测_如何开放端口

2.Nginx代理连接

要实现对连接的代理转发,我们需要一台服务器并安装Nginx,且与MySQL服务器处于一个内网之中,内网之间可以访问。

其次,我们需要用到le模块,该模块不是默认构建的,我们需要在时添加–with-来进行构建。

添加过程可以参照【Nginx基本命令&不停机版本升级】一文进行,我们这里不再赘述。

既然要用到le模块,首当其冲,是看看其提供的指令,我们才知道怎么来进行配置。

(1)

该指令定义了服务器。与http块平级,定义在main块中。

作用域:main

语法: {…}

示例:

(2)

该指令定义一个虚拟主机,与http块中的类似。我们可以在块中定义多个块。

作用域:

语法: {…}

(3)

该指令定义虚拟主机要监听的的地址和端口。另外,搜索公众号顶 级架构师后台回复“算法”,获取一份惊喜礼包。

作用域:

语法: :port;

示例:

(4) 配置示例

MySQL服务器,端口3306(单机环境)

MySQL服务器,端口3306(集群环境)

此时,我们就可以通过例如等客户端进行连接。

3.限制访问IP

实现了对连接的代理,所有人都可以通过访问Nginx来连接MySQL服务器,解决了外网无法连接的问题。

为了更进一步的缩小访问范围,保证数据安全,我们可以限制只有公司网络的IP地址可以通过Nginx进行连接。

Nginx提供了dule模块,其指令非常简单,仅包含allow和deny指令。

(1) allow

该指令设置指定的IP允许访问。可以和deny指令配合使用

作用域:,

语法:allow | CIDR | unix: | all;

示例:

(2) deny

该指令设置指定的IP禁止访问。可以和allow指令配合使用。

作用域:,

语法:deny | CIDR | unix: | all;

(3) 配置示例

禁止所有的IP访问,192.168.110.100除外。

Tips:如果指定了allow,需要配合deny使用,否则就是允许所有的IP地址访问。

4.综合案例

只允许192.168.110.100通过Nginx连接MySQL服务器。

———END———
限 时 特 惠: 本站每日持续更新海量各大内部创业教程,永久会员只需99元,全站资源免费下载 点击查看详情
站 长 微 信: nanadh666