1
0
Fork 0
mirror of https://github.com/Ysurac/openmptcprouter-feeds.git synced 2025-03-09 15:40:03 +00:00

Nginx-HA change, even if it's not working yet...

This commit is contained in:
Ycarus 2018-06-27 20:41:57 +02:00
parent a02ef92c5d
commit 7d931c6e17
2 changed files with 47 additions and 20 deletions

View file

@ -50,10 +50,7 @@ start_instance() {
server { server {
listen ${listen:-0.0.0.0:6666} udp; listen ${listen:-0.0.0.0:6666} udp;
proxy_pass ${1}; listen ${listen:-0.0.0.0:6666} so_keepalive=off;
}
server {
listen ${listen:-0.0.0.0:6666};
proxy_pass ${1}; proxy_pass ${1};
} }
" "

View file

@ -22,27 +22,53 @@ set_route() {
if [ "$interface_gw" != "" ]; then if [ "$interface_gw" != "" ]; then
_log "$PREVINTERFACE down. Replace default route by $interface_gw dev $interface_if" _log "$PREVINTERFACE down. Replace default route by $interface_gw dev $interface_if"
ip route replace default scope global nexthop via $interface_gw dev $interface_if && SETROUTE=true ip route replace default scope global nexthop via $interface_gw dev $interface_if && SETROUTE=true
if [ "$(uci -q get omr-bypass.defaults.ifname)" = "" ]; then
ip route replace default via $interface_gw dev $interface_if table 991337 ip route replace default via $interface_gw dev $interface_if table 991337
fi fi
fi fi
fi
} }
set_ss_route() { set_ss_route() {
local server_ip local server_ip upstreams nginxip
config_get server_ip $1 server config_get server_ip $1 server
if [ "$server_ip" = "127.0.0.1" ]; then
upstreams=$(uci -q get nginx-ha.ShadowSocks.upstreams | sed -e "s/' '/%/" -e 's/ /_/g' -e "s/'//g" -e 's/%/ /')
for up in $upstreams; do
_log "up : $up"
nginxip=$(echo $up | cut -d: -f1)
if [ "$nginxip" != "" ] && [ "$OMR_TRACKER_DEVICE_GATEWAY" != "" ] && [ "$(ip route show dev $OMR_TRACKER_DEVICE | grep $nginxip | grep $OMR_TRACKER_DEVICE_GATEWAY)" = "" ]; then
_log "Set server $nginxip route via $OMR_TRACKER_DEVICE"
ip route replace $nginxip via $OMR_TRACKER_DEVICE_GATEWAY dev $OMR_TRACKER_DEVICE
fi
done
else
if [ "$server_ip" != "" ] && [ "$OMR_TRACKER_DEVICE_GATEWAY" != "" ] && [ "$(ip route show dev $OMR_TRACKER_DEVICE | grep $server_ip | grep $OMR_TRACKER_DEVICE_GATEWAY)" = "" ]; then if [ "$server_ip" != "" ] && [ "$OMR_TRACKER_DEVICE_GATEWAY" != "" ] && [ "$(ip route show dev $OMR_TRACKER_DEVICE | grep $server_ip | grep $OMR_TRACKER_DEVICE_GATEWAY)" = "" ]; then
_log "Set server $server_ip route via $OMR_TRACKER_DEVICE" _log "Set server $server_ip route via $OMR_TRACKER_DEVICE"
ip route replace $server_ip via $OMR_TRACKER_DEVICE_GATEWAY dev $OMR_TRACKER_DEVICE ip route replace $server_ip via $OMR_TRACKER_DEVICE_GATEWAY dev $OMR_TRACKER_DEVICE
fi fi
fi
} }
del_ss_route() { del_ss_route() {
local server_ip local server_ip upstreams nginxip
config_get server_ip $1 server config_get server_ip $1 server
if [ "$server_ip" = "127.0.0.1" ]; then
upstreams=$(uci -q get nginx-ha.ShadowSocks.upstreams | sed -e "s/' '/%/" -e 's/ /_/g' -e "s/'//g" -e 's/%/ /')
for up in $upstreams; do
_log "down : $up"
nginxip=$(echo $up | cut -d: -f1)
if [ "$nginxip" != "" ] && [ "$(ip route show dev $OMR_TRACKER_DEVICE | grep $nginxip)" != "" ]; then
_log "Remove server $nginxip route via $OMR_TRACKER_DEVICE"
ip route delete $nginxip dev $OMR_TRACKER_DEVICE
fi
done
else
if [ "$server_ip" != "" ] && [ "$(ip route show dev $OMR_TRACKER_DEVICE | grep $server_ip)" != "" ]; then if [ "$server_ip" != "" ] && [ "$(ip route show dev $OMR_TRACKER_DEVICE | grep $server_ip)" != "" ]; then
_log "Remove server $server_ip route via $OMR_TRACKER_DEVICE" _log "Remove server $server_ip route via $OMR_TRACKER_DEVICE"
ip route delete $server_ip dev $OMR_TRACKER_DEVICE ip route delete $server_ip dev $OMR_TRACKER_DEVICE
fi fi
fi
} }
sleep `expr $RANDOM % 10` sleep `expr $RANDOM % 10`
@ -89,14 +115,12 @@ if [ "$OMR_TRACKER_INTERFACE" = "glorytun" ] || [ "$OMR_TRACKER_INTERFACE" = "om
if [ "$default_gw" != "$OMR_TRACKER_DEVICE_GATEWAY" ] || [ "$default_gw" = "" ]; then if [ "$default_gw" != "$OMR_TRACKER_DEVICE_GATEWAY" ] || [ "$default_gw" = "" ]; then
_log "Tunnel up : Replace default route by $OMR_TRACKER_DEVICE_GATEWAY dev $OMR_TRACKER_DEVICE" _log "Tunnel up : Replace default route by $OMR_TRACKER_DEVICE_GATEWAY dev $OMR_TRACKER_DEVICE"
ip route replace default scope global nexthop via $OMR_TRACKER_DEVICE_GATEWAY dev $OMR_TRACKER_DEVICE ip route replace default scope global nexthop via $OMR_TRACKER_DEVICE_GATEWAY dev $OMR_TRACKER_DEVICE
if [ "$OMR_TRACKER_INTERFACE" = "glorytun" ] || [ "$OMR_TRACKER_INTERFACE" = "omrvpn" ]; then
if [ "$(uci -q show shadowsocks-libev.ss_rules.redir_udp)" = "hi2" ]; then if [ "$(uci -q show shadowsocks-libev.ss_rules.redir_udp)" = "hi2" ]; then
uci -q delete shadowsocks-libev.ss_rules.redir_udp uci -q delete shadowsocks-libev.ss_rules.redir_udp
/etc/init.d/shadowsocks-libev rules_down /etc/init.d/shadowsocks-libev rules_down
/etc/init.d/shadowsocks-libev rules_up /etc/init.d/shadowsocks-libev rules_up
fi fi
fi fi
fi
exit 0 exit 0
fi fi
@ -111,10 +135,16 @@ if [ "$multipath_config" = "master" ]; then
config_load shadowsocks-libev config_load shadowsocks-libev
config_foreach set_ss_route server config_foreach set_ss_route server
fi fi
if [ "$(uci -q get omr-bypass.defaults.ifname)" = "" ]; then
ip route replace default via $OMR_TRACKER_DEVICE_GATEWAY dev $OMR_TRACKER_DEVICE table 991337 ip route replace default via $OMR_TRACKER_DEVICE_GATEWAY dev $OMR_TRACKER_DEVICE table 991337
fi fi
fi
multipath_config="on" multipath_config="on"
fi fi
if [ "$(uci -q get omr-bypass.defaults.ifname)" = "$OMR_TRACKER_DEVICE" ]; then
ip route replace default via $OMR_TRACKER_DEVICE_GATEWAY dev $OMR_TRACKER_DEVICE table 991337
fi
[ "$multipath_config" = "on" ] && glorytun-udp path $OMR_TRACKER_DEVICE_IP dev tun0 up > /dev/null 2>&1 [ "$multipath_config" = "on" ] && glorytun-udp path $OMR_TRACKER_DEVICE_IP dev tun0 up > /dev/null 2>&1
[ "$multipath_config" = "backup" ] && glorytun-udp path $OMR_TRACKER_DEVICE_IP dev tun0 backup > /dev/null 2>&1 [ "$multipath_config" = "backup" ] && glorytun-udp path $OMR_TRACKER_DEVICE_IP dev tun0 backup > /dev/null 2>&1
[ "$multipath_status" = "$multipath_config" ] && exit 0 [ "$multipath_status" = "$multipath_config" ] && exit 0