nginx四层转发,访问内网mysql数据库

发布时间:2022-06-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了nginx四层转发,访问内网mysql数据库脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

 nginx四层代理多用于端口代理,代理内网端口,如mysql 3306,ssh 22,redis 6607等

nginx四层转发,访问内网mysql数据库

 

 前言

目前很多的企业将业务转移到云上,如果数据库服务器直接暴露在公网,存在被暴露的风险,云服务器上的mysql 3306端口基本不对外开放

我们如果想通过外网直接访问mysql

可以使用nginx端口转发来实现

 步骤

一、未安装nginx的情况下(可参考:https://blog.csdn.net/whowhowhoisimportant/article/details/107500692)

1、首先安装nginx./configure --prefix=/usr/local/nginx --with-stream && make && make install这里必须要加上--with-stream ,四层转发主要是通过这个模块来实现的

2、这个配置要写在http外。nginx.conf配置如下:

#mysql
stream {
    upstream mysql {
    server 2.2.2.2:3306 weight=1 max_fails=3 fail_timeout=10s;
    }
 
    server {
        listen  3307;
        proxy_pass mysql;
        proxy_timeout=600s;
        proxy_connect_timeout=30s;
    }
 }
 
 
http {
    ...
)

3、重启nginx4、检查3307端口是否已经起来5、连接mysql

mysql -uroot -p123456 -h1.1.1.1.1 -P3307
内网mysql服务器要先授权2.2.2.2的内网ip地址
1.1.1.1是nginx的外网ip

二、已经有安装过nginx,并在使用想要再添加stream模块

方案A:共用nginx1、先使用nginx -V 查看之前的编译参数2、用之前的编译参数加上--with-stream./configure --prefix=/... --with-stream3、然后执行 make这里千万不要执行make install到这里,我们先备份之前的nginx启动文件cp /application/nginx/sbin/nginx(bak)然后拷贝编译目录下的cp ./objs/nginx /application/nginx/sbin/nginx这样就添加上了,然后使用nginx -V查看

方案B:不同路径再安装一个nginx1、需要注意编译的时候要带新nginx的安装路径,如:原来装/usr/local/nginx。现在再装一个:/home/nginx

2、编译./configure --prefix=/home/nginx --with-stream && make && make install

3、如果安装完没报错,在/home/nginx目录下没有生成sbin目录,那么找到/home/nginx/objs/nginx这个就是可执行文件

4、最后,附上小编常用的命令

1 创建软连接:ln -s /usr/local/nginx/objs/nginx /usr/bin/nginx
2 启动:/usr/local/nginx/objs/nginx -c /usr/local/nginx/conf/nginx.conf
3 测试: /usr/local/nginx/objs/nginx -t
4 重启:/usr/local/nginx/objs/nginx -s reload

原文链接:https://blog.csdn.net/whowhowhoisimportant/article/details/115352255

脚本宝典总结

以上是脚本宝典为你收集整理的nginx四层转发,访问内网mysql数据库全部内容,希望文章能够帮你解决nginx四层转发,访问内网mysql数据库所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:数据库