mysql-proxy代理机器讲析
admin
2023-05-03 01:22:00
0次

本文主要给大家介绍mysql-proxy代理机器讲析,希望可以给大家补充和更新些知识,如有其它问题需要了解的可以持续在行业资讯里面关注我的更新文章的。

一、使用场景介绍
mysql-proxy的机器属于代理机器也就是相当于白名单的审核机器,通过防火墙规则,限制允许那些IP访问本机的代理内网数据库的端口,
有点:保证内网的数据库不暴露在公网上,保证了数据库的安全。
缺点:一旦mysql-proxy代理云服务器挂掉了,就相当于应用都链接不上了数据库。同时如果太多的应用程序通过mysql-proxy链接内网数据库的话,mysql-proxy代理服务器必须也得保证足够的带宽,负责导致链接数据库特别的慢,或者链接不上数据库。

二、演示环境:
2台物理机器,系统都是CentOS release 6.8 (Final)
一台机器配置内外网卡:104.137.27.4  192.168.1.100 部署mysql-proxy 服务
一台机器配置外网卡:104.137.27.3 部署mysql服务,并登陆此机器数据库,授权一个账户允许104.137.27.4机器来链接此数据库

 grant all on mtoyydb.* to zytestuser01@'104.137.27.4' identified by 'dr3dfKj=DHee';

mysql> flush privileges

三、二进制安装mysql-proxy:
下载安装包:

mysql-proxy代理机器讲析

wget https://downloads.mysql.com/archives/get/file/mysql-proxy-0.8.5-linux-glibc2.3-x86-64bit.tar.gz
tar zxf mysql-proxy-0.8.5-linux-el6-x86-64bit -C /usr/local/
cd /usr/local/
mv mysql-proxy-0.8.5-linux-glibc2.3-x86-64bit  mysql-proxy
mkdir /usr/local/mysql-proxy/{conf,log} -p

定义下环境变量:

[root@book sysconfig]# tail -3 /etc/profile
LUA_PATH="/usr/local/mysql-proxy/share/doc/mysql-proxy/?.lua"
export LUA_PATH
export PATH=$PATH:/usr/local/mysql-proxy/bin

四、mysql-proxy 参数介绍:
Application Options:
4.1应用参数介绍:
mysql-proxy --help-all

mysql-proxy代理机器讲析

4.2mysql-proxy代理模块参数介绍

mysql-proxy代理机器讲析

4.3线上配置文件介绍:

[root@book mysql-proxy]# cat /usr/local/mysql-proxy/conf/mysql-proxy.conf 
[mysql-proxy]
user=www
daemon=true
keepalive=true
plugins=proxy,admin
###日志级别
log-level=info
log-file=/usr/local/mysql-proxy/log/mysql-proxy.log
###本机ip地址
proxy-address=104.137.27.4:9196

##backend主   注意addresses
proxy-backend-addresses=104.137.27.3:3306

##proxy的管理用户admin的IP和端口
admin-address=104.137.27.4:9197

###下面的三个参数必须设定,否则mysql-proxy服务启动不了的
admin-username=zykjadmin
admin-password=Zyjkwestos
###admin的lua脚本地址;
admin-lua-script=/usr/local/mysql-proxy/lib/mysql-proxy/lua/admin.lua

五、启动mysql-proxy

/usr/local/mysql-proxy/bin/mysql-proxy  --defaults-file=/usr/local/mysql-proxy/conf/mysql-proxy.conf

mysql-proxy代理机器讲析

登陆mysql-proxy管理账户,查看反向代理管理列表
[root@book ~]# mysql -uzykjadmin -pZyjkwestos -h204.137.27.4 --port=9197

Warning: Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.0.99-agent-admin

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MySQL [(none)]> SELECT * FROM backends;
+-------------+------------------+-------+------+------+-------------------+
| backend_ndx | address          | state | type | uuid | connected_clients |
+-------------+------------------+-------+------+------+-------------------+
|           1 | 104.137.27.3:3306 | up    | rw   | NULL |                 2 |
+-------------+------------------+-------+------+------+-------------------+
1 row in set (0.00 sec)

MySQL [(none)]> SELECT * FROM help;
+------------------------+------------------------------------+
| command                | description                        |
+------------------------+------------------------------------+
| SELECT * FROM help     | shows this help                    |
| SELECT * FROM backends | lists the backends and their state |
+------------------------+------------------------------------+
2 rows in set (0.00 sec)

MySQL [(none)]> 

六、通过sqlyog来登陆反向代理数据库

mysql-proxy代理机器讲析

登陆成功:
mysql-proxy代理机器讲析

七、MySQL-porxy代理服务器防火墙的配置策略:

[root@book sysconfig]# cat /etc/sysconfig/iptables
#Generated by iptables-save v1.4.7 on Thu Mar  2 14:32:03 2017
*filter
:INPUT ACCEPT [358:20023]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [2491:287941]
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 4567 -j ACCEPT
-A INPUT -p tcp -m multiport --dports 80,81,443 -m state --state NEW -j ACCEPT
-A INPUT -s 104.137.27.6/32 -p tcp -m tcp --dport 873 -m state --state NEW -j ACCEPT
-A INPUT -s 304.37.57.45/32 -p tcp -m multiport --dports 9196 -j ACCEPT
-A INPUT -s 204.17.47.245/32 -p tcp -m multiport --dports 21,10050,3306 -j ACCEPT
#-A INPUT -p tcp -m tcp --dport 9196 -j DROP
##-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 8 -m limit --limit 5/sec --limit-burst 10 -j ACCEPT
-A INPUT -j DROP
COMMIT
#Completed on Thu Mar  2 14:32:03 2017

7.1配置策略解释:

-```
A INPUT -p tcp -m tcp --dport 4567 -j ACCEPT
此处6029相当于sshd的登陆端口号

-A INPUT -p tcp -m multiport --dports 80,81,443 -m state --state NEW -j ACCEPT
放行80,81和443业务端口
-A INPUT -s 104.137.27.6/32 -p tcp -m tcp --dport 873 -m state --state NEW -j ACCEPT
允许特定的IP104.137.27.6到本地服务器上通过rsync拉取数据

-A INPUT -s 304.37.57.45/32 -p tcp -m multiport --dports 9196 -j ACCEPT
允许指定的IP304.37.57.45 来链接MySQL-proxy服务的9196端口,从而链接到内网的数据库

-A INPUT -s 204.17.47.245/32 -p tcp -m multiport --dports 21,10050,3306 -j ACCEPT  
解释:204.17.47.245 机器上部署-server,通过拨号登陆-server,然后在可以登陆ftp,登陆3306数据库服务

-A INPUT -p icmp -m icmp --icmp-type 8 -m limit --limit 5/sec --limit-burst 10 -j ACCEPT
解释:对ping做限制策略

-A INPUT -j DROP
解释:其他的客户端IP地址一律禁止访问本服务器上的服务的端口

到此处介绍完毕,据说ucloud的Udb就是采用这样的数据库的架构模式

看了以上关于mysql-proxy代理机器讲析,希望能给大家在实际运用中带来一定的帮助。本文由于篇幅有限,难免会有不足和需要补充的地方,如有需要更加专业的解答,可在官网联系我们的24小时售前售后,随时帮您解答问题的。



相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...