我们的生产环境基本上都部署在云服务器上,例如应用服务器、MySQL服务器等。如果MySQL服务器直接暴露在公网,就会存在很大的风险,为了保证数据安全,MySQL服务器的端口是不对外开放的。
成都创新互联公司自2013年创立以来,是专业互联网技术服务公司,拥有项目做网站、成都网站建设网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元西乌珠穆沁做网站,已为上家服务,为西乌珠穆沁各地企业和个人服务,联系电话:18982081108
好巧不巧,线上业务遇到bug了,开发的小伙伴需要远程连接MySQL来查看数据,那应该怎么办呢?
我们可以通过Nginx代理(“跳板机”)来进行连接。
要实现对连接的代理转发,我们需要一台服务器并安装Nginx,且与MySQL服务器处于一个内网之中,内网之间可以访问。
其次,我们需要用到ngx_stream_core_module模块,该模块不是默认构建的,我们需要在configure时添加--with-stream来进行构建。
添加过程可以参照【Nginx基本命令&不停机版本升级】一文进行,我们这里不再赘述。
既然要用到ngx_stream_core_module模块,首当其冲,是看看其提供的指令,我们才知道怎么来进行配置。
该指令定义了stream服务器。与http块平级,定义在main块中。
示例:
stream {
server {
......
}
}
该指令定义一个虚拟主机,与http块中的server类似。我们可以在stream块中定义多个server块。
stream {
server {
......
}
}
该指令定义虚拟主机server要监听的socket的地址和端口。另外,搜索公众号顶级架构师后台回复“算法”,获取一份惊喜礼包。
示例:
listen 127.0.0.1:3306;
listen *:3306;
# 效果与listen *:3306一样
listen 3306;
listen localhost:3306;
(4) 配置示例
MySQL服务器,端口3306(单机环境)
stream {
server {
listen 3306;
proxy_pass 192.168.110.101:3306;
}
}
MySQL服务器,端口3306(集群环境)
stream {
upstream mysql_socket {
server 192.168.110.101:3306;
}
server {
listen 3306;
proxy_pass mysql_socket;
}
}
此时,我们就可以通过例如Navicat等客户端进行连接。
实现了对连接的代理,所有人都可以通过访问Nginx来连接MySQL服务器,解决了外网无法连接的问题。
为了更进一步的缩小访问范围,保证数据安全,我们可以限制只有公司网络的IP地址可以通过Nginx进行连接。
Nginx提供了ngx_stream_access_module模块,其指令非常简单,仅包含allow和deny指令。
(1) allow
该指令设置指定的IP允许访问。可以和deny指令配合使用
示例:
# 允许192.168.110.1访问
allow 192.168.110.1;
# 允许192.168.110.1到192.168.255.254
allow 192.168.110.0/16;
# 允许192.168.110.1到192.168.110.254
allow 192.168.110.0/24;
# 允许所有的IP访问
allow all;
(2) deny
该指令设置指定的IP禁止访问。可以和allow指令配合使用。
# 禁止192.168.110.1访问
deny 192.168.110.1;
# 禁止192.168.110.1到192.168.255.254
deny 192.168.110.0/16;
# 禁止192.168.110.1到192.168.110.254
deny 192.168.110.0/24;
# 禁止所有的IP访问
deny all;
(3) 配置示例
禁止所有的IP访问,192.168.110.100除外。
allow 192.168.110.100;
deny all;
Tips:如果指定了allow,需要配合deny使用,否则就是允许所有的IP地址访问。
只允许192.168.110.100通过Nginx连接MySQL服务器。
stream {
allow 192.168.110.100;
deny all;
server {
listen 3306;
proxy_pass 192.168.110.101:3306;
}
}
网站栏目:如何用 Nginx 代理 MySQL 连接,并限制可访问 IP?
标题来源:http://www.shufengxianlan.com/qtweb/news25/545375.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联