前段时间因为安全考虑需要mysql 做内网隔离,再需要的时候打开代理,通过外网来进行访问,同事推荐了haproxy,官网有些慢,这里通过一些文章可以正常的打开haproxy,这里纪录一下,希望能帮助到大家
1.下载
由于到官网下载需要,这里提供百度云链接。
链接: https://pan.baidu.com/s/1uaSJa3NHFiE1E6dk7iHMwQ 提取码: irz6
2.将haproxy-1.7.8.tar.gz拷贝至/opt目录下,解压缩:
tar zxvf haproxy-1.7.8.tar.gz
进入目录,编译成可执行文件。
将源代码解压之后,需要运行make来将HAProxy编译成为可执行文件。如果是在Linux2.6系统上面进行编译的话,需要设置TARGET=linux26以开启epoll支持,这也是为什么网上许多博客里面都是这么写的。对于其他的UNIX系统来说,直接采用TARGET=generic方式,本文进行安装的系统为CentOS7 ,内核3.10版本。
cd haproxy-1.7.8
make TARGET=generic
执行完毕之后,目录下出现haproxy的可执行文件。
配置环境变量
为方便使用,可以进行环境变量的配置。在/etc/profile中加入haproxy的路径:
export PATH=$PATH:/opt/haproxy-1.7.8/haproxy
最后执行source /etc/profile让此环境变量生效。
HAProxy配置文件说明
HAProxy配置文件通常分为三个部分,即global、defaults和listen。global为全局配置,defaults为默认配置,listen为应用组件配置。
global为全局配置部分,属于进程级别的配置,通常和使用的操作系统配置相关。
defaults配置项配置默认参数,会被应用组件继承,如果在应用组件中没有特别声明,将使用默认配置参数。
haproxy.cfg 配置
0.0.0.0:8001 是外网映射端口
192.168.0.122:3306 内网访问mysql 的ip 地址和端口
global
#日志输出配置,所有日志都记录在本机,通过local0输出
log 127.0.0.1 local0 info
#最大连接数
maxconn 1024
#以守护进程方式运行
daemon
defaults
#应用全局的日志配置
log global
mode http
#超时配置
timeout connect 5000
timeout client 5000
timeout server 5000
timeout check 2000
listen mysql
bind 0.0.0.0:8001
mode tcp
balance roundrobin
server mysql1 192.168.0.122:3306
这里需要说明的是,端口映射要考虑到各层的防火墙的影响,如果想要外网访问到,请把防火墙中的端口开启
启动命令: 这个是找下面安装包中的 haproxy 启动文件 和 cfg 配置文件,我这里为了方便启动,写到了sh 脚本里面 每次直接执行,会方便一点
/opt/haproxy-1.7.8/haproxy -f /opt/haproxy-1.7.8/haproxy.cfg
验证是否启动成功:
[root@localhost haproxy-1.7.8]# lsof -i:8888
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
haproxy 45031 root 3u IPv4 228341 0t0 TCP localhost.localdomain:ddi-tcp-1 (LISTEN)
然后就是通过外网访问mysql 能否访问就可以了
参考网址:https://blog.csdn.net/u014116780/article/details/96499029