
* luci-app-haproxy-tcp: fixed wrong location in make menu * luci-app-qbittorrent: solved wrong luci-i18n-qbittorrent at make menu
74 lines
2.3 KiB
Bash
Executable File
74 lines
2.3 KiB
Bash
Executable File
#!/bin/sh /etc/rc.common
|
|
# Copyright (C) 2009-2010 OpenWrt.org
|
|
|
|
START=99
|
|
STOP=80
|
|
|
|
SERVICE_USE_PID=1
|
|
|
|
HAPROXY_BIN="/usr/sbin/haproxy"
|
|
HAPROXY_CONFIG="/etc/haproxy.cfg"
|
|
HAPROXY_PID="/var/run/haproxy.pid"
|
|
|
|
start() {
|
|
service_start $HAPROXY_BIN -q -D -f "$HAPROXY_CONFIG" -p "$HAPROXY_PID"
|
|
local COUNTER=0
|
|
#添加主服务器
|
|
iptables -t nat -D OUTPUT -j HAPROXY &> /dev/null
|
|
iptables -t nat -X HAPROXY
|
|
iptables -t nat -N HAPROXY
|
|
iptables -t nat -F HAPROXY
|
|
|
|
while true
|
|
do
|
|
local server_ip=`uci get haproxy.@main_server[$COUNTER].server_ip 2>/dev/null`
|
|
local server_name=`uci get haproxy.@main_server[$COUNTER].server_name 2>/dev/null`
|
|
local server_port=`uci get haproxy.@main_server[$COUNTER].server_port 2>/dev/null`
|
|
local server_weight=`uci get haproxy.@main_server[$COUNTER].server_weight 2>/dev/null`
|
|
local validate=`uci get haproxy.@main_server[$COUNTER].validate 2>/dev/null`
|
|
if [ -z "$server_ip" ] || [ -z "$server_name" ] || [ -z "$server_port" ] || [ -z "$server_weight" ]; then
|
|
echo break
|
|
break
|
|
fi
|
|
echo the main2 server $COUNTER $server_ip $server_name $server_port $server_weight
|
|
[ "$validate" = 1 ] && {
|
|
iptables -t nat -A HAPROXY -p tcp -d $server_ip -j ACCEPT
|
|
}
|
|
COUNTER=$(($COUNTER+1))
|
|
done
|
|
COUNTER=0
|
|
#添加备用服务器
|
|
while true
|
|
do
|
|
local server_ip=`uci get haproxy.@backup_server[$COUNTER].server_ip 2>/dev/null`
|
|
local server_name=`uci get haproxy.@backup_server[$COUNTER].server_name 2>/dev/null`
|
|
local server_port=`uci get haproxy.@backup_server[$COUNTER].server_port 2>/dev/null`
|
|
local validate=`uci get haproxy.@backup_server[$COUNTER].validate 2>/dev/null`
|
|
if [ -z "$server_ip" ] || [ -z "$server_name" ] || [ -z "$server_port" ]; then
|
|
echo break
|
|
break
|
|
fi
|
|
echo the backup2 server $COUNTER $server_ip $server_name $server_port
|
|
[ "$validate" = 1 ] && {
|
|
iptables -t nat -A HAPROXY -p tcp -d $server_ip -j ACCEPT
|
|
}
|
|
COUNTER=$(($COUNTER+1))
|
|
done
|
|
|
|
iptables -t nat -I OUTPUT -j HAPROXY
|
|
}
|
|
|
|
stop() {
|
|
kill -9 $(cat $HAPROXY_PID | tr "\n" " ")
|
|
service_stop $HAPROXY_BIN
|
|
iptables -t nat -D OUTPUT -j HAPROXY &> /dev/null
|
|
iptables -t nat -F HAPROXY &> /dev/null
|
|
sleep 1
|
|
iptables -t nat -X HAPROXY &> /dev/null
|
|
}
|
|
|
|
reload() {
|
|
$HAPROXY_BIN -D -q -f $HAPROXY_CONFIG -p $HAPROXY_PID -sf $(cat $HAPROXY_PID | tr "\n" " ")
|
|
#$HAPROXY_BIN -D -q -f $HAPROXY_CONFIG -p $HAPROXY_PID -sf $(cat $HAPROXY_PID)
|
|
}
|