返回顶部
首页 > 资讯 > 数据库 >如何用 Nginx 代理 MySQL 连接,并限制可访问IP?
  • 233
分享到

如何用 Nginx 代理 MySQL 连接,并限制可访问IP?

nginxmysqltcp/ip 2023-10-08 21:10:33 233人浏览 泡泡鱼
摘要

1.前言 我们的生产环境基本上都部署在云服务器上,例如应用服务器、Mysql服务器等。如果mysql服务器直接暴露在公网,就会存在很大的风险,为了保证数据安全,Mysql服务器的端口是不对外开放的。 好巧不巧,线上业务遇到bug了,开发的小

1.前言

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

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

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

2.Nginx代理连接

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

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

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

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

1)stream

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

  • 作用域:main

  • 语法:stream {...}

示例:

 stream {     server {         ......     } }

2)server

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

  • 作用域:stream

  • 语法:server {...}

stream {     server {         ......     }     server {         ......     } }

3)listen

该指令定义虚拟主机server要监听的Socket的地址和端口。

  • 作用域:server

  • 语法:listen address:port;

示例:

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等客户端进行连接。

3.限制访问IP

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

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

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

1)allow

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

  • 作用域:stream, server

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

示例:

 # 允许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指令配合使用。

  • 作用域:stream, server

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

# 禁止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地址访问。

4.综合案例

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

stream  {     allow 192.168.110.100;     deny all;     server {         listen 3306;         proxy_pass 192.168.110.101:3306;     } }

来源地址:https://blog.csdn.net/2301_78526383/article/details/131968241

您可能感兴趣的文档:

--结束END--

本文标题: 如何用 Nginx 代理 MySQL 连接,并限制可访问IP?

本文链接: https://lsjlt.com/news/425676.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 如何用 Nginx 代理 MySQL 连接,并限制可访问IP?
    1.前言 我们的生产环境基本上都部署在云服务器上,例如应用服务器、MySQL服务器等。如果MySQL服务器直接暴露在公网,就会存在很大的风险,为了保证数据安全,MySQL服务器的端口是不对外开放的。 好巧不巧,线上业务遇到bug了,开发的小...
    99+
    2023-10-08
    nginx mysql tcp/ip
  • 如何用Nginx代理MySQL连接,并限制可访问IP?
    1.前言 我们的生产环境基本上都部署在云服务器上,例如应用服务器、MySQL服务器等。如果MySQL服务器直接暴露在公网,就会存在很大的风险,为了保证数据安全,MySQL服务器的端口是不对外开放的。 ...
    99+
    2023-09-01
    nginx mysql
  • Nginx如何限制IP访问只允许特定域名访问
    目录1、找到 nginx 的配置文件2、添加新的 server3、修改 server4、访问测试总结为了我们的服务器安全,我们需要禁止直接使用 IP 访问我们的服务器,我们可以借助 ...
    99+
    2024-04-02
  • Nginx怎么限制访问频率、下载速率和并发连接数
    这篇文章给大家分享的是有关Nginx怎么限制访问频率、下载速率和并发连接数的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、 限制访问频率、并发连接、下载速度用到的模块和指令概述ngx_http_limit_re...
    99+
    2023-06-16
  • 网站如何通过nginx设置黑/白名单IP限制及国家城市IP访问限制
    目录一、黑/白名单IP限制访问配置1、第一种方法:allow、deny2:第二种方法,ngx_http_geo_module3、ngx_http_geo_module 负载均衡(扩展...
    99+
    2024-04-02
  • MySQL中如何限制用户权限和访问控制
    在MySQL中,可以通过以下几种方法限制用户权限和访问控制: 使用GRANT语句授予或撤销用户权限。GRANT语句允许管理员为用...
    99+
    2024-03-06
    MySQL
  • MySQL数据库可以用任意ip连接访问的方法
    通过CMD命令行修改数据库表的一个字段的值,实现连接,访问。 第一步、找到MYSQL软件安装所在的bin目录; (1)cd\当前目录 (2)指定MYSQL安装的bin目录 (3)...
    99+
    2024-04-02
  • linux系统中如何配置Nginx 拒绝代理访问指定IP
    这篇文章主要介绍“linux系统中如何配置Nginx 拒绝代理访问指定IP”,在日常操作中,相信很多人在linux系统中如何配置Nginx 拒绝代理访问指定IP问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”l...
    99+
    2023-06-13
  • MySQL中如何处理并发访问和锁定机制
    在MySQL中,可以通过以下方式处理并发访问和使用锁定机制: 事务:可以使用事务来确保数据的一致性和完整性。通过使用BEGIN、...
    99+
    2024-04-09
    MySQL
  • 如何在MySQL中创建新用户并开启远程连接访问?
    下面由mysql教程给大家介绍MySQL创建新用户并开启远程连接访问的方法,希望对需要的朋友有所帮助!MySQL创建远程数据库新用户,开启远程连接访问每一个项目都有一个数据库,如果都用同一个MySQL用户来...
    99+
    2024-04-02
  • 如何在MySQL中设置用户权限和访问控制
    在MySQL中,要设置用户权限和访问控制,可以使用GRANT和REVOKE语句。以下是如何在MySQL中设置用户权限和访问控制的步骤...
    99+
    2024-04-09
    MySQL
  • 如何在RedHat Linux 6.8新增ftp用户限制目录和访问ip
    如何在RedHat Linux 6.8新增ftp用户限制目录和访问ip,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。导读在RedHat Linux 6.8新...
    99+
    2023-06-05
  • 云服务器部署项目用ip如何访问网络连接
    如果您正在使用云服务器,但是您还没有设置任何访问网络连接的选项,那么您可以尝试查看以下步骤来配置该选项: 检查服务提供商的网络和带宽配置。您可以使用SwitchyNet(http://www.witchynet.com/)来查找并配置您...
    99+
    2023-10-26
    服务器 项目 网络
  • Nagios如何进行用户权限管理和访问控制
    Nagios是一个开源的监控系统,它提供了一套用户权限管理和访问控制功能,可以帮助管理员精细地控制用户对监控系统的访问权限。下面是N...
    99+
    2024-03-15
    Nagios
  • 如何理解MySQL管理基础中的安全、访问控制和权限
    如何理解MySQL管理基础中的安全、访问控制和权限,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。MySQL权限系统确保所有的用...
    99+
    2024-04-02
  • 如何用访问代码进行产品描述的权限控制
     在企业的日常管理中,处于权限管理需要,可能需要实行代码化的管理,即操作人员只需要按照产品编码进行收发作业,只有研发人员才可以看到其详细描述,比如很多化工食品行业,考虑到用料保密的需要,都会有这一管理需求。Sage X3访问代码可...
    99+
    2023-06-05
  • 如何通过nginx代理实现外网访问内网mysql或oracle数据库
            项目开发部署中经常会遇到MySQL或Oracle数据库安装在内网,而我们的应用服务只能部署在外网,如果实现外网服务访问连接内网的数据库呢?本次介绍如何通过Nginx配置实现外网访问内网数据库。 1、前置机服务器       ...
    99+
    2023-08-31
    数据库 nginx mysql oracle nginx代理
  • 云服务器部署项目用ip如何访问网络连接设备
    下面是如何访问IP地址的一篇800字文章: 首先,我们需要确定需要访问的IP地址。这个IP地址通常是从一个特定的IP地址服务器获取的。我们可以使用网络上的一些工具或应用程序来获取IP地址,如Ping命令。 然后,我们需要确定我们需要使用...
    99+
    2023-10-27
    服务器 项目 设备
  • 如何在Prometheus中实现用户权限管理和访问控制
    在Prometheus中实现用户权限管理和访问控制可以通过以下步骤来实现: 使用基于OAuth2的认证服务:Prometheus...
    99+
    2024-03-04
    Prometheus
  • Cacti系统如何进行用户权限管理和访问控制
    Cacti系统提供了基本的用户权限管理和访问控制功能,可以通过以下步骤进行设置: 创建用户:在Cacti系统中,管理员可以创建新...
    99+
    2024-03-11
    Cacti
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作