使用者必須在官網下載 Source Code 後,自行編譯。
我使用 Cygwin 進行編譯,
下載 Cygwin 安裝檔安裝,
安裝過程中,會讓使用者選擇要安裝的額外編譯環境套件,
例如: cmake、gcc-core、cygwin32-gcc-core 等
安裝好之後,Cygwin 安裝檔先不要刪除,
因為後續編譯過程如有缺少編譯環境需要的工具套件,
還是會需要用到它把工具套件安裝進來。
我使用的是 HAProxy 2.0.8 版,
若要使用其他版本可至官網下載。
將下載來的 source code tar 解壓縮並放置在 Cygwin 安裝目錄下的 home 目錄內。
路徑如:
C:\cygwin64\home\haproxy-2.0.8開啟 Cygwin64 Terminal,這是一個類 Linux 的環境,
可以使用一些 Linux 的指令,如: ls 。
切換目錄到 /home/haproxy-2.0.8
RYAN.CHEN@TWTY3NB ~ $ pwd /home/RYAN.CHEN RYAN.CHEN@TWTY3NB ~ $ cd .. RYAN.CHEN@TWTY3NB /home $ ls haproxy-2.0.8 haproxy-2.0.8.tar.gz RYAN.CHEN RYAN.CHEN@TWTY3NB /home $ cd haproxy-2.0.8
使用 make 指令開始編譯 HAProxy,我的電腦大概花了 十幾、二十分鐘才編譯好。
$ make TARGET=cygwin $ make install
編譯完成後,到 haproxy-2.0.8 目錄將 產生出來的 haproxy.exe 及 在 C:\cygwin64\bin\cygwin1.dll 複製出來,
新開一個目錄置放這兩個檔案。
在執行 haproxy 時,需要先建立一個 haproxy.cfg 配置 haproxy 運行的設定。
以下是一個簡單範例:
global defaults timeout connect 90s timeout client 90s timeout server 90s frontend dashboard bind *:80 mode http default_backend dashboard_back backend dashboard_back mode http server dashboard_node_1 10.13.15.10:18083 server dashboard_node_2 10.13.15.11:18083
但是使用這樣的預設值編譯出來的結果,
在配置 SSL 時,
啟動 HAProxy 會發生問題,
才知道沒有含 SSL 的模組被編譯進去。
使用指令查看 HAProxy 在編譯時,有什麼選項可以使用將選擇的套件編譯進去
$ make help
從顯示的說明,有四個套件是建議啟用:
USE_PCRE : enable use of libpcre for regex. Recommended.
USE_REGPARM : enable regparm optimization. Recommended on x86.
USE_STATIC_PCRE : enable static libpcre. Recommended.
USE_OPENSSL : enable use of OpenSSL. Recommended, but see below.
所以在使用 make 指令時,需要給它啟用這四個模組的參數:
$ make TARGET=cygwin USE_PCRE=1 USE_REGPARM=1 USE_STATIC_PCRE=1 USE_OPENSSL=1 $ make install然後,你會發現可能發生錯誤,大致是編譯環境缺少需要的工具套件,
所以這時候需要在使用 Cygwin 安裝軟體,將缺少的套件安裝進來。
我因為先前已經單獨安裝 Git 工具,而它內含了 openssl 工具,
所以我不需要在 Cygwin 在安裝 openssl,
過程中,一邊 try make 一邊補缺少的套件,
最後我安裝了如下的套件:
但仍無法安裝 USE_STATIC_PCRE ,
最後將其剔除,
$ make TARGET=cygwin USE_PCRE=1 USE_REGPARM=1 USE_OPENSSL=1 $ make install
另外,需要從 Cygwin 目錄中,增加複製 dll 供 HAProxy 執行檔使用:
cygcrypto-1.1.dll
cygpcre-1.dll
cygssl-1.1.dll
cygwin1.dll
cygz.dll
沒有留言:
張貼留言