Лак, вероятно, сделал бы это. Как с другими опциями, упомянутыми здесь, Вам было бы нужно что-то как фунт перед ним для действия как разделитель SSL. Однако когда-то сделанный, можно установить каждый реальный сервер как "бэкенд" и затем добавить что-то как следующее в конфигурацию:
## Define the back end servers. backend server01 { .host = "192.0.2.1"; .port = "80"; } backend server02 { .host = "192.0.2.2"; .port = "80"; } sub vcl_recv { if (req.url ~ "^/1[0-9][0-9]/"){ ## If the first part of the link is 100-199 use server01 set req.backend = server01; pipe; } else if (req.url ~ "^/2[0-9][0-9]/") { ## If the first part of the link is 200-299 use server02 set req.backend = server02; pipe; } else { ## If all else fails fall back to server01 set req.backend = server01; pipe; } }
Это - просто извлечение соответствующих разделов и там будет, вероятно, более требоваться в конфигурации. Например, Вы могли добавить в следующем сразу после sub vcl_recv {
для кэширования любых статических файлов так, чтобы серверы не были поражены каждый раз для файлов, которые не изменяются.
if (req.request == "GET" && req.url ~ "\.(png|jpg|gif|css)$") { lookup;
Можно даже включить мало, встраивают программы C к конфигурации, чтобы говорить с внешним сервисом и решить который бэкенд использовать.
Вы имеете ресурсы кодирования в наличии? Я сделал почти точно эту использующую небольшую программу на среднем сервере. Это извлекает идентификатор пользователя из URI, делает поиск DB для нахождения местоположения их файлов, выбирает файл и затем записывает его обратно пользователю. Я сделал это с помощью сервлета Java, но существует много других опций выполнить то же самое.
Подобная вещь могла быть достигнута с nginx. Nginx может сделать завершения SSL и затем проксировать Ваши запросы к бэкенду.
Действительно ли Ваше требование является конкретным, что пользователи 1-100 должны перейти к конкретному веб-серверу, или запросы могут быть равномерно распределены? Я советовал бы Вам равномерно распределять их. Помог бы Вам распространиться и таким образом понизил бы Ваш риск.