背景:
大部分公司的運維層面都會對數據庫做精細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