В первую очередь, 40 000 хитов в день и 400 + отправляют день, не походит на что-то, что заставило бы MySQL потеть. 40 000 хитов в день являются приблизительно 2 хитами в секунду, если распространено среди дня, и 400 +, сообщения означают, что существует новое сообщение после каждых трех минут.
И это не очень.В самом деле.
Вы не упоминали, какой механизм устройства хранения данных используется. С таблицами MyISAM необходимо настроить особенно значения table_cache и key_buffer. С таблицами InnoDB innodb_buffer_pool_size является самым важным.
key_buffer = 16k в Вашем примере звучит странным. 16 килобайтов key_buffer? Никакой путь, сделайте его, по крайней мере, 16M (мегабайты), или если Ваш сервер имеет достойный объем памяти, то это может быть намного больше. Знайте, хотя это, много переменных MySQL являются конкретным соединением и не глобальные значения, поэтому если Ваша загрузка сервера будет означать тысячи одновременных Подключений mysql, то необходимо будет настроить значения вниз, но если у Вас обычно есть только небольшое количество соединений, но больших наборов данных, затем необходимо настроить значения.
Вам необходимо использовать какую-либо форму политики маршрутизации , потому что вы хотите маршрутизировать трафик на основе чего-то другого, кроме адреса назначения. Сначала я бы попробовал маршрутизацию политики источника , которая использует адрес источника пакета для выбора маршрута. Я раньше не использовал его в подобных ситуациях, поэтому я не уверен, что исходный адрес уже был выбран, когда правила проверяются на наличие новых исходящих соединений.
Сначала пометьте новую таблицу маршрутизации для VPN-соединения. . Это нужно сделать только один раз.
echo 10 vpn >> /etc/iproute2/rt_tables
Заполните новую таблицу маршрутизации правилами для отправки трафика через VPN (при условии, что 1.0.0.10/24 - это адрес eth0, а VPN-шлюз - 10.8.0.1).
ip route add 169.254.0.0/16 dev br1 table vpn
ip route add 192.168.1.0/24 dev br1 table vpn
ip route add 1.0.0.0/24 dev eth0 table vpn
ip route add default via 18.8.0.1 table vpn
Затем добавьте правило для использования этой новой таблицы для трафика от самого хоста.
ip rule add from 1.0.0.10/32 lookup vpn
Если это не так '
Мне удалось это сделать, используя iif lo
следующим образом.
Переместите маршрут по умолчанию в отдельную таблицу, чтобы можно было локальное правило переопределить:
default_route=$(ip route list | grep -m 1 "default via")
ip route add $default_route table default
ip route delete $default_route
Переместите приоритет основного правила так, чтобы локальная роль могла быть между ним и правилом по умолчанию.
main=$(ip rule list | grep -m 1 "lookup main $")
main_rule=$(echo $main | cut -d ":" -f 2)
main_priority=$(echo $main | cut -d ":" -f 1)
ip rule add $main_rule priority 16384
ip rule delete $main_rule priority $main_priority
Добавьте маршрут шлюза VPN по умолчанию в отдельную таблицу и добавьте правилом.
echo "10 vpn" >> /etc/iproute2/rt_tables
ip rule add priority 24576 iif lo lookup vpn
Скажите клиенту OpenVPN, чтобы он поместил маршрут по умолчанию в таблицу vpn,
добавление следующего в конфигурационный файл / etc / openvpn / *
:
script-security 2
route-up "/bin/sh -x -c 'route_net_gateway=$(ip route ls table default | cut -d \" \" -f 3) && ip route add $trusted_ip via $route_net_gateway table vpn && /sbin/ip route add default via $ifconfig_remote table vpn' route-up"