2015-12-09 4 views
0

Я работаю над Apache и tomcat для настройки балансировки нагрузки и сбоя. Первоначально я думал, что load-balancing будет включать fail-over, но я был неправ. Я думал, что если один экземпляр неактивен, то использование другого экземпляра также становится частью управления нагрузкой. Достаточно с терминологией, я настраиваю провал, но ироническая часть fail-over сама проваливается.Tomcat, Apache: Отказоустойчивость не работает даже после настройки

Как только я закрыл один экземпляр tomcat, вся установка мертва, и я получаю 503. Может кто-нибудь помочь мне понять, в чем проблема.

Добавлено это в apache2.conf:

JkWorkersFile /etc/apache2/workers.properties 

JkMount /* loadbalancer 

workers.properties:

GNU Нано 2.2.6 Файл: workers.properties

worker.list=loadbalancer 
worker.server1.port=8010 
worker.server1.host=localhost 
worker.server1.type=ajp13 

worker.server2.port=8011 
worker.server2.host=localhost 
worker.server2.type=ajp13 

worker.server1.lbfactor=1 
worker.server2.lbfactor=1 

worker.loadbalancer.type=lb 
worker.loadbalancer.balance_workers=server1,server2 
worker.loadbalancer.method=B 
worker.balancer.sticky_session=True 

000-умолчанию в местах с поддержкой :

JkMountCopy On 
<Proxy balancer://mycluster> 
    BalancerMember ajp://localhost:8010 route=server1 connectiontimeout=10 
    BalancerMember ajp://localhost:8011 route=server2 connectiontimeout=10 

    ProxySet stickysession=JSESSIONID|jsessionid 
    Order Deny,Allow 
    Deny from none 
    Allow from all 

</Proxy> 

<VirtualHost *:80> 
ProxyRequests off 

ProxyPass /balancer-manager ! 
ProxyPass/balancer://mycluster/ 
ProxyPassReverse/balancer://mycluster/ 
</VirtualHost> 

<Location /balancer-manager> 
SetHandler balancer-manager 

Order Deny,Allow 
Deny from none 
Allow from all 
</Location> 
server.xml

Первого запуска Tomcat:

<Connector port="8080" proxyPort="80" protocol="HTTP/1.1" compression="force" compressionMinSize="1024" 
       connectionTimeout="20000" 
       redirectPort="443" URIEncoding="utf-8" 
compressableMimeType="text/html,text/xml,text/plain,text/css,text/ javascript,application/x-javascript,application/javascript"/> 


<Connector port="443" enableLookups="false" protocol="HTTP/1.1" SSLEnabled="true" maxThreads="200" compression="force" 
       compressionMinSize="1024" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" 
       keystoreFile="keystore_file" keystorePass="PASSWORD" URIEncoding="utf-8" 
compressableMimeType="text/html,text/xml,text/plain,text/css,text/ javascript,application/x-javascript,application/javascript" 
/> 
    <Connector port="8010" protocol="AJP/1.3" redirectPort="443" URIEncoding="utf-8" 
compressableMimeType="text/html,text/xml,text/plain,text/css,text/ javascript,application/x-javascript,application/javascript" 
/> 
    <Engine name="Catalina" defaultHost="localhost" jvmRoute="server1"> 
    // No modifications inside 
</Engine> 

Второй Tomcat в server.xml:

<Connector port="8081" proxyPort="80" protocol="HTTP/1.1" compression="force" compressionMinSize="1024" 
       connectionTimeout="20000" 
       redirectPort="443" URIEncoding="utf-8" 
compressableMimeType="text/html,text/xml,text/plain,text/css,text/ javascript,application/x-javascript,application/javascript"/> 


<Connector port="443" enableLookups="false" protocol="HTTP/1.1" SSLEnabled="true" maxThreads="200" compression="force" 
       compressionMinSize="1024" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" 
       keystoreFile="keystore_file" keystorePass="PASSWORD" URIEncoding="utf-8" 
compressableMimeType="text/html,text/xml,text/plain,text/css,text/ javascript,application/x-javascript,application/javascript" 
/> 
<Connector port="8011" protocol="AJP/1.3" redirectPort="8443" URIEncoding="utf-8" 
compressableMimeType="text/html,text/xml,text/plain,text/css,text/ javascript,application/x-javascript,application/javascript" 
/> 
    <Engine name="Catalina" defaultHost="localhost" jvmRoute="server2"> 
    // No modifications here 
    </Engine> 

Какую ошибку я делаю в конфигурации для реализации балансировки нагрузки и отказоустойчивость вместе. Большое спасибо.

ответ

1

Во-первых, вы используете два разных прокси-модуля, не делайте этого.

Один mod_jk и файлы конфигурации workers.properties, uriworkermap.properties и в apache.conf эта часть:

JkMount /* loadbalancer 

И в 000-умолчанию

JkMountCopy On 

Другой mod_proxy и относительной конфигурацией в 000-умолчанию:

<Proxy balancer://mycluster> 
    BalancerMember ajp://localhost:8010 route=server1 connectiontimeout=10 
    BalancerMember ajp://localhost:8011 route=server2 connectiontimeout=10 

    ProxySet stickysession=JSESSIONID|jsessionid 
    Order Deny,Allow 
    Deny from none 
    Allow from all 

    </Proxy> 

<VirtualHost *:80> 

ProxyRequests off 

ProxyPass /balancer-manager ! 
ProxyPass/balancer://mycluster/ 
ProxyPassReverse/balancer://mycluster/ 
</VirtualHost> 

<Location /balancer-manager> 
SetHandler balancer-manager 

Order Deny,Allow 
Deny from none 
Allow from all 
</Location> 

Что касается комментариев, o маршрут mod_jk. Сначала удалите mod_proxy конфигурации часть, по существу, все, что в 000-умолчанию оставив только:

JkMountCopy On 

Затем отключить загрузку этого модуля (не обязательны, но лучше):

mod_proxy_ *

Затем добавить это рабочий you'r loadbalancer в workers.properties:

worker.loadbalancer.sticky_session_force = ложному

И проверьте, все ли работает, на основании этого я обновлю ответ

+0

Я не против использования mod_jk sir. Но ответ, который вы опубликовали, содержит конфигурацию, которую я имею, любезно предложите мне с mod_jk, если вы найдете это удобным. Большое спасибо.: -) # –

+0

Затем сначала убедитесь, что у вас есть рабочая конфигурация mod_jk, начните удаление директив mod_proxy, которые я заметил в своем ответе, и проверьте, все ли работает, на основе этого я обновлю ответ – Fredi

+0

Да, у меня есть этот модуль. Я также назвал apache2ctl -M, и его вывод находится здесь: http://pastebin.com/DxxPuLJG. Должен ли я удалить все из 000-default, потому что файл был пуст до –

 Смежные вопросы

  • Нет связанных вопросов^_^