前言:
目前我们对“nginx2个端口映射”大致比较关怀,小伙伴们都想要了解一些“nginx2个端口映射”的相关文章。那么小编同时在网上收集了一些关于“nginx2个端口映射””的相关资讯,希望朋友们能喜欢,各位老铁们一起来了解一下吧!前言
目前很多的企业将业务转移到云上,如果数据库服务器直接暴露在公网,存在被暴力破解攻击的风险,因为,云服务器上的mysql 3306端口基本不对外开放。但是安全的代价是维护起来比较麻烦,那有没有办法可以用的时候快速开放出来,用完再关掉呢。
方法有多种:
1、通过云控制台的安全组规则控制,用的时候开启,用完关闭;如下图,不过一般我们会建议大家将端口进行修改,避免直接将默认端口暴露在公网上。
2、通过Nginx转发,并在Linux服务器中通过防火墙控制nginx的端口,用完即时关闭。下面我们详细讲解如何实现。
一、Nginx的下载
可以到Nginx官网进行下载,
Linux下载方式
wget
如已经有安装,可通过以下脚本检查是否有安装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_modulemake && 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 --permanentfirewall-cmd --reload五、安全组策略中开启端口映射
此时通过你的云服务的外网IP或域名就可以访问到内网的MySQL的服务了,记得用完即时关闭nginx和端口映射。
扩展阅读
1、./configure 配置,是用来检测你的安装平台的目标特征的。比如它会检测你是不是有CC或GCC,并不是需要CC或GCC,它是个shell脚本。configure 脚本负责在使用的系统上准备好软件的构建环境。确保接下来的构建和安装过程所需要的依赖准备好,并且搞清楚使用这些依赖需要的东西。
2、make 构建,用来编译,它从Makefile中读取指令,然后编译。下载的源码包一般没有一个最终的 Makefile 文件,一般是一个模版文件 文件,然后 configure 根据系统的参数生成一个定制化的 Makefile 文件。这个过程会执行在 Makefile 文件中定义的一系列任务将软件源代码编译成可执行文件。
3、make install安装,它也从Makefile中读取指令,安装到指定的位置。make install 命令就是将可执行文件、第三方依赖包和文档复制到正确的路径。
标签: #nginx2个端口映射