Как я могу передать запрос через mod_jk конкретному воркеру?

Если у меня настроен mod_jk с несколькими рабочими и рабочим балансировщиком нагрузки, есть ли параметр запроса или что-то, что позволило бы мне принудительно передать конкретный http-запрос конкретному рабочему. Например, если у меня есть рабочий worker1, есть ли что-то вроде этого:

http://www.example.com?worker=worker1

Часто нам нужно устранять неполадки на определенном сервере в кластере, и очень важно иметь возможность принудительно отправить запрос непосредственно на этот сервер.


person polarbear    schedule 01.05.2009    source источник


Ответы (2)


Я думаю, что обычная практика заключается в том, чтобы делать это через поддомены, которые являются псевдонимом основного домена. Просто убедитесь, что вы не разрешаете индексировать Google, потому что у вас будут проблемы с дублированием контента. IP-фильтрация и ограничительный файл robots.txt сделают свое дело.

www1.example.com
www2.example.com
person cherouvim    schedule 01.05.2009

  1. Измените значение файла cookie JSESSIONID. В конце есть имя работника, к которому вы привязаны (при условии, что вы выполняете липкие сеансы)

  2. Используйте SetHandler, как описано здесь http://tomcat.apache.org/connectors-doc/reference/apache.html вместо директив JKMount

    Что-то вроде этого:

    
       <Location />  
          SetHandler jakarta-servlet  
          SetEnvIf REQUEST_URI ^/.*\?.*worker=(\w+)&?$ JK_WORKER_NAME=$1  
       </Location>
    
person polarbear    schedule 04.05.2009
comment
Я могу неправильно прочитать ваше регулярное выражение, но я думаю, что REQUEST_URI не включает сообщение? Строка запроса. Я использую mod_rewrite для установки переменной env аналогичным образом. - person 8None1; 17.07.2013