笔者用的是centos 7
默认的编译套件即可
- yum install cmake -y
- yum install gcc-c++ -y
- yum install gdb -y
- yum install gdb-gdbserver -y
GitHub - haproxy/haproxy at v1.0.0
使用haproxy的第一个版本,没有任何高级功能,方便入门
window环境和linux环境都下载haproxy源码
从官网下载clion
CLion: A Cross-Platform IDE for C and C++ by JetBrains
在linux开发环境上编译haproxy
可以先看下haproxy的编译命令
- CC = gcc
- LD = gcc
-
- COPTS = -O2 -g -DSTATTIME=0
- LIBS =
-
- # to compile under solaris, uncomment these two lines
- #COPTS = -O2 -fomit-frame-pointer -DSOLARIS
- #LIBS = -lnsl -lsocket
-
- CFLAGS = -Wall $(COPTS)
- LDFLAGS = -g
-
- all: haproxy
-
- haproxy: haproxy.o
- $(LD) $(LDFLAGS) -o $@ $^ $(LIBS)
-
- %.o: %.c
- $(CC) $(CFLAGS) -c -o $@ $<
-
- clean:
- rm -vf *.[oas] *~ core haproxy test nohup.out gmon.out
分析 Makefile
gcc 编译参数:
-O2 是告诉 gcc 要进行优化 O是优化(Optimize) 2是优化等级
-g 是使生成的执行文件可以被 gdb 调试
-DSTATTIME=0 表示预定义宏STATTIME为0(不定义), -D 是预定义宏的选项
-Wall 表示开启所有警告(Warning)
make
vim haproxy.cfg
listen http_proxy 0.0.0.0:3128
mode http
dispatch 127.0.0.1:8080
contimeout 3000
clitimeout 15000
srvtimeout 15000
maxconn 2000
retries 3listen health 0.0.0.0:3130
mode health
clitimeout 1500
srvtimeout 1500
maxconn 4
gdbserver :1234 ./haproxy -f haproxy.cfg

可以开始愉快的debug haproxy了