网站首页 > 技术教程 正文
现阶段,对于一个互联网公司来讲,其生产环境基本上都是在云服务器上,例如常用的一些应用服务器、数据库服务器等等。但是在我们部署引用的时候,如果直接将数据库的链接暴露在公网上很明显不现实,存在很大的安全隐患。而一般情况下,数据库服务端口是不对外开放的。但是在生产环境出现问题之后,我们又需要通过数据库来查看问题。这个问题,一般的解决方案是使用VPN技术,或者是使用跳板机技术。下面我们就来看看如何使用Nginx来实现一个跳板机。
Nginx代理原理
既然要实现代理的请求转发,必不可少的就是需要一个Nginx服务器,并且要保证其与MySQL所在的服务器在同一个内网环境中,也就是说通过内网环境可以相互访问。
其次,需要我们去安装 ngx_stream_core_module模块 这个模块并不是默认构建的,而是需要我们在安装Nginx的时候通过 -with-stream 配置来进行构建。
Nginx的Stream模块主要是用来做四层的负载均衡,流量转发。它支持TCP和UDP流量的转发。相对于HTTP流量,TCP/UDP流量的负载均衡和处理更接近底层。 使用Nginx流代理可以极大的方便解决一些TCP/UDP流量管理的问题。
在这个模块安装好之后,有如下几个配置需要我们注意
stream
这个配置模块主要用来指定stream服务器的相关配置,是与HTTP模块平级的块。其定义在main模块中
stream {
server{
……
}
}
server
指定一个虚拟机,与http模块中的server功能类似,我们可以在stream中定义多个server如下所示。
stream {
server {
......
}
server {
......
}
}
listen
这个指令定义了虚拟机server所监听的socket的地址端口。
listen 127.0.0.1:3306;
listen *:3306;
# 效果与listen *:3306一样
listen 3306;
listen localhost:3306;
配置MySQL链接
以MySQL为例来进行配置,如果是在单机环境下则是通过如下的配置实现。
stream {
server {
listen 3306;
proxy_pass 192.168.110.101:3306;
}
}
如果是在集群的环境下我们可以通过如下的方式来进行配置。这个配置有点类似于我们通过Nginx配置反向代理的负载均衡的方式。
stream {
upstream mysql_socket {
server 192.168.110.101:3306;
}
server {
listen 3306;
proxy_pass mysql_socket;
}
}
完成上述配置之后,我们就可以通过MySQL的客户端工具来连接服务了。
对于IP访问的限制
配置完成之后,接下就需要对IP进行访问限制。为了保证安全Stream模块中还提供了如下的两条指令
- allow:允许访问的IP
- deny:禁止访问的IP
其配置如下。
# 允许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;
禁止访问的配置如下
# 禁止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;
我们可以通过如下的设置来限制IP的访问。
allow 192.168.110.100;
deny all;
这里需要注意这两个指令是相互配合使用,如果只设置其中的一个选项,则另一个配置选项就成了默认值。
总结
通过下面这个配置,我们就可以实现一个MySQL数据库连接配置设置,允许192.168.110.100访问并且只允许192.168.110.100访问。
stream {
allow 192.168.110.100;
deny all;
server {
listen 3306;
proxy_pass 192.168.110.101:3306;
}
}
猜你喜欢
- 2024-10-12 打造自动化DOS攻击防御系统:一键屏蔽恶意IP
- 2024-10-12 禁止使用搜索引擎怎么设置(30秒教会你5个小技巧)
- 2024-10-12 apache(nginx)下控制请求频率防IP恶意请求 「二版」
- 2024-10-12 限制IP某个时间段内访问的次数(限制ip怎么解决)
- 2024-10-12 怎么封攻击的IP地址(ip封禁是最简单和有效的防守方式)
- 2024-10-12 Nginx配置限流(nginx 限制流量)
- 2024-10-12 利用openresty+lua+redis 实现封杀频繁恶意访问IP地址
- 2024-10-12 企业网站维护教程:网站如何禁止国外IP访问?
- 2024-10-12 Linux下WEB中间件禁止IP访问配置方法
- 2024-10-12 Nginx IP屏蔽方法详解:从access模块到limit_req_zone指令
你 发表评论:
欢迎- 最近发表
-
- Win10 TH2正式版官方ESD映像转换ISO镜像方法详解
- 使用iso镜像升级到Windows 10的步骤
- macOS Ventura 13.2 (22D49) Boot ISO 原版可引导镜像
- 安利一个用ISO镜像文件制作引导U盘的的小工具RUFUS
- CentOS 7使用ISO镜像配置本地yum源
- 用于x86平台的安卓9.0 ISO镜像发布下载:通吃I/A/N、完全免费
- AlmaLinux 9.6发布:升级工具、初步支持IBM Power虚拟化技术
- Rufus写入工具简洁介绍与教程(写入模式)
- 新硬件也能安装使用了,Edge版Linux Mint 21.3镜像发布
- 开源工程师:Ubuntu应该抛弃32位ISO镜像
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)