เราต้องการที่จะสามารถเพิ่มเซิร์ฟเวอร์แบ็กเอนด์ตามความต้องการ ตอนนี้ฉันไม่เห็นวิธีเพิ่มเซิร์ฟเวอร์แบ็กเอนด์มากขึ้นไปยังไฟล์ปรับแต่งโดยไม่ต้องรีสตาร์ท haproxy
เราต้องการที่จะสามารถเพิ่มเซิร์ฟเวอร์แบ็กเอนด์ตามความต้องการ ตอนนี้ฉันไม่เห็นวิธีเพิ่มเซิร์ฟเวอร์แบ็กเอนด์มากขึ้นไปยังไฟล์ปรับแต่งโดยไม่ต้องรีสตาร์ท haproxy
คำตอบ:
ฉันยังไม่ได้ทดสอบเคสการใช้งานเฉพาะนี้ แต่ haproxy ไม่รองรับ "hot reload":
2.4.1) Hot reconfiguration
--------------------------
The '-st' and '-sf' command line options are used to inform previously running
processes that a configuration is being reloaded. They will receive the SIGTTOU
signal to ask them to temporarily stop listening to the ports so that the new
process can grab them. If anything wrong happens, the new process will send
them a SIGTTIN to tell them to re-listen to the ports and continue their normal
work. Otherwise, it will either ask them to finish (-sf) their work then softly
exit, or immediately terminate (-st), breaking existing sessions. A typical use
of this allows a configuration reload without service interruption :
# haproxy -p /var/run/haproxy.pid -sf $(cat /var/run/haproxy.pid)
หากคุณมีสคริปต์เริ่มต้นที่จะเริ่มและหยุด haproxy ก็อาจสนับสนุนการreload
โต้แย้งด้วยฟังก์ชั่นเช่น:
haproxy_reload()
{
$HAPROXY -f "$CONFIG" -p $PIDFILE -D $EXTRAOPTS -sf $(cat $PIDFILE) \
|| return 2
return 0
}
จากคู่มือ:
ตอนนี้ Haproxy สนับสนุนแนวคิดของ pidfile หากอาร์กิวเมนต์บรรทัดคำสั่ง '-p' หรือตัวเลือกโกลบอล 'pidfile' ตามด้วยชื่อไฟล์ไฟล์นี้จะถูกลบออกจากนั้นเติมด้วย pids ของเด็กทั้งหมดหนึ่งรายการต่อบรรทัด (ในโหมด daemon เท่านั้น) ไฟล์นี้ไม่อยู่ใน chroot ซึ่งอนุญาตให้ทำงานกับ chroot แบบอ่านอย่างเดียว มันจะเป็นของผู้ใช้ที่เริ่มต้นกระบวนการและจะมีสิทธิ์ 0644
global
daemon
quiet
nbproc 2
pidfile /var/run/haproxy-private.pid
# to stop only those processes among others :
# kill $(</var/run/haproxy-private.pid)
# to reload a new configuration with minimal service impact and without
# breaking existing sessions :
# haproxy -f haproxy.cfg -p /var/run/haproxy-private.pid -sf $(</var/run/haproxy-private.pid)
ขึ้นอยู่กับเวอร์ชัน HA-proxy ของคุณคุณอาจต้องการพิจารณา HA-Proxy Dynamic API ตามที่อธิบายโดย haproxy.com ในหน้านี้: https://www.haproxy.com/blog/dynamic-scaling-for-microservices-with -runtime-API /
HA-Proxy Dynamic API มาพร้อมกับรุ่น Enterprise
คุณควรพิจารณา HA-Proxy Dynamic API ถ้าคุณต้องการที่จะเพิ่ม / ลบเซิร์ฟเวอร์แบบง่าย ๆ ตามปกติหรือหากโครงการของคุณมีความหมายเช่นกรณีการใช้งาน