nginx反向代理mysql,(通过授权IP代理,便于客户端GUI管理)
背景:
大部分公司的运维层面都会对数据库做精细IP授权限制。这种授权的IP可能是某台特定的Linux服务器,然而我们有时候想通过GUI工具管理数据库,更加直观而且便于调试。
本文目标是假设数据库服务器 db01.internal.com 授权IP 10.0.0.1访问,其他客户端无权限连接。10.0.0.1是一台linux主机,只有命令行,且无root权限。整个过程中不需要root权限。
安装:
安装nginx,及nginx的tcp反向代理模块:
nginx下载:http://nginx.org/download/nginx-1.7.2.tar.gz tcp代理插件:https://github.com/yaoweibin/nginx_tcp_proxy_module/archive/master.zip cd nginx-1.7.2
#在nginx目录下给源码打补丁 patch -p1 < /home/jfy/soft/nginx_tcp_proxy_module-master/tcp.patch
#添加tcp代理模块 ./configure --prefix=/usr/local/nginx --add-module=../nginx_tcp_proxy_module-master
#正常编译,安装
make && make install
配置:
nginx.conf
tcp { server { listen 3306; proxy_pass db01.internal.com:3306 ; so_keepalive on; tcp_nodelay on; } }
# tcp 位于配置文件最高层级(与http同级)
sbin/nginx 启动nginx
客户端连接10.0.0.1:3306 即可连接到实际的db01.internal.com
mysql -h10.0.0.1 -P3306