Configuring Nex-Gen Web Load Balancer

Similar documents
Load Balancing using Pramati Web Load Balancer

Configuring Microsoft IIS 5.0 With Pramati Server

No.1 IT Online training institute from Hyderabad URL: sriramtechnologies.com

Configuring Apache HTTP Server With Pramati

EVALUATION ONLY. WA2088 WebSphere Application Server 8.5 Administration on Windows. Student Labs. Web Age Solutions Inc.

DEPLOYMENT GUIDE Version 1.1. Deploying the BIG-IP LTM v10 with Citrix Presentation Server 4.5

Working With Virtual Hosts on Pramati Server

CHAPTER 1 - JAVA EE OVERVIEW FOR ADMINISTRATORS

NEFSIS DEDICATED SERVER

DEPLOYMENT GUIDE Version 1.0. Deploying the BIG-IP LTM with Apache Tomcat and Apache HTTP Server

Configuring Load Balancing

SETUP SSL IN SHAREPOINT 2013 (USING SELF-SIGNED CERTIFICATE)

13.1 Backup virtual machines running on VMware ESXi / ESX Server

LOAD BALANCING TECHNIQUES FOR RELEASE 11i AND RELEASE 12 E-BUSINESS ENVIRONMENTS

User Manual. Onsight Management Suite Version 5.1. Another Innovation by Librestream

Guide to the LBaaS plugin ver for Fuel

DEPLOYMENT GUIDE DEPLOYING THE BIG-IP LTM SYSTEM WITH CITRIX PRESENTATION SERVER 3.0 AND 4.5

Setup Guide Access Manager 3.2 SP3

Oracle WebLogic Server 11g Administration

Siteminder Integration Guide

REQUIREMENTS AND INSTALLATION OF THE NEFSIS DEDICATED SERVER

Deployment Guide Microsoft IIS 7.0

TrueSight Operations Management Monitoring Studio

TIBCO Runtime Agent Domain Utility User s Guide Software Release November 2012

How To Configure Virtual Host with Load Balancing and Health Checking

BlackBerry Enterprise Service 10. Version: Configuration Guide

Apache Tomcat. Load-balancing and Clustering. Mark Thomas, 20 November Pivotal Software, Inc. All rights reserved.

SIEMENS. Teamcenter Web Application Deployment PLM

FileMaker Server 11. FileMaker Server Help

DEPLOYMENT GUIDE Version 1.1. Deploying F5 with IBM WebSphere 7

Architecture and Data Flow Overview. BlackBerry Enterprise Service Version: Quick Reference

NSi Mobile Installation Guide. Version 6.2

Managing Virtual Servers

USER GUIDE WEB-BASED SYSTEM CONTROL APPLICATION. August 2014 Phone: Publication: , Rev. C

TIBCO Spotfire Web Player 6.0. Installation and Configuration Manual

Nex-Gen Web Load Balancer

Exploiting the Web with Tivoli Storage Manager

Reference and Troubleshooting: FTP, IIS, and Firewall Information

DEPLOYMENT GUIDE Version 1.2. Deploying the BIG-IP system v10 with Microsoft Exchange Outlook Web Access 2007

Product Manual. MDM On Premise Installation Version 8.1. Last Updated: 06/07/15

XIA Configuration Server

Deploying Load balancing for Novell Border Manager Proxy using Session Failover feature of NBM and L4 Switch

Eucalyptus User Console Guide

Secure Messaging Server Console... 2

Managing Qualys Scanners

Blue Coat Security First Steps Solution for Integrating Authentication

18.2 user guide No Magic, Inc. 2015

Gigabyte Content Management System Console User s Guide. Version: 0.1

Setup Guide Access Manager Appliance 3.2 SP3

Funambol Exchange Connector v6.5 Installation Guide

How To Configure An Orgaa Cloud Control On A Bigip (Cloud Control) On An Orga Cloud Control (Oms) On A Microsoft Cloud Control 2.5 (Cloud) On Microsoft Powerbook (Cloudcontrol) On The

Improving Microsoft Exchange 2013 performance with NetScaler Hands-on Lab Exercise Guide. Johnathan Campos

Managing Identities and Admin Access

FioranoMQ 9. High Availability Guide

ALOHA LOAD BALANCER MANAGING SSL ON THE BACKEND & FRONTEND

FileMaker Server 14. FileMaker Server Help

ELIXIR LOAD BALANCER 2

Crawl Proxy Installation and Configuration Guide

Load Balancing. Outlook Web Access. Web Mail Using Equalizer

DEPLOYMENT GUIDE Version 1.2. Deploying F5 with Oracle E-Business Suite 12

Resonate Central Dispatch

White Paper DEPLOYING WDK APPLICATIONS ON WEBLOGIC AND APACHE WEBSERVER CLUSTER CONFIGURED FOR HIGH AVAILABILITY AND LOAD BALANCE

FileMaker Server 13. FileMaker Server Help

Using IIS Application Request Routing to Publish Lync Server 2013 Web Services

Configuring SSL VPN on the Cisco ISA500 Security Appliance

What is the Barracuda SSL VPN Server Agent?

Introduction to Mobile Access Gateway Installation

Integrating WebSphere Portal V8.0 with Business Process Manager V8.0

WatchDox SharePoint Beta Guide. Application Version 1.0.0

FTP, IIS, and Firewall Reference and Troubleshooting

CA Performance Center

FileMaker Server 10 Help

RSA Security Analytics

1 of 24 7/26/2011 2:48 PM

How To Use Netiq Access Manager (Netiq) On A Pc Or Mac Or Macbook Or Macode (For Pc Or Ipad) On Your Computer Or Ipa (For Mac) On An Ip

Enterprise Manager. Version 6.2. Installation Guide

Sysax Multi Server User manual

This section is intended to provide sample configurations and script examples common to long-term operation of a Jive SBS installation.

Table of Contents. Open-Xchange Authentication & Session Handling. 1.Introduction...3

2X ApplicationServer & LoadBalancer & VirtualDesktopServer Manual

CA SiteMinder. Policy Server Management Guide. r6.0 SP6. Second Edition

CumuLogic Load Balancer Overview Guide. March CumuLogic Load Balancer Overview Guide 1

How to configure HTTPS proxying in Zorp 5

FileMaker Server 12. FileMaker Server Help

Chapter 1 - Web Server Management and Cluster Topology

Brocade Virtual Traffic Manager and Magento Deployment Guide

NetSpective Global Proxy Configuration Guide

2X ApplicationServer & LoadBalancer Manual

Configuration Worksheets for Oracle WebCenter Ensemble 10.3

Jobs Guide Identity Manager February 10, 2012

Sophos for Microsoft SharePoint startup guide

2X ApplicationServer & LoadBalancer Manual

Deploying the BIG-IP System v10 with Oracle Application Server 10g R2

Configuring MailArchiva with Insight Server

Load balancing Microsoft IAG

Enabling secure communication for a Tivoli Access Manager Session Management Server environment

Load Balancing VMware Horizon View. Deployment Guide

Load Balancing Microsoft Sharepoint 2010 Load Balancing Microsoft Sharepoint Deployment Guide

Setting Up B2B Data Exchange for High Availability in an Active/Active Configuration

F-Secure Messaging Security Gateway. Deployment Guide

Transcription:

Configuring Nex-Gen Web Load Balancer Table of Contents Load Balancing Scenarios & Concepts Creating Load Balancer Node using Administration Service Creating Load Balancer Node using NodeCreator Connecting to the running Load Balancer instance through Administration Service Configuring Back-end nodes to the Web Load Balancer Adding a URL Pattern Configuring Backend validation configuration Configuring Keep-Alive timeout for Pramati Server Configuring Channel Properties o o Bind Address Configuring X.509 Certificates for HTTPS Channel Monitoring Load balancer o o Channels Nodes Pramati Server provides a software web load balancing solution. It leverages non-blocking I/O to scale to tens of thousands of HTTP connections for a single instance. Pramati web load balancer can be configured to exist as a separate process or can be embedded into the Pramati Application Server process. Pramati Server s Load Balancer distributes load among a group of nodes. While distributing load, it takes into consideration factors like session stickiness, request header stickiness etc., hence sending session-based requests to the node where the session was initiated. It also acts like a normal Load Balancer, a URI-based redirector, and also a failover node. This chapter describes the steps to create, modify configuration and delete Pramati Web Load Balancer using the Administration Service. Before getting into the details of setting up load balancing, let us discuss a few scenarios. To know more about the concepts and architecture of the Web Load Balancer, refer to the chapter Request Dispatcher Architecture, in the Pramati Server Technical Reference Guide. Copyright 2013, Pramati Technologies Private Limited. 1

Load Balancing Scenarios & Concepts This section discusses a number of scenarios where the Request Dispatcher in Load Balancer can be used. A typical load balancing scenario is depicted by the following diagram: Node A node represents the backend server instance to which the load balancer dispatches the request. A node can be an instance of Pramati server, Apache server or any other web server. Every node managed by the Load balancer needs to have a unique name, mapped to a combination of IP address Copyright 2013, Pramati Technologies Private Limited. 2

and Web port. A node needs to be configured with backup nodes, to handle failover when a node is dead or cannot be reached. A node manages the connection cache and worker threads required for request dispatch. Channel A channel is an open socket to listen HTTP requests. Every channel managed by the Load balancer needs to have a unique name, mapped to a combination of Listening address and Listening port. Pramati Load balancer supports three types of channels: HTTP channel - Listens to HTTP requests on non-secured socket. HTTPS channel - Listens to HTTP request on secured socket. AJP Channel - Listens to AJP requests. Node Selections A node selection defines a host pattern and a list of entries containing URL Mappings mapped to target nodes. When the load balancer receives a request, it resolves to a node selection by matching the hostname pattern and the URL pattern, to identify the target nodes. URL Mapping A URL mapping consists of a list of target nodes and node choosers. Node choosers filter the most appropriate node to which the request needs to be dispatched, from the list of target nodes. Workers can be configured for a given URL mapping, which alter the request or response. The upstream request headers or the downstream response headers can be modified using the routing configuration defined under a URL Mapping. Node Choosers Node Choosers are rules which are applied to select the serving node from a list of target nodes. A URL Mapping contains stack of node choosers arranged in an order, each participating in filtering the target nodes. A node chooser can either filter the list or select the serving node without the necessity to move to the next node chooser. If no serving node is selected by any of the node chooser, the Load Balancer would select one of the filtered nodes as the serving node. Stickiness means selecting the same serving node, which was used for the previous requests. This is important because sometimes the request needs to be dispatched to the same server always because some state has been stored in the backend node. Pramati Load Balancer supports different types of stickiness parameters which are discussed below. Copyright 2013, Pramati Technologies Private Limited. 3

Pramati Load Balancer comes with a pre-defined set of Node Choosers, listed below: STRATEGY_BASED Uses an algorithm to select the serving node from a list of target nodes. Usually this node chooser is applied at the end of the selection process. There are several strategies which can be applied with this node chooser: 1. RANDOM - Random selection of one of the given nodes as the serving node. 2. ROUND_ROBIN Use round robin mechanism to select the serving node. 3. WEIGHTED Selects the serving node based on assigned node weights. Every node gets the number of requests based on the weight given. 4. WEIGHTED_ROUND_ROBIN Similar to WEIGHTED strategy but in a round robin fashion. 5. FASTEST Selects the node which has the fastest processing time. 6. MIN_REQUESTS Selects the node which has served less number of requests. 7. MAX_REQUESTS Select the node which has served max number of requests. CLIENT_ADDRESS_STICKINESS This is a stickiness node chooser. The node which was previously used to serve the same client address is selected. COOKIE_STICKINESS - This is a stickiness node chooser. The node which was previously used to serve the same cookie name and value is selected. HTTP_PARAMETER_STICKINESS This is a stickiness node chooser. The node which was previously used to serve the same HTTP parameter and value is selected. HEADER_STICKINESS - This is a stickiness node chooser. The node which was previously used to serve the same HTTP header name and value is selected. SERVLET_SESSION_STICKINESS - This is a stickiness node chooser. The node which was previously used to serve the same JSESSIONID value is selected. QUERY_PARAMETER_STICKINESS - This is a stickiness node chooser. The node which was previously used to serve the same HTTP query parameter and value is selected. USERNAME_STICKINESS - This is a stickiness node chooser. The node which was previously used to serve the same user name in Authentication header is selected. COOKIE_AFFINITY - When a request comes to LB, the current serving node is sent as a Cookie to the client. When subsequent request comes with the same cookie, the node name which is set as the cookie value is selected. FAILOVER Failover is a special node chooser which is used for failover, when error occurs while dispatching the request. Failover node chooser selects one of the backup nodes for request dispatch. SCRIPTED - Scripted node chooser uses algorithms written in scripting languages for node selection. Pramati Load Balancer supports the JDK supported scripting languages (currently JavaScript is supported). The advantage with scripted node chooser is that the algorithm written in a script file can be changed at runtime which is picked up automatically. CUSTOM One can write node choosing algorithm in a java class and plug-in as a custom node chooser. Copyright 2013, Pramati Technologies Private Limited. 4

The diagram below shows how the Servlet Session Stickiness node choosers works: Worker A worker can be configured for a URL Mapping which can alter the request or response. It can either add/remove a header or alter the body of the request or response. Worker can be written as a Java class or in a scripting language supported by JDK. The advantage with scripted worker is that the code written in a script file can be changed at runtime which is picked up automatically. Copyright 2013, Pramati Technologies Private Limited. 5

Creating Load Balancer Node using Administration Service Adding Load Balancer Node To add a Load Balancer node: 1 Start the Administration Service. 2 Click Load Balancer in the Explore panel. The Add Load Balancer Node page appears in the Display panel. 3 Enter the following details: Table 1: Details needed for configuring a Load Balancer Fields Name Host Lookup Port Description Name for the Load Balancer, say, demo_load_balancer. The Host machine name (IP) on which the Load Balancer is to be configured, say, 192.168.1.143. This can be any machine in the LAN where the Server Administration service is running. The Lookup Port on the host machine on which the Load Balancer starts, say 9191. HTTP Port The HTTP Port on which the Web container is started, say, 8181. Management Port The Port on which Load balancer s administration console application runs HTTPS Port The HTTPS Port on which the Web container is started, say, 443. This is used for secure communication. Copyright 2013, Pramati Technologies Private Limited. 6

Optionally enable HTTPS for secure communication, and click Save. A new server instance demo_load_balancer will be created on the specified host with the given port details. This takes you back to the Administration Service main page where the new server appears in the list of managed servers. Viewing Load Balancer Details To view the details for the Load Balancer, click its name that is provided as a link on the Service page. This takes you to the Home > Load Balancer screen. Starting Load Balancer To start the Server: 1 On the Administration Service main page, click Start against the required server. 2 The Home > Load Balancer Node page appears. 3 The fields Name, Host, Lookup Port, and HTTP Port, on which the Web Server was started, cannot be edited. These values are the same that were used while adding the Server, and are displayed as default. 4 You need to provide the following details: Copyright 2013, Pramati Technologies Private Limited. 7

Table 2: Details needed for starting a Server Fields Realm Username Password JVM options Description Provide here the realm name. By default, this appears as system. Provide here the user name for the specified realm. By default, this appears as root for the system realm. Provide here the password for authenticating the user name. For the user name root, the default password is pramati. Provide here the JVM options, if you want to pass any Java options. Creating Load Balancer Node using NodeCreator A Load Balancer node can be created using the NodeCreator utility as shown below: NodeCreator.bat/NodeCreator.sh -createlb -name weblb -ip localhost -namingport 9191 -httpport 80 In the above example, a node named weblb is created Value name ip namingport httpport Description Name(s) of the nodes. In case of a cluster, the names are separated by a comma,. The IP of the machine on which this node is being created. The default value is local host. In case of a cluster, the IPs are separated by a comma,. Naming port(s) of the nodes. In case of a cluster, the ports are separated by a comma,. HTTP port(s) of the nodes. In case of a cluster, the ports are separated by a comma,. Copyright 2013, Pramati Technologies Private Limited. 8

Connecting to the running Load Balancer instance through Administration Service Connecting to Load Balancer To connect to the Server: 1 Once you start the Server, the started Server is shown as a blue icon, and Start is replaced by Connect. 2 Clicking Connect takes you to the login screen for the Console. 3 Enter the user name as root and password as pramati. Click Login. 4 The Console Home page appears. You can see the configuration details of the connected Server in the Server Configuration section. Stopping Load Balancer To stop a connected server, click Stop in the Console. To exit from the Console, click Logout. In the Administration Service main page, the status appears as stopped. Note: You must explicitly refresh the main page to verify the status. Removing Load Balancer You can remove a Load Balancer only if it is not running. To remove a Load Balancer: 1 On the Administration Service main page, select the Load Balancer that is to be removed. 2 Click Delete. This deletes the selected Load Balancer Copyright 2013, Pramati Technologies Private Limited. 9

Configuring Back-end nodes to the Web Load Balancer Adding back-end node to Web Load Balancer After connecting to the Web Load balancer instance, the following console page shows up A node represents the server to which the load balancer dispatches the request. A node can be Pramati server, Apache server or any other web server. Every node managed by the Load balancer needs to have a unique name assigned by the Load Balancer administrator, mapped to a combination of IP-Address and Web-port. Clicking +Add button under Configured Nodes section of the LB Home screen takes you to Create Node screen which is as shown below: Copyright 2013, Pramati Technologies Private Limited. 10

You need to provide the following details: Value Name Host Address Port Description Name of the node. Should be unique which identifies the server to which the load balancer has to dispatch the requests. The host address of the backend server. The Http port of the backend server After providing the above details, click Save button to save the node configuration. This will take you LB Home screen with the configured node listed under Configured Nodes section. Copyright 2013, Pramati Technologies Private Limited. 11

Starting back-end node Select the newly configured node and click Start button under Configured Nodes to start the newly configured backend node. Mapping back-end node to Node Selections Node Selections are the decision-makers for the Web Load Balancer. The node selection module comprises of a URL patterns mapped to target nodes. Whenever a request matches the given node selection and url pattern, the request is dispatched to one of target node using the node choosers configured for that url pattern. Click the +Add button under Configured Node Selections to add a new node selection. This will take you to the screen as shown below: Copyright 2013, Pramati Technologies Private Limited. 12

You need to provide the following details: Value Name Host Pattern Protocols Description Name of the node selection The pattern of the Host header which should be a regular expression. This node selection is applicable to the requests having the Host header matching this pattern. This node selection is applicable to the selected protocols. Copyright 2013, Pramati Technologies Private Limited. 13

Adding a URL Pattern You need to provide the following details: Value Name Pattern Target Type Selected Target Nodes Description Name of the url pattern The pattern of the request urls which are dispatched to the target nodes of this url mapping. The type of the target to which the requests are dispatched. By default it is Nodes which mean backend nodes. The list of selected nodes to which the request should be dispatched. After providing the above details, click Save button to save the url pattern, which takes you to the node selection screen as shown below: Copyright 2013, Pramati Technologies Private Limited. 14

After adding url patten, click Save to save the node selection, which takes you the Load balancer home screen as shown below: After done with adding node and mapping the node with the node selection, restart the load balancer to apply changes. Copyright 2013, Pramati Technologies Private Limited. 15

Configuring Backend validation configuration A node can be Pramati server, Apache server or any other web server. A node is validated at regular intervals to know if the node is alive or dead. The validation is done by accessing a URL on the backend server and checking if the received response has expected status code. Following are the steps to modify the validation configuration for a backend server. Clicking Setting button for the node under Configured Nodes section of the LB Home screen takes you to edit Node screen. Scroll to the Validation Configuration section which looks like below: Copyright 2013, Pramati Technologies Private Limited. 16

Click the Settings button on the right hand side of the Validation Configuration header which takes you to modify screen which looks like below: Select Create New option and enter the following details. Value Validation Interval Http Method Validation URL Expected Status Description The interval at which the server is pinged to check if it is alive or not. The http method to be used while making the validation request. The URL which is accessed to validate the backend server. The status which is expected in the response. Save the validation configuration by clicking the Save button. Save the node. Restart the Load Balancer to apply the changes. Copyright 2013, Pramati Technologies Private Limited. 17

Configuring Backend Server Keep-alive timeout When connection cache is enabled in the backend node, the socket connections to the backend server are kept in a pool for reuse. The sockets in the pool should be valid till they are acquired again for use. Every backend node will validate the sockets in the pool by pinging the backend server for every given refresh interval. To have the sockets in the pool valid, the keep-alive timeout value in the backend server should be high enough to keep the sockets alive, even if the socket is idle in the pool between refresh intervals. Steps to modify keep-alive timeout configuration for Pramati Server is explained below. To modify the same for other server, look at their respective documentation. Configuring Keep-Alive timeout for Pramati Server To change the keep-alive timeout connect to the admin console of the backend server. Select Configure>Web Server from the left navigation bar. Scroll to the Socket Properties on the details page on the left side which look like shown below: Copyright 2013, Pramati Technologies Private Limited. 18

Click the edit button on the right side of the Socket Properties section. It will open the edit screen which looks like below: Change the Keep-Alive Timeout value to higher value. The suggested value is ((n * refresh_time_of_lb_socket) - 1). For example, if the refresh time is 30,000 by default, the suggested value is 119,000 ms. Click Save button after making the changes. Copyright 2013, Pramati Technologies Private Limited. 19

Configuring Channels For The Load Balancer To configure properties of a channel for the load balancer, login to the admin console and navigate to Configure > Load Balancer. Here under the section Configured Channels you can either add new channels by clicking on the Add button or you can edit existing channels by clicking on the image corresponding to the channel in Settings column. Value Name Listen Address Listen Port Channel Type Description A unique name for the channel. (Mandatory) The hostname on which we want to bind the channel. The port number of which we want the channel to listen. (Mandatory) Whether you want it to be a HTTP, HTTPS or AJP channel. (Mandatory, Default is HTTP) Configuring the Bind Address Bind address can only be set while creating the channel. To set the bind address for a new channel, click on Add on the Configure Load Balancer page and enter the following details and click on Save Copyright 2013, Pramati Technologies Private Limited. 20

Once you have saved the channel, you can see the channel in the main page. By default the channel will not be started. You will have to start it in order to receive client requests. To start it, select the new channel and click on Start. Configuring Security Certificates For HTTPS Channels To configure HTTPS channels, an additional step is required to configure SSL. To add the SSL configuration you can click on the Settings icon, in SSL Configuration section at the Add Channel page after you have chosen the HTTPS as the channel type. In the SSL configuration page, you can either use the default configuration or modify detail as per your requirements as shown below. Copyright 2013, Pramati Technologies Private Limited. 21

You can also enable ciphers with higher encryption strength. Copyright 2013, Pramati Technologies Private Limited. 22

Monitoring The Load Balancer To monitor load balancer via the admin console, navigate to Monitor -> Load Balancer. To monitor load balancer via command line, you can either use the shell that you used to start load balancer or you can use remoteshell.sh / remoteshell.bat as below $SEVER_HOME/server/bin>sh remoteshell.sh -node <NAME_OF_LOAD_BALANCER_NODE> Statistics For A Channel Via Admin Console: In the monitor page click on the respective link for the channel. Copyright 2013, Pramati Technologies Private Limited. 23

Via Command Line: In the command line type channels. This will display the list of commands available for channels. Type list to list the channels. Type select <CHANNEL_NAME> to select the respective channel. Type status to list the status of the channel. Type exit to go back to the main shell. Copyright 2013, Pramati Technologies Private Limited. 24

Statistics For A Node Via Admin Console: In the monitor page click on the respective node. This will show up statistics for the selected backend node. Copyright 2013, Pramati Technologies Private Limited. 25

Via Command Line: In the command line type nodes. This will display the list of commands available for nodes. Type list to list the nodes. Type select <NODE_NAME> to select the respective node. Type status to list the status of the node. Type exit to go back to the main shell. Copyright 2013, Pramati Technologies Private Limited. 26