网站首页 > 博客文章 正文
前言
目前很多的企业将业务转移到云上,如果数据库服务器直接暴露在公网,存在被暴力破解攻击的风险,因为,云服务器上的mysql 3306端口基本不对外开放。但是安全的代价是维护起来比较麻烦,那有没有办法可以用的时候快速开放出来,用完再关掉呢。
方法有多种:
1、通过云控制台的安全组规则控制,用的时候开启,用完关闭;如下图,不过一般我们会建议大家将端口进行修改,避免直接将默认端口暴露在公网上。
2、通过Nginx转发,并在Linux服务器中通过防火墙控制nginx的端口,用完即时关闭。下面我们详细讲解如何实现。
一、Nginx的下载
可以到Nginx官网进行下载,https://nginx.org/en/download.html
Linux下载方式
wget https://nginx.org/download/nginx-1.26.1.tar.gz
如已经有安装,可通过以下脚本检查是否有安装stream 模块
# cd /usr/local/nginx/sbin/
# ./nginx -V
如下图所示,configure arguments参数中如果包括 --with-stream=dynamic 参数,证明安装的版本包括stream模块,如果不包括需要按照后续步骤重新安装
二、Nginx编译、安装
执行如下命令进行参数设置和编译安装
./configure --prefix=/usr/local/nginx-1.26.1 --with-stream=dynamic --with-http_ssl_module
make && make install
其中--prefix是指编译后的目录位置,--with-stream=dynamic是编译时要带有stream模块,同样--with-http_ssl_module也是编译时要具有SSL模块。
此时,在/usr/local/nginx-1.26.1路径下就已经有可运行的nginx程序了,查看modules下会有一个ngx_stream_module.so的文件,即本次讲解的主角stream模块。
三、如何用?
进入到conf目录,编辑index.conf文件,在第一行,加入如下配置
load_module /usr/local/nginx-1.26.1/modules/ngx_stream_module
在http代码块下方加入stream代码块,如用不到http可将该代码块删除。stream代码块如下所示:
stream{
log_format main [$time_local] '$remote_addr - ' '$status ' '"$upstream_addr" ';
access_log logs/stream_access.log main;
upstream MySQL{
server 192.168.0.120:3306;
}
server{
listen 3306;
proxy_pass MySQL;
}
}
保存代码执行./nginx -t检查配置文件是否有错误,如果test seccess,即可执行./nginx 命令启动。
此时系统就能够nginx服务转发3306端口到内网中192.168.0.120:3306MySQL服务器了,安全起见,大家尽量将lisen 3306中的3306端口修改为其它端口。
通过以下命令,可查看刚才配置的nginx服务是否有启动
netstat -anop | grep nginx
四、配置防火墙
通过以下命令添加防火墙入站规则,并刷新防火墙
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload
五、安全组策略中开启端口映射
此时通过你的云服务的外网IP或域名就可以访问到内网的MySQL的服务了,记得用完即时关闭nginx和端口映射。
扩展阅读
1、./configure 配置,是用来检测你的安装平台的目标特征的。比如它会检测你是不是有CC或GCC,并不是需要CC或GCC,它是个shell脚本。configure 脚本负责在使用的系统上准备好软件的构建环境。确保接下来的构建和安装过程所需要的依赖准备好,并且搞清楚使用这些依赖需要的东西。
2、make 构建,用来编译,它从Makefile中读取指令,然后编译。下载的源码包一般没有一个最终的 Makefile 文件,一般是一个模版文件 http://Makefile.in 文件,然后 configure 根据系统的参数生成一个定制化的 Makefile 文件。这个过程会执行在 Makefile 文件中定义的一系列任务将软件源代码编译成可执行文件。
3、make install安装,它也从Makefile中读取指令,安装到指定的位置。make install 命令就是将可执行文件、第三方依赖包和文档复制到正确的路径。
- 上一篇: 搭建nginx反向代理用作内网域名转发
- 下一篇: 基于Nginx搭建静态的Web资源服务器
猜你喜欢
- 2024-10-05 Nginx + FastCGI 程序(C/C++) 搭建高性能web service
- 2024-10-05 Docker使用Nginx制作静态文件服务器
- 2024-10-05 使用nginx将服务器升级为https(nginx代理服务器配置)
- 2024-10-05 vue项目打包后部署到nginx(vue打包 nginx)
- 2024-10-05 Nginx Windows详细安装部署教程(nginx安装及配置教程)
- 2024-10-05 Vue实战091:Vue项目部署到nginx服务器
- 2024-10-05 Zabbix4.0企业级搭建实战(1)LNMP之Nginx服务器编译安装
- 2024-10-05 Linux上安装Nginx服务器(linux安装nginx详细步骤)
- 2024-10-05 Nginx 整合 FastDFS 实现文件服务器
- 2024-10-05 Linux中如何简单快速安装nginx以及如何配置
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- ifneq (61)
- 字符串长度在线 (61)
- googlecloud (64)
- messagesource (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)