Выравнивание нагрузки HTTPS на основе некоторого компонента URL

Это - просто ENOMEM на уровне ядра. Установите больше памяти или увеличьте Ваш размер подкачки.

3
задан 10 January 2011 в 17:51
5 ответов

Лак, вероятно, сделал бы это. Как с другими опциями, упомянутыми здесь, Вам было бы нужно что-то как фунт перед ним для действия как разделитель 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 к конфигурации, чтобы говорить с внешним сервисом и решить который бэкенд использовать.

2
ответ дан 3 December 2019 в 07:14

Было бы возможно сделать, это с URL rewriter в сквиде - отмечает, что необходимо будет завершить SSL перед прокси (например, stunnel).

1
ответ дан 3 December 2019 в 07:14

Вы имеете ресурсы кодирования в наличии? Я сделал почти точно эту использующую небольшую программу на среднем сервере. Это извлекает идентификатор пользователя из URI, делает поиск DB для нахождения местоположения их файлов, выбирает файл и затем записывает его обратно пользователю. Я сделал это с помощью сервлета Java, но существует много других опций выполнить то же самое.

0
ответ дан 3 December 2019 в 07:14

HAProxy сделает то, что Вы просите. Это действительно имеет способность сделать маршрутизацию Уровня 7 на основе содержания URL, и это - открытый исходный код.

0
ответ дан 3 December 2019 в 07:14

Подобная вещь могла быть достигнута с nginx. Nginx может сделать завершения SSL и затем проксировать Ваши запросы к бэкенду.

Действительно ли Ваше требование является конкретным, что пользователи 1-100 должны перейти к конкретному веб-серверу, или запросы могут быть равномерно распределены? Я советовал бы Вам равномерно распределять их. Помог бы Вам распространиться и таким образом понизил бы Ваш риск.

-1
ответ дан 3 December 2019 в 07:14

Теги

Похожие вопросы