Ubuntu

HAProxy 錯誤:某些配置選項需要完全權限,因此 global.uid 無法更改

  • February 14, 2019

在創建透明代理的過程中/etc/haproxy/haproxy.cfg添加該行之後,

   source 0.0.0.0 usesrc clientip

重新啟動 haproxy 開始給出錯誤

~# service haproxy reload
* Reloading haproxy haproxy                                                     
      [ALERT]     230/153724 (1140) : [/usr/sbin/haproxy.main()] Some configuration options require full privileges, so global.uid cannot be changed.

我已經service haproxy reloadroot. 我們還需要做什麼?謝謝!

註釋掉 haproxy.cfg 中的以下行:

   user        haproxy
   group       haproxy

並重新啟動 haproxy。

使用特權解決此問題的更好方法是執行以下命令:

  1. 修復 haproxy 功能
setcap cap_net_raw,cap_net_admin,cap_net_bind_service+eip /usr/sbin/haproxy
  1. 修復haproxy.pid文件權限
touch /var/run/haproxy.pid; chown haproxy:haproxy /var/run/haproxy.pid
  1. 註釋掉haproxy.conf
User haproxy
Group haproxy
  1. 以 haproxy 使用者身份執行守護程序:
sudo -u haproxy /sbin/haproxy -f /etc/haproxy/haproxy.cfg -p /var/run/haproxy.pid -D -q
  1. 檢查 haproxy 程序
ps -ef | grep haproxy

結果應該是:

haproxy  12800     1  0 фев12 ?     00:00:58 /sbin/haproxy -f /etc/haproxy/haproxy.cfg -p /var/run/haproxy.pid -D -q
  1. 您可以將這些命令放入rc.local以便系統自動啟動

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