Industrial IoT Authors: Yeshim Deniz, Liz McMillan, Lori MacVittie, Pat Romanski, William Schmarzo

Blog Feed Post

Configuring JBoss 7 with Apache

There are a number of articles out there about deploying applications to JBoss and about how to monitor JBoss, and in them the web application is usually accessed by pointing a browser to the web container running on port 8080. In enterprise production environments however, the application server does not exist in a vacuum – JBoss is usually fronted with the web server (most often Apache). This kind of setup brings about several benefits:

  • Improved security by limiting access to the app server. In an Internet application the web server is accessed directly by the clients. Separating the web server from the app server allows us to place the former in a Demilitarized Zone (DMZ), while the app server can live on a more protected corporate network. If the web server is compromised, there is an additional barrier for the hackers to overcome before they can get access to your precious application and database servers.
  • Improved security by limiting access to the application server. Some third-party plugins allow the web server to perform authentication against LDAP or RADIUS servers – unauthenticated/unauthorized requests do not even reach your application server.
  • Improved performance by caching static content. Apache can cache your static content (images, javascript and .css), while allowing the app server to concentrate on what it does best – business logic processing
  • Improved SSL performance. SSL performs on-the-fly encryption/decryption which can be computationally expensive. While JBoss can certainly handle it, it makes more sense to take the load off its shoulders and allow Apache to do the SSL heavy lifting (Apache can even use hardware SSL acceleration)
  • Last but not least, given the right setup, Apache can balance the load between your application servers very effectively (we will see how in a minute).

For simplicity, let’s assume the following:

  • we are running JBoss 7.1 in standalone mode
  • the operating system is CentOS 6.x
  • $JBOSS_HOME refers to the JBoss 7 installation directory (you don’t have to set this environment variable)
  • We will use the Monitis JMX agent web application to illustrate the process – the web application context is mon_jmx_agent

Configuring AJP

AJP stands for “Apache JServ Protocol” – this is the standard method of interfacing Apache with Tomcat (and later, JBoss) since the earliest versions of Tomcat. It is a packet-based protocol, which in it’s latest re-incarnation of 1.3 is very fast, while adding very little overhead. Tomcat (and by extension JBoss) speaks AJP out of the box. On the Apache side, the mod_proxy_ajp provides the necessary functionality. So let’s see how to put the whole thing together.

Step 1.Enable the AJP connector In JBoss 7 the AJP connector is not enabled by default, so let’s enable it. Open $JBOSS_HOME/standalone/configuration/standalone.xml, find the subsystem tag and add the AJP connector:

        <subsystem xmlns="urn:jboss:domain:web:1.1" native="false" default-virtual-server="default-host">
            <connector name="ajp" protocol="AJP/1.3" scheme="http" socket-binding="ajp"/>

Next, make sure that the ajp socket binding definition exists:

    <socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}">
        <socket-binding name="ajp" port="8009"/>

Step 2. Configure mod_proxy_ajp Go to /etc/httpd/conf.d and create a file proxy_ajp.conf as follows

<IfModule !proxy_ajp_module>
  LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
ProxyPass /mon_jmx_agent ajp://localhost:8009/mon_jmx_agent

Step 3. Restart JBoss and Apache (in that order)
Now, open a web browser and navigate to http://localhost/mon_jmx_agent. You should see the JMX agent’s login screen.

Configuring mod_cluster

If you are running a cluster of multiple JBoss instances, you will need a load balancer to distribute the load between them. While both mod_proxy_ajp and mod_proxy_http do provide basic load-balancing functionality, it is somewhat limited. The most flexible way to implement load-balancing with apache nowadays is mod_cluster. Besides simply forwarding the requests to the cluster nodes, mod_cluster maintains a separate communication channel to the cluster nodes. This allows for more fine-grained load balancing based on a wider range of load-related parameters calculated by the cluster nodes. It also allows the cluster nodes to communicate lifecycle events to the mod_cluster load balancer, so that it can re-route the traffic accordingly. For instance, if you undeploy a WAR file on one of the cluster nodes, the load balancer will be aware of that and will route the requests to other nodes. Another important point is that mod_cluster supports dynamic discovery – the balancer does not need to be explicitly configured with the IP address/port numbers of the individual nodes.

Step 1. Configure yum for the EPEL repository (if not already enabled) Since mod_cluster is not yet part of the Apache distribution, we have to download separately from the EPEL repository, so let’s make sure yum is configured for this repository:

To check if EPEL is already configured in YUM, do

$rpm -qa epel-release

If the search results comes back blank, download the EPEL RPM from here (choose the appropriate version for the OS version you are running) and install it in order to configure yum for the EPEL repo:

$rpm -i epel-release-6-5.noarch.rpm

Step 2. Install mod_cluster and dependent modules

$yum install mod_cluster

Step 3: Configure mod_cluster

Step 3a. Open /etc/https/http.conf and make sure the following modules are enabled:

LoadModule proxy_module /modules/mod_proxy.so
LoadModule proxy_ajp_module /modules/mod_proxy_ajp.so
LoadModule slotmem_module /modules/mod_slotmem.so
LoadModule manager_module /modules/mod_manager.so
LoadModule proxy_cluster_module /modules/mod_proxy_cluster.so
LoadModule advertise_module /modules/mod_advertise.so

Step 3b. Create a file mod_cluster.conf in /etc/httpd/conf.d as follows:

<IfModule manager_module>
    Listen   # change IP address to suit your environment
    ManagerBalancerName mycluster
    <VirtualHost> # change IP address to suit your environment
        KeepAliveTimeout 300
        MaxKeepAliveRequests 0
        ServerAdvertise On
        AdvertiseSecurityKey secret # change key to match jboss config below

        <Location />
            Order deny,allow
      Deny from all
            Allow from 192.168.1. #change IP address filter to allow access from your local network

Step 3c. Modify /etc/httpd/httpd.conf like so:

<VirtualHost *:80>
    ProxyPass / balancer://mycluster stickysession=JSESSIONID|jsessionid nofailover=On
    ProxyPassReverse / balancer://mycluster
    ProxyPreserveHost On

    <Location />
        Order deny,allow
        Allow from All

    <Location /mod_cluster_manager>
        SetHandler mod_cluster-manager
        Order deny,allow
        Deny from all
        Allow from 192.168.1. # change this to match your network setup

Step 3d: Modify the JBoss config file $JBOSS_HOME/standalone/configuration/standalone-ha.xml

    <extension module="org.jboss.as.modcluster"/>

<subsystem xmlns="urn:jboss:domain:modcluster:1.0">
    <mod-cluster-config advertise-socket="modcluster" advertise-security-key="secret"/>

<socket-binding-group name="standard-sockets" default-interface="public"
    <socket-binding name="modcluster" port="0" multicast-address="" multicast-port="23364"/>

Step 4. Start httpd

Step 5. Start JBoss with the standalone-ha.xml profile

That’s it. Open up a web browser and navigate to and you should see the internal status page of the cluster manager:

The Contexts heading lists all application contexts (i.e. web applications) which are configures for this node. You should be able to open the Monitis JMX agent web application in a separate browser window: (change the IP address as necessary).

Note: If the status page is blank, then the cluster nodes are not registering properly with the balancer. Make sure IP multicast is enabled between the web server and the app server machine (mod_cluster’s discovery functionality uses IP Multicast to advertise the balancer’s address and port to the cluster nodes). The usual culprits are SELinux and iptables, so you may have to create the appropriate rules. Alternatively, you can point JBoss 7 to the balancer explicitly instead of relying on autodiscovery. Replace the following line in the JBoss configuration file standalone-ha.conf:

<mod-cluster-config advertise-socket="modcluster" advertise-security-key="secret"/>


with one like this:

<mod-cluster-config proxy-list=""/>

For more information:





Share Now:del.icio.usDiggFacebookLinkedInBlinkListDZoneGoogle BookmarksRedditStumbleUponTwitterRSS

Read the original blog entry...

More Stories By Hovhannes Avoyan

Hovhannes Avoyan is the CEO of PicsArt, Inc.,

@ThingsExpo Stories
In his general session at 18th Cloud Expo, Lee Atchison, Principal Cloud Architect and Advocate at New Relic, discussed cloud as a ‘better data center’ and how it adds new capacity (faster) and improves application availability (redundancy). The cloud is a ‘Dynamic Tool for Dynamic Apps’ and resource allocation is an integral part of your application architecture, so use only the resources you need and allocate /de-allocate resources on the fly.
SYS-CON Events announced today that 910Telecom will exhibit at the 19th International Cloud Expo, which will take place on November 1–3, 2016, at the Santa Clara Convention Center in Santa Clara, CA. Housed in the classic Denver Gas & Electric Building, 910 15th St., 910Telecom is a carrier-neutral telecom hotel located in the heart of Denver. Adjacent to CenturyLink, AT&T, and Denver Main, 910Telecom offers connectivity to all major carriers, Internet service providers, Internet backbones and ...
In the next five to ten years, millions, if not billions of things will become smarter. This smartness goes beyond connected things in our homes like the fridge, thermostat and fancy lighting, and into heavily regulated industries including aerospace, pharmaceutical/medical devices and energy. “Smartness” will embed itself within individual products that are part of our daily lives. We will engage with smart products - learning from them, informing them, and communicating with them. Smart produc...
More and more brands have jumped on the IoT bandwagon. We have an excess of wearables – activity trackers, smartwatches, smart glasses and sneakers, and more that track seemingly endless datapoints. However, most consumers have no idea what “IoT” means. Creating more wearables that track data shouldn't be the aim of brands; delivering meaningful, tangible relevance to their users should be. We're in a period in which the IoT pendulum is still swinging. Initially, it swung toward "smart for smar...
In his keynote at 19th Cloud Expo, Sheng Liang, co-founder and CEO of Rancher Labs, will discuss the technological advances and new business opportunities created by the rapid adoption of containers. With the success of Amazon Web Services (AWS) and various open source technologies used to build private clouds, cloud computing has become an essential component of IT strategy. However, users continue to face challenges in implementing clouds, as older technologies evolve and newer ones like Docke...
WebRTC sits at the intersection between VoIP and the Web. As such, it poses some interesting challenges for those developing services on top of it, but also for those who need to test and monitor these services. In his session at WebRTC Summit, Tsahi Levent-Levi, co-founder of testRTC, reviewed the various challenges posed by WebRTC when it comes to testing and monitoring and on ways to overcome them.
In his keynote at 18th Cloud Expo, Andrew Keys, Co-Founder of ConsenSys Enterprise, provided an overview of the evolution of the Internet and the Database and the future of their combination – the Blockchain. Andrew Keys is Co-Founder of ConsenSys Enterprise. He comes to ConsenSys Enterprise with capital markets, technology and entrepreneurial experience. Previously, he worked for UBS investment bank in equities analysis. Later, he was responsible for the creation and distribution of life sett...
SYS-CON Events announced today that Coalfire will exhibit at the 19th International Cloud Expo, which will take place on November 1–3, 2016, at the Santa Clara Convention Center in Santa Clara, CA. Coalfire is the trusted leader in cybersecurity risk management and compliance services. Coalfire integrates advisory and technical assessments and recommendations to the corporate directors, executives, boards, and IT organizations for global brands and organizations in the technology, cloud, health...
@ThingsExpo has been named the Top 5 Most Influential M2M Brand by Onalytica in the ‘Machine to Machine: Top 100 Influencers and Brands.' Onalytica analyzed the online debate on M2M by looking at over 85,000 tweets to provide the most influential individuals and brands that drive the discussion. According to Onalytica the "analysis showed a very engaged community with a lot of interactive tweets. The M2M discussion seems to be more fragmented and driven by some of the major brands present in the...
SYS-CON Events announced today that Transparent Cloud Computing (T-Cloud) Consortium will exhibit at the 19th International Cloud Expo®, which will take place on November 1–3, 2016, at the Santa Clara Convention Center in Santa Clara, CA. The Transparent Cloud Computing Consortium (T-Cloud Consortium) will conduct research activities into changes in the computing model as a result of collaboration between "device" and "cloud" and the creation of new value and markets through organic data proces...
The Internet of Things (IoT), in all its myriad manifestations, has great potential. Much of that potential comes from the evolving data management and analytic (DMA) technologies and processes that allow us to gain insight from all of the IoT data that can be generated and gathered. This potential may never be met as those data sets are tied to specific industry verticals and single markets, with no clear way to use IoT data and sensor analytics to fulfill the hype being given the IoT today.
SYS-CON Events announced today that MathFreeOn will exhibit at the 19th International Cloud Expo, which will take place on November 1–3, 2016, at the Santa Clara Convention Center in Santa Clara, CA. MathFreeOn is Software as a Service (SaaS) used in Engineering and Math education. Write scripts and solve math problems online. MathFreeOn provides online courses for beginners or amateurs who have difficulties in writing scripts. In accordance with various mathematical topics, there are more tha...
@ThingsExpo has been named the Top 5 Most Influential Internet of Things Brand by Onalytica in the ‘The Internet of Things Landscape 2015: Top 100 Individuals and Brands.' Onalytica analyzed Twitter conversations around the #IoT debate to uncover the most influential brands and individuals driving the conversation. Onalytica captured data from 56,224 users. The PageRank based methodology they use to extract influencers on a particular topic (tweets mentioning #InternetofThings or #IoT in this ...
SYS-CON Events announced today that SoftNet Solutions will exhibit at the 19th International Cloud Expo, which will take place on November 1–3, 2016, at the Santa Clara Convention Center in Santa Clara, CA. SoftNet Solutions specializes in Enterprise Solutions for Hadoop and Big Data. It offers customers the most open, robust, and value-conscious portfolio of solutions, services, and tools for the shortest route to success with Big Data. The unique differentiator is the ability to architect and ...
SYS-CON Events announced today that Niagara Networks will exhibit at the 19th International Cloud Expo, which will take place on November 1–3, 2016, at the Santa Clara Convention Center in Santa Clara, CA. Niagara Networks offers the highest port-density systems, and the most complete Next-Generation Network Visibility systems including Network Packet Brokers, Bypass Switches, and Network TAPs.
SYS-CON Events announced today that Embotics, the cloud automation company, will exhibit at the 19th International Cloud Expo, which will take place on November 1–3, 2016, at the Santa Clara Convention Center in Santa Clara, CA. Embotics is the cloud automation company for IT organizations and service providers that need to improve provisioning or enable self-service capabilities. With a relentless focus on delivering a premier user experience and unmatched customer support, Embotics is the fas...
In an era of historic innovation fueled by unprecedented access to data and technology, the low cost and risk of entering new markets has leveled the playing field for business. Today, any ambitious innovator can easily introduce a new application or product that can reinvent business models and transform the client experience. In their Day 2 Keynote at 19th Cloud Expo, Mercer Rowe, IBM Vice President of Strategic Alliances, and Raejeanne Skillern, Intel Vice President of Data Center Group and ...
Virgil consists of an open-source encryption library, which implements Cryptographic Message Syntax (CMS) and Elliptic Curve Integrated Encryption Scheme (ECIES) (including RSA schema), a Key Management API, and a cloud-based Key Management Service (Virgil Keys). The Virgil Keys Service consists of a public key service and a private key escrow service. 

Data is the fuel that drives the machine learning algorithmic engines and ultimately provides the business value. In his session at Cloud Expo, Ed Featherston, a director and senior enterprise architect at Collaborative Consulting, will discuss the key considerations around quality, volume, timeliness, and pedigree that must be dealt with in order to properly fuel that engine.
Fifty billion connected devices and still no winning protocols standards. HTTP, WebSockets, MQTT, and CoAP seem to be leading in the IoT protocol race at the moment but many more protocols are getting introduced on a regular basis. Each protocol has its pros and cons depending on the nature of the communications. Does there really need to be only one protocol to rule them all? Of course not. In his session at @ThingsExpo, Chris Matthieu, co-founder and CTO of Octoblu, walk you through how Oct...