场景:
要访问UAT环境,只能通过客户的电脑访问,很难使用,所以必须在自己的电脑上运行代码,通过客户的电脑中转访问UAT环境的数据库。
在nginx上转发。 配置如下:
流{
upstream云套接字{
hash $ remote _ addr一致性;
server 192.168.182.15533603306 weight=5max _ fails=3fail _ time out=30s;
}
服务器{
listen 3306; #数据库服务器的监听端口
proxy_connect_timeout 10s;
proxy_timeout 300s; #设置客户端和代理服务之间的超时时间,如果5分钟内没有操作,则自动断开连接。
proxy_pass cloudsocket;
}
}
重新启动。
通过访问nginx所在计算机上的ip和配置的3306端口,并输入帐户密码,可以传输mysql连接。
由于流和http处于同一级别,请注意不要放入http中。
原理查了一次,但不太清楚。 接下来有时间研究。
就一点点:
nginx从1.9.0开始,添加了用于实现4层协议传输、代理、负载平衡等的流模块。 例如,如果内联网有mysql服务,并且希望公开用于公共网络,则可以通过nginx代理通过nginx访问内联网mysql。