File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
http://aspose.com/file-tools
The moose likes Websphere and the fly likes Why is IBM HTTP Server needed with WebSphere 6.1? Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Products » Websphere
Bookmark "Why is IBM HTTP Server needed with WebSphere 6.1?" Watch "Why is IBM HTTP Server needed with WebSphere 6.1?" New topic
Author

Why is IBM HTTP Server needed with WebSphere 6.1?

Aylwin Cal
Greenhorn

Joined: Oct 02, 2012
Posts: 5
I realize this is a very newbie question so my apologies in advance. But I simply don't understand why IBM HTTP Server is needed when WebSphere (6.1) already has an embedded HTTP server. Or isn't it actually needed?

Would some be kind enough to explain?
Mikalai Zaikin
Ranch Hand

Joined: Jun 04, 2002
Posts: 3204
    
    5
The very basic explanation (could be more reasons):

1) Imagine you serve image for web site - WAS is slow - it can do this via some servlet sending binary response, while IHS (Apache) can do this natively, not through some Java code. So, main reason - IHS serves static content, and in pair with Web Plugin - IHS can understand which request goes to dynamic content (servlet) and forward this request to WAS.

2) You can setup some BASIC authentication (protected resources), or mod_rewrite rules (all what supported by Apache modules)

HTH,
MZ


Free SCDJWS 5.0 Study Guide - SCDJWS 5.0 Quiz (How to get SCDJWS 5.0 Quiz)
Java Platform, Enterprise Edition 6 Web Services Developer Certified Expert Exam Study Guide and Quiz
Aylwin Cal
Greenhorn

Joined: Oct 02, 2012
Posts: 5
Thank you very much for the reply! That makes sense.

Now I'd like to describe the specific environment I'm working with. We have WebSphere ND across multiple physical machines. Each machine has both WAS and IHS installed. All web applications are provided by WAS only (no static content). The only purpose of IHS is load balancing: port redirection and forwarding HTTP/HTTPS to WAS on each physical machine. Since IHS is running on each machine, each instance is doing load balancing toward WAS across all machines. Despite IHS though, another load balancer is still needed. In this case, we use LVS.

The need for LVS is clear to me as we obviously need a single access point to the web applications running on WAS. IHS though just seems like an unnecessary "middle man" that provides an extra layer of load balancing which I don't see the point for.

I understand now the need for IHS in other cases but I just feel that IHS is not needed in this case. Or am I missing something?
William P O'Sullivan
Ranch Hand

Joined: Mar 28, 2012
Posts: 859

Wow..

Anyway, it may be possible that even you don't think IHS is serving static content (css, gifs, etc.),
it may actually be caching the responses from WAS on first invocation.

This can be configured quite easily and really does improve performance.

If you are not caching and WAS is serving all static content as well as JEE requests, then I wish you luck!

WP
Paul Clapham
Bartender

Joined: Oct 14, 2005
Posts: 18541
    
    8

It's quite common for organizations with large internal networks (perhaps like yours) to protect them with a firewall. And so there's a strategy where you put the Websphere machines inside the firewall, to protect them from attacks over the web. When you do that, you also have to put a simple web server outside the firewall, whose job is mostly to pass requests on to the Websphere servers.
Aylwin Cal
Greenhorn

Joined: Oct 02, 2012
Posts: 5
William P O'Sullivan wrote:Anyway, it may be possible that even you don't think IHS is serving static content (css, gifs, etc.),
it may actually be caching the responses from WAS on first invocation.

This can be configured quite easily and really does improve performance.


Hmmm, interesting. I never thought of caching. How do I check if it's configured? httpd.conf looks pretty standard. In plugin-cfg.xml, I can see the load balancing configuration, server definitions and port redirections. I'm not sure what to look for that's related to caching.
Aylwin Cal
Greenhorn

Joined: Oct 02, 2012
Posts: 5
Paul Clapham wrote:It's quite common for organizations with large internal networks (perhaps like yours) to protect them with a firewall. And so there's a strategy where you put the Websphere machines inside the firewall, to protect them from attacks over the web. When you do that, you also have to put a simple web server outside the firewall, whose job is mostly to pass requests on to the Websphere servers.


In this case, there's no firewall. IBM HTTP Server and WebSphere Application Server are installed on the same physical servers. HTTP/HTTPS (port 80/443) reaches the physical servers, IHS then redirects to WAS (port 9080/9443) either on the same physical server or any of the other physical servers running the IHS-WAS combo.

Sorry to be a pain. I didn't build the system but I'm kinda tasked with maintaining it. So I'm just trying to understand what's going on and why certain things have been implemented this way.
Paul Clapham
Bartender

Joined: Oct 14, 2005
Posts: 18541
    
    8

Aylwin Cal wrote:Sorry to be a pain. I didn't build the system but I'm kinda tasked with maintaining it. So I'm just trying to understand what's going on and why certain things have been implemented this way.


No problem, questions are exactly what this forum is for.

I might speculate that your system is the way it is because the Websphere management and configuration guide (I don't remember the exact name) suggested that using a separate web server could be a good architectural decision. I'm a little surprised that the two servers are on the same physical machine, but then the document was nearly 1,000 pages long and reading it definitely led to glazing-over of the eyes. It wouldn't be difficult for an inexperienced Websphere architect (which I was one at the time I read that document) to make decisions that seemed like a good idea at the time.

Mikalai Zaikin
Ranch Hand

Joined: Jun 04, 2002
Posts: 3204
    
    5
Aylwin Cal wrote:
Paul Clapham wrote:It's quite common for organizations with large internal networks (perhaps like yours) to protect them with a firewall. And so there's a strategy where you put the Websphere machines inside the firewall, to protect them from attacks over the web. When you do that, you also have to put a simple web server outside the firewall, whose job is mostly to pass requests on to the Websphere servers.


In this case, there's no firewall. IBM HTTP Server and WebSphere Application Server are installed on the same physical servers. HTTP/HTTPS (port 80/443) reaches the physical servers, IHS then redirects to WAS (port 9080/9443) either on the same physical server or any of the other physical servers running the IHS-WAS combo.

Sorry to be a pain. I didn't build the system but I'm kinda tasked with maintaining it. So I'm just trying to understand what's going on and why certain things have been implemented this way.


Aylwin, please refer this redbook for differend WAS 6.1 concepts and designs. Specifically, you might be interested in "Topology" chapter.

(similar books are available for WAS 7.0, 8.0 and 8.5 if you will migrate to newer version later)

HTH,
MZ
Aylwin Cal
Greenhorn

Joined: Oct 02, 2012
Posts: 5
Mikalai Zaikin wrote:Aylwin, please refer this redbook for differend WAS 6.1 concepts and designs. Specifically, you might be interested in "Topology" chapter.


Thank you!!! I wasn't aware of this document. I can see clearly now that our system uses the "Horizontal scaling with IP sprayer topology" as described in section 5.7 under "Topology". IHS is installed on the same servers as WAS with the following explanation:

"Both Web servers perform load balancing and failover between the application servers in the cluster through the Web server plug-in. If any component on Server C or Server D fails, the other can continue to receive requests."

The above explanation is kind of obvious to me but it doesn't really say why the web servers (IHS) are needed. The IP sprayer (LVS, in our case) already performs load balancing and fail over should happen anyway between LB and WAS regardless of IHS. The purpose of IHS is clearer with the other topologies where IHS is installed on a different server on the opposite side of a domain firewall. But it's purpose is not so clear to me when IHS is installed on the same server as WAS is as in the case of "Horizontal scaling with IP sprayer topology" (and "Reverse proxy topology").

Yes, I realize now that there can be various reasons why IHS would be needed under certain conditions or applications. But in the absence of those certain conditions or applications, why is IHS still needed? For example, why couldn't we use the "Horizontal scaling topology" but replace IHS with a proper load balancer like IBM EDGE or LVS?

It seems that WAS can't exist without IHS and that brings me back to the question: why? Why is IHS an absolute must?
Paul Clapham
Bartender

Joined: Oct 14, 2005
Posts: 18541
    
    8

Aylwin Cal wrote:It seems that WAS can't exist without IHS and that brings me back to the question: why? Why is IHS an absolute must?


Well, it isn't an absolute must. I regularly connect to our Websphere machines directly (via port 9081 or some similar number) when I'm testing, rather than going through the web server which is officially in front of them. And I'm pretty sure (check the redbook) that you could configure Websphere to listen to port 80 rather than port 9081. I think it's just that architects would be embarrassed to implement Websphere in such a simple way.

Or to put it more politely, that would be an inflexible way of implementing it. If you had just one instance of Websphere and nothing else, then if you wanted to move to any other architecture, you would have to start by inserting a web server. (I say "a web server" and not "IHS" because other web servers such as Microsoft IIS can also be used.)
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Why is IBM HTTP Server needed with WebSphere 6.1?