Recently we have moved our application from websphere to jboss application server.
IBM Http server (IHS) has front ended(proxy) the websphere application server.
Now we want to make changes to httpd.conf to make the IHS to front end the jboss. So whats the configuration to be done at IHS server to act like reverse proxy for JBOSS application server?
There's really no reason to do this, because IBM HTTP Server is only ever supported when it's used with IBM software that it was bundled with.
If you do do it, you're nearly alone in doing so and w/o the assistance of IBM.
Technically, you could use mod_proxy_balancer and mod_proxy_http just like any other Apache-based server, but they're not as well maintained because they are only used in one very obscure/withdrawn IBM product that bundles IHS. It's a basic proxy configuration for Apache and not really worth going into detail here.
The best option for JBoss AS/Wildfly application server proxy for you is Apache HTTP Server with mod_cluster.
Community
You can give it a try with Fedora: mod_cluster package
And there is an example on how to compile it from sources and configure it with Apache HTTP Server from scratch: example, recorded terminal session. It also operates on Windows and Solaris.
Why mod_cluster over mod_jk/mod_proxy?
The main benefit of mod_cluster over mod_proxy*balancer / mod_jk solutions is that both JBoss AS and Wildfly contain mod_cluster subsystems that automatically report deployed contexts and life cycle events to the mod_cluster balancer in Apache HTTP Server. JBoss AS/Wildfly workers join Apache HTTP Server balancer automatically, you don't have to reconfigure anything in your httpd.conf nor restart httpd when you add another JBoss AS/Wildfly worker.
Current load report is also a part of these service messages. One may use several different load metrics within JBoss AS/Wildfly, e.g. heap utilization, CPU load, number of currently open sessions, or one could easily implement a custom load metric.
The result is a high-throughput dynamic load balancer that takes into account actual utilization of your JBoss AS/Wildfly workers.
Commercial support
If you need a fully supported solution for mod_cluster balancer, both Red Hat JBoss Web Server, i.e. Apache HTTP Server, mod_cluster, OpenSSL, Tomcat 7, Tomcat 8, mod_jk, ModSecurity, and Red Hat JBoss Enterprise Application Platform (EAP), i.e. application server built on Wildfly 10+ or AS 7+, entitle you to fully supported mod_cluster balancer fronting either Tomcat workers or EAP workers.
Full Disclosure: I am an engineer at Red Hat
Related
We need to setup JBOSS Server , Load Balancer for our Java/J2EE application in production server for approx 5000 users.
Can someone please elaborate on infrastructure required , like suitable Hardware ?
What kind on Web Server , then Application server like JBOSS EAP , How to setup load balancer , enable audit logs. Configure clustering, fail over and load balancing. Configure Web Connectors and web properties in JBoss applications.
High availability and disaster recovery. These topics are very important.
I am actually a developer , have never configured deployment environment in production as an Administrator. I tried to search similar post , but got no results. Please guide the architecture as guideline. I will explore it further
You have asked about a huge range of topics here. You can find guides on how to set up and configure most of them in the JBoss EAP documentation, which is available here: https://access.redhat.com/documentation/en-us/red_hat_jboss_enterprise_application_platform/
I'm using JBoss AS7 and can see metrics in the following link in the Admin console in my build environment.
http://localhost:10090/console/App.html#sy-metrics
But we don't have the console running in Production nor JMX.
Does JBoss store the metrics somewhere in the server installation which can be extracted for use? It will be useful to find out the services and the methods which are the biggest bottlenecks so that we can improve them.
There's no store of server metrics - you can use something like JBoss Operations Network (https://www.redhat.com/en/technologies/jboss-middleware/operations-network) to collect them, or if you enable JMX you could probably collect them in Prometheus.
I'm not sure whether you are using Fuse 6 or whether you are using community SwitchYard on top of AS 7 - if you're using Fuse 6, you can probably access the JMX beans through hawtio's jolokia instance.
If application server instances reside on different machines ?
I mainly want to know the configurations guide on the jboss eap server side.
I wrote this how-to a while ago on our project wiki: JBoss AS instances in Domain mode with mod_cluster load balancer. Please, check it out and ask away if it didn't help.
I would like to avoid dependency on ActiveMQ. Is there a way to make JBossFuse to use WebSphereMQ ? (I'm assuming activeMQ is required for framework to run - internal dependency)
The description on jboss fuse site reads like..
Core messaging is provided by Apache ActiveMQ, services framework (SOAP, XML/HTTP, RESTful HTTP)...
PS:
Arguements like "it would be innefficient, expensive" etc, need not be considered at this stage. Reason for prefering WebSphereMQ is beyond my control.
No you can use JBoss Fuse without ActiveMQ at all. For example the minimal distribution does not come with AMQ pre-installed.
JBoss Fuse allows you to slice and dice what you want pre-installed.
If you want to use WebSphereMQ then you can do that, though that would be under the assumption that WebSphereMQ as a server is running in another JVM / box. And that JBoss Fuse would act as a client to that broker. If so you can install the WebSphereMQ Java Client JARs in Jboss Fuse and use that.
I have a website comprising of a server and client. The server is an EAR, and I'm using JBoss to deploy it. The frontend is a series of html/js/css files that call into the backend via ajax.
I can deploy the frontend to an apache (2.2) server, and it works fine, however, I have a requirement that they both be on the same port (with different contexts). How do I deploy my static files to jboss in their own context? It also needs to be able to use mod_rewrite (or something similar).
Thanks
You could use Apache as the front end web server for the Jboss app server behind it. You can deploy all your content to Jboss and configure Apache to manage it.
Or you can use Apache to serve the static content and still use it as the front end for Jboss, configuring Apache to map your Jboss port to Apache. You can configure it to use different contexts if you need to.
Take a look here