nginx开放mysql外网连接。nginx的stream 电脑版发表于:2021/12/6 18:19 nginx从1.9.0开始,新增加了一个stream模块,用来实现四层协议的转发、代理或者负载均衡等。比如在内网有一个mysql服务,想暴露到公网上去使用,就可以通过nginx代理的方式通过nginx来进行内网mysql的访问。 首页先要部署nginx,在编译时要加上 --with-stream 使其?持stream模块。 mysql以及oracle的端口可以不?暴露公?,可以用其他端口转发到数据库的端口。甚至如果用一台中间机器转发,mysql以及oracle所有机器的ip都可以不暴露到外网去。 **1、nginx安装完成后再nginx.conf?件中加?stream模块代码** ``` stream { upstream oracle { server ip:1521; } upstream mysql { server ip:3306; } server { listen 8088; proxy_pass oracle; proxy_connect_timeout 10s; proxy_timeout 10s; } server { listen 8096; ## 相当于用nginx所在服务器的8096端口,代替了 upstream mysql 那里配置的ip与3306端口,当然也可以是同一台机器中的内部转发 proxy_pass mysql; proxy_connect_timeout 10s; proxy_timeout 10s; } } ``` tn4>注意:stream和http是同级别的,不要放入http里面。 **2、加?完成后启动nginx,就可以?具访问相关数据库了** tn2>访问nginx所在机器的ip和配置的8096端口,输入账号密码,就可以转发mysql连接了。注意:不一定都是3306哦,看你转发配置的端口是多少