WebSphere Application Server can use HTTP to route requests from a Web server to Application Servers on remote machines.
In the diagram, Machine B hosts the Web server and the WebSphere Web server plug-in, and receives HTTP requests from clients. The Web server plug-in forwards the requests to an HTTP transport in the Application Server on Machine C, using HTTP or HTTPS protocol.
Variations on this configuration include vertical scaling of the application servers by creating new application servers on the same machine. Alternatively, for a horizontal scaling scenario, add machines (D, E, ....N) running application servers to the environment.
The Web server plug-in supports Network Address Translation (NAT) firewalls. See Port number settings in WebSphere Application Server versions for a list of default ports that WebSphere Application Server uses. See Default coexistence settings for port numbers for a list of default port settings in the coexistence panel. The installer program for the Application Server displays the coexistence panel when it detects another installation of Application Server.
Load balancing support
The Web server plug-in is fully integrated with WebSphere Application Server workload management and the clustering facility. HTTP transport balances loads within a cluster.
If you are using a third party load balancer in between the plug-in and the Application Server for HTTP requests that are not subject to an existing affinity, you can override the round robin algorithm that determines where to route a request. To override this algorithm, specify the IP address of your third party load balancer on the ClusterAddress element within the ServerCluster tag in plugin-cfg.xml file. Specifying this IP address delegates load balancing for the servers within this cluster to the third party load balancer.
If session persistence is not enabled, which is the default, requests are distributed among all available cluster members using a strict round-robin policy. Each cluster member gets the next request in turn. The only exception is when a cluster member is added or restarted. See the failover support information later in this topic for details.
If session affinity is enabled, requests are distributed as follows:
Be aware that there is no guarantee that the same cluster member is used for all requests within a session. You cannot always maintain session affinity in situations where the number of available cluster members changes during the lifetime of a session. The Session Manager session clustering facility ensures that session state is not lost if requests are switched to another cluster member during a session. In any case, applications that require available session information across multiple client invocations must store session information in a database.
Failover support
The Web server plug-in automatically handles failover and changes in the number of available cluster members.
Typical use
The Web server plug-in has the following advantages:
The Web server plug-in has the disadvantage of requiring at least one firewall port, more if multiple Application Server cluster members are configured, or WebSphere Application Server security is used on the machine hosting the Web server.
A variation of the Web server plug-in topology occurs when an instance of the Application Server runs on the same machine as the Web server. Such a configuration is illustrated in the following figure.
Such configurations can direct client requests to additional application server cluster members on other machines. This example redirects client requests to both the Application Server instance running on Machine A and the cluster members running on Machine B. You can administer all Application Server instances from the deployment manager node, which can exist on Machine A, Machine B, or another machine. The deployment manager communicates with the node agent server process on each machine, to coordinate configuration changes.
Typical use
This topology is recommended only in situations where hardware limitations prevent you from hosting the Web server on a dedicated machine.
In many production environments, one set of servers is configured to run Web servers and another set of servers is configured to run Application Servers. This configuration lets you add capacity in a production environment. You might also use this topology to more fully replicate a production configuration in a test environment. This topology provides a means of load distribution between a machine hosting both the Web server and Application Server, and machines hosting just the Application Server.
You can also use this topology to distribute the workload in situations where there are a limited number of machines.