Debian

作為服務執行時如何將 HAProxy 與環境變數一起使用

  • October 6, 2017

我是 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

所以我把它們註釋掉了。

然後我可以使用啟動 HAProxysudo /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

引用自:https://serverfault.com/questions/840845