Fix error 500 when using SOURCE_IP and APP_COOKIE

When using session_persistence with SOURCE_IP or APP_COOKIE,
the haproxy.cfg is as folllows.
---
backend <pool_id>
...
...
stick-table ... ... peers <listener_id>_peers
---
If amphora-vm's init system is systemd, reloading haproxy can get a
failed result. Systemd script needs to specify -L <peer name> when
chekcing haproxy.cfg.

Closes-Bug: #1681623
Change-Id: Ibda50f1faafd8adff4fab7c413a9fee735d46ceb
This commit is contained in:
ckji 2017-04-11 15:45:10 +08:00
parent 7466016ae9
commit 7f1f43f18c
2 changed files with 5 additions and 4 deletions

View File

@ -25,7 +25,7 @@ ExecStartPre=-/bin/awk '{system("/sbin/ip netns exec {{ amphora_nsname }} ifup "
{%- endif %}
#
ExecStart=/sbin/ip netns exec {{ amphora_nsname }} /usr/sbin/haproxy-systemd-wrapper -f {{ haproxy_cfg }} -f {{ haproxy_user_group_cfg }} -p {{ haproxy_pid }} -L {{ peer_name }} $EXTRAOPTS
ExecReload=/usr/sbin/haproxy -c -f {{ haproxy_cfg }} -f {{ haproxy_user_group_cfg }}
ExecReload=/usr/sbin/haproxy -c -f {{ haproxy_cfg }} -f {{ haproxy_user_group_cfg }} -L {{ peer_name }}
ExecReload=/bin/kill -USR2 $MAINPID
KillMode=mixed
Restart=always

View File

@ -30,6 +30,7 @@
PATH=/sbin:/usr/sbin:/bin:/usr/bin
PIDFILE={{ haproxy_pid }}
CONFIG={{ haproxy_cfg }}
PEER_NAME={{ peer_name }}
HAPROXY={{ haproxy_cmd }}
USER_GROUP_CONF_PATH={{ haproxy_user_group_cfg }}
@ -68,7 +69,7 @@ haproxy_start()
{%- endif %}
start-stop-daemon --start --pidfile "$PIDFILE" \
--exec $HAPROXY -- -f "$CONFIG" -f "$USER_GROUP_CONF_PATH" -D -p "$PIDFILE" \
--exec $HAPROXY -- -f "$CONFIG" -f "$USER_GROUP_CONF_PATH" -L "$PEER_NAME" -D -p "$PIDFILE" \
$EXTRAOPTS || return 2
return 0
}
@ -88,7 +89,7 @@ haproxy_stop()
haproxy_reload()
{
$HAPROXY -f "$CONFIG" -f "$USER_GROUP_CONF_PATH" -p $PIDFILE -D $EXTRAOPTS -sf $(cat $PIDFILE) \
$HAPROXY -f "$CONFIG" -f "$USER_GROUP_CONF_PATH" -L "$PEER_NAME" -p $PIDFILE -D $EXTRAOPTS -sf $(cat $PIDFILE) \
|| return 2
return 0
}
@ -97,7 +98,7 @@ haproxy_checkconf()
{
rcode=0
$HAPROXY -c -f "$CONFIG" -f "$USER_GROUP_CONF_PATH"
$HAPROXY -c -f "$CONFIG" -f "$USER_GROUP_CONF_PATH" -L "$PEER_NAME"
if [ $? -ne 0 ]; then
rcode=1
fi