In the previous blog I introduced the Web server layer above the Application Servers layer to take care of the URL redirect and also to act as Proxy/Cache server.
For this scenario we approached with a cluster of Apache and application servers which is separated by a firewall.
Assuming the existing scenario does not involve separate web server layer, the application server serves as both web and application server.
Following diagram gives an idea of the architecture explained.
In the below given diagram, when a user makes a request, the request first passes through the firewall and the load balancer server before it accesses the cluster of Apache servers, the appropriate Apache server then redirects it to the appropriate server for the request to be processed.
Here the load balancer can be hardware or a software load balancer.
Sequence of Request/Response in the new architecture
The above diagram can be divided into three layers
1. Load balancer
2. Cluster of Web Server Layer (Apache)
3. Cluster of SAP Web Application Server Layer
Let us have a look at the sequence of steps that follow when a user makes a request.
1. The request is scanned through the firewall and sent to the Load balancer server. The Load balancer which can be a hardware or software load balancer selects the appropriate Apache Server for processing the request based on the incoming load request.
2. Apache server has to be configured to redirect, the URL to the appropriate Application server. But in this case the request is again routed through a firewall before it is being processed by the application server (SAP Web Application server).
3. Finally the application server processes the request interacting with the database if required.
Here in the scenario the advantages are same as I had mentioned in my previous Blog with an additional layer of firewall making it more secured 1. Apache can act as a proxy for caching, so that the response time is reduced considerably.
2.Apache server can be made to interact with an LDAP server for the basic authentication keeping that layer of authentication separate.
3.Keeping the web server layer separate can take care of routing the http and https protocols separate, helping in load balancing and distributing the server loads.
4.Layering helps in improving capabilities the non-functional requirements that matter the most to the customers. The components of the layers do their functionalities instead of taking the responsibilities of other components.(web components to Web server and Enterprise components to Application server)
Summary & Conclusion
The approach what we have used here is one of possible ways to show case how we can use Apache as a proxy /cache server in a cluster environment with firewall between the web and the load balancer and between the application server(WAS) and the Apache web server