HAproxy 2.1.3源碼 編譯問題?
官網地址下載: https://www.haproxy.org
(百度搜出來詞條打不開http://www.haproxy.org/ ,需要使用 https)
wget https://www.haproxy.org/download/2.1/src/haproxy-2.1.3.tar.gz yum install gcc gcc-c++ openssl-devel libnl3-devel pcre-devel tar -xf haproxy-2.1.3.tar.gz -C /usr/local/haproxy
在進行源碼安裝編譯時:
官方給出參考編譯:
$ make clean $ make -j $(nproc) TARGET=linux-glibc \ USE_OPENSSL=1 USE_ZLIB=1 USE_LUA=1 USE_PCRE=1 USE_SYSTEMD=1 $ sudo make install
報錯?
...
src/namespace.o: In function `my_socketat':
/usr/local/haproxy/src/namespace.c:123: undefined reference to `setns'
/usr/local/haproxy/src/namespace.c:118: undefined reference to `setns'
collect2: ld returned 1 exit status
make: *** [haproxy] Error 1
跳過依賴重新編譯:
在 haproxy 源碼目錄
make -j $(nproc) TARGET=linux-glibc USE_NS= # USE_NS = 確實確實跳過了依賴於此的代碼 因為namespace.c中的部分不在該標志的后面。setns在內核2.6.15及更高版本中受支持,而6.6之后的CentOS / RHEL中存在2.6.32,但存在的glibc版本(2.12)不提供此功能。
跳過依賴重新編譯成功,生成 haproxy 執行文件

手動創建 haproxy.cfg 配置文件;
指向配置文件啟動:
啟動示例:
haproxy -D -f /etc/haproxy/haproxy.cfg
