Debian
作為服務執行時如何將 HAProxy 與環境變數一起使用
我是 Linux 新手,正在嘗試使用環境變數配置 HAProxy。我正在執行
apt-get
根據https://haproxy.debian.net/#?distribution=Debian&release=jessie&version=1.5安裝的 Debian 8 (Jessie) 和 HAProxy 1.5.8沒有環境變數,配置效果很好。
我按照這個答案中的說明(設置環境變數
/etc/init.d/haproxy
)來讓環境變數工作,但仍然得到 503 - Service Unavailable 響應。然後我查看
/etc/init.d/haproxy
並認為這兩行可能會改變可用變數的範圍[ -f /etc/default/rcS ] && . /etc/default/rcS . /lib/lsb/init-functions
所以我把它們註釋掉了。
然後我可以使用啟動 HAProxy
sudo /etc/init.d/haproxy start
並且我的配置按預期工作,但是當我嘗試執行時,sudo service haproxy start
我仍然得到 503 - 服務不可用。在我看來,這個問題有我正在尋找的答案,但我無法將答案從那裡翻譯到我的域。
這是我使用環境變數的 haproxy.cfg 文件的一部分:
backend backend1 server EnvVar ${SERVER_IP}:86 maxconn 512
我還在這裡查看了其他一些問題,但沒有找到解決問題的方法。
當 haproxy 作為服務執行時,如何設置環境變數以便 haproxy 可以讀取它?
我終於弄明白了。
/lib/systemd/system/haproxy.service
裡面有這樣一行EnvironmentFile=-/etc/default/haproxy
我看了看,
/etc/default/haproxy
這就是它的樣子:# Defaults file for HAProxy # # This is sourced by both, the initscript and the systemd unit file, so do not # treat it as a shell script fragment. # Change the config file location if needed #CONFIG="/etc/haproxy/haproxy.cfg" # Add extra flags here, see haproxy(1) for a few options #EXTRAOPTS="-de -m 16"
我在那裡添加了我的環境變數並恢復了我的其餘更改,它在作為服務執行和直接使用
/etc/init.d/haproxy
.這是我添加的行:
SERVER_IP=165.88.76.44