zoukankan      html  css  js  c++  java
  • How to Configure Tomcat/JBoss and Apache HTTPD for Load Balancing and Failover

    http://java.dzone.com/articles/how-configure-tomcatjboss-and

    In this post we will see how to setup a load balanced JBoss or Tomcat environment with the fail-over capability.

    This post assumes that both Jboss/Tomcat and Apache httpd are setup and running properly.

    Configure Apache Httpd Step 1: Configure apache’s workers.properties

    Go to /usr/local/apache2/conf/extra and open workers.properties and configure the properties indicated in bold.

    # for mapping requests
    # The configuration directives are valid
    # for the mod_jk version 1.2.18 and later
    #
    worker.list=loadbalancer,status
    
    # Define node
    # modify the host as your host IP or DNS name.
    
    worker.node.port=8009
    worker.node.host=192.168.0.3 #(IP or DNS name of the server on which Jboss is running)
    worker.node.type=ajp13
    worker.node.lbfactor=1
    
    worker.node2.port=8009
    worker.node2.host=192.168.0.4 #(IP or DNS name of the server on which Jboss is running)
    worker.node2.type=ajp13
    worker.node2.lbfactor=1
    
    # Load-balancing behaviour
    worker.loadbalancer.type=lb
    worker.loadbalancer.balance_workers=node,node2
    worker.loadbalancer.sticky_session=1
    worker.status.type=status

    The property balance_workers is used to specify the nodes to load balance. For example, if we specify only ‘node’, all requests will be routed to the server named ‘node’. Modify this to test that requests are going to both servers.

    Step 2: Configure mod-jk.conf

    Go to /usr/local/apache2/conf/extra and open mod-jk.conf and configure the bold properties according to your requirements.

    #Load mod_jk module
    # Specify the filename of the mod_jk lib
    LoadModule jk_module modules/mod_jk.so
    
    # Where to find workers.properties
    JkWorkersFile conf/extra/workers.properties
    
    # Where to put jk logs
    JkLogFile /var/apache/logs/mod_jk.log
    
    # Set the jk log level [debug/error/info]
    JkLogLevel debug
    
    # Select the log format
    JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
    
    # JkOptions indicates to send SSK KEY SIZE
    # Note: Changed from +ForwardURICompat.
    # See http://tomcat.apache.org/security-jk.html
    JkOptions +ForwardKeySize +ForwardURICompatUnparsed -ForwardDirectories
    JkOptions +FlushPackets
    # JkRequestLogFormat
    JkRequestLogFormat "%w %V %T"
    
    # Mount your applications
    JkMount /* loadbalancer
    
    # You can use external file for mount points.
    # It will be checked for updates each 60 seconds.
    # The format of the file is: /url=worker
    # /examples/*=loadbalancer
    JkMountFile conf/extra/uriworkermap.properties
    
    # Add shared memory.
    # This directive is present with 1.2.10 and
    # later versions of mod_jk, and is needed for
    # for load balancing to work properly
    # Note: Replaced JkShmFile logs/jk.shm due to SELinux issues. Refer to
    # https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=225452
    JkShmFile /var/run/jk.shm
    
    # Add jkstatus for managing runtime data
    <Location /jkstatus/>
      JkMount status
      Order deny,allow
      Deny from all
      Allow from 127.0.0.1
    </Location>

    The JkMount /* loadbalancer indicates that all requests are to be routed through the load balancer.

    Step 3: Go to /usr/local/apache2/conf and edit httpd.conf

    Add

    1.Include conf/extra/mod-jk.conf

    to the end of the file.

    Configure Tomcat/JBoss

    These settings need to be made for each of the nodes we intend on placing behind the load balancer.

    We need to modify the server.xml file which is located at

    • For Tomcat
      • ../apache-tomcat/conf/
    • For JBoss
      • ../jboss-5.1.0.GA/server/default/deploy/jbossweb.sar 

    Edit the following tag:

    1.&lt;Engine name="jboss.web" defaultHost="localhost" jvmRoute="node"&gt;

    where the jvmRoute attribute is configured to ‘node’ (which is the name we gave the first worker while configuring workers.properties.)

    Next, locate the following tag and edit the port to be the same as while configuring the workers.properties.

    1.&lt;Connector protocol="AJP/1.3" port="8009"address="${jboss.bind.address}" redirectPort="8443" /&gt;

    Configure the other node(s) accordingly.

    Next, Start Apache httpd and the Jboss/tomcat node(s) that you  have configured.

     

    Published at DZone with permission of Faheem Sohail, author and DZone MVB. (source)

    (Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)

    Enterprise Integration is a huge problem space for developers, and with so many different technologies to choose from, finding the most elegant solution can be tricky. MuleSoft provides the #1 open source Enterprise Service Bus, Mule, along with SOA integration cloud services that are used by customers like eBay, Amazon, and Walmart. Learn More about SOA Best Practices,Mobile E-Commerce, and Legacy Integration.
  • 相关阅读:
    在ASP.NET Core中怎么使用HttpContext.Current (转载)
    如何在.Net Core 2.0 App中读取appsettings.json
    ASP.NET CORE MVC 2.0 如何在Filter中使用依赖注入来读取AppSettings,及.NET Core控制台项目中读取AppSettings
    linux中shell变量$#,$@,$0,$1,$2的含义解释<转>
    ijkplayer阅读学习笔记之从代码上看播放流程
    ubuntu命令整理中
    Android SDK Android NDK Android Studio 官方下载地址<转>
    Ubuntu启动 卡在checking battery state 解决方案
    解决 ffmpeg 在avformat_find_stream_info执行时间太长
    ijkplayer阅读笔记系列<转>
  • 原文地址:https://www.cnblogs.com/davidwang456/p/3542298.html
Copyright © 2011-2022 走看看