
{"id":8027,"date":"2019-01-28T13:55:04","date_gmt":"2019-01-28T13:55:04","guid":{"rendered":"https:\/\/rax-stg-wp-aws.com\/blogs\/setting-up-basic-load-balancing-in-citrix-netscaler\/"},"modified":"2026-11-03T19:29:13","modified_gmt":"2026-11-03T19:29:13","slug":"setting-up-basic-load-balancing-in-citrix-netscaler","status":"publish","type":"blogs","link":"https:\/\/www.rackspace.com\/en-gb\/blogs\/setting-up-basic-load-balancing-in-citrix-netscaler\/","title":{"rendered":"Setting up basic load balancing in Citrix NetScaler"},"content":{"rendered":"<p><strong>Introduction<\/strong><\/p>\n<p>The NetScaler Application Delivery Controller (ADC) is a Citrix&nbsp;\u00a9&nbsp;&nbsp;Systems&nbsp;core networking product. ADC improves the delivery speed and quality of&nbsp;applications for an end user. The product helps business customers perform&nbsp;tasks such as traffic optimization, L4-L7 load balancing, and web app&nbsp;acceleration while maintaining data security.<\/p>\n<p>NetScaler ADC monitors server health and allocates network and application&nbsp;traffic to additional servers for efficient use of resources. It also performs&nbsp;several kinds of caching and compression. It can be used as a proxy server to&nbsp;process Secure Socket Layer (SSL) requests instead of servers (SSL offloading).<\/p>\n<p>This blog covers the basic Hyper Text Transfer Protocol (HTTP) site load&nbsp;balancing configuration.&nbsp;<\/p>\n<p><strong>Typical load balancing traffic flow<\/strong><\/p>\n<p>The following steps comprise the typical load balancing traffic flow for NetScaler:<\/p>\n<p>\n1.&nbsp;&nbsp; &nbsp;A user enters a URL into their browser.<br \/>\n2.&nbsp;&nbsp; &nbsp;The URL&#8217;s Domain Name Server (DNS) record points to one of the public Virtual&nbsp;&nbsp; &nbsp;Internet Protocols (VIP) on NetScaler and identifies the traffic&#8217;s&nbsp;&nbsp; &nbsp;protocol (such as HTTP port 80 traffic).<br \/>\n3.&nbsp;&nbsp; &nbsp;NetScaler then passes that traffic to one of the servers in the server pool,&nbsp;based on the balancing method defined (such as round robin, persistence, and&nbsp;so on).<br \/>\n4.&nbsp;&nbsp; &nbsp;The servers send back the page or application that the user requested by using a Load Balancing Virtual IP (LBVIP).<br \/>\n5.&nbsp;&nbsp; &nbsp;The LBVIP routes the traffic to the Internet by setting the source to <em>LBVIP<\/em>.<br \/>\n6.&nbsp;&nbsp; &nbsp;The web page or application displays on the user computer.<\/p>\n<p>The following image shows this traffic flow:<\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/blog_article_images\/26581-body-Picture1_3.png\" alt=\"Netscaler pic 1\" \/><\/p>\n<p><a href=\"https:\/\/docs.citrix.com\/en-us\/netscaler\/12\/load-balancing\/load-balancing-configure-monitors.html\"><em>Image Source<\/em><\/a>&nbsp;<\/p>\n<p><strong>Prerequisites<\/strong><\/p>\n<p>Before configuring NetScaler load balancing, perform the following steps:<\/p>\n<p>1. Load the necessary license to NetScaler.<br \/>\n2. Configure the `MGMT` port for management access.<br \/>\n3. Configure DNS servers and the Subnet IP Address (SNIP) in the same server subnet<br \/>\n&nbsp; &nbsp;and allow the Virtual Local Area Network (LAN) in the switch trunk port that<br \/>\n&nbsp; &nbsp;is connected to NetScaler.<\/p>\n<p><strong>Configuration<\/strong><\/p>\n<p>To configure NetScaler load balancing, perform the following steps:<\/p>\n<p><strong>&nbsp;Add backend servers<\/strong><\/p>\n<p><strong>To add the backend servers, perform the following steps:<\/strong><\/p>\n<p>1. Connect to the management IP of your NetScaler.<br \/>\n2. Select<strong>&nbsp;Login &gt; Configuration &gt; Traffic Management &gt; Load Balancing &gt; Servers.<\/strong><br \/>\n3. Click <strong>Add.<\/strong><\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/blog_article_images\/26581-body-Picture2_3.png\" alt=\"netscaler pic 2\" \/><\/p>\n<p>1. Connect to the management IP of your NetScaler.<br \/>\n2. Select <strong>Login &gt; Configuration &gt; Traffic Management &gt; Load Balancing &gt; Servers<\/strong>.<br \/>\n3. Click <strong>Add<\/strong><\/p>\n<p>start 4<br \/>\n&nbsp; &nbsp; Choose a naming convention for the first server and enter its IP address.<br \/>\n&nbsp; &nbsp;This example uses <em>Web-01<\/em>.<br \/>\n&nbsp; &nbsp; Click&nbsp;<strong>Create<\/strong><\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/blog_article_images\/26581-body-Picture3_0.png\" alt=\"Netscaler pic 3\" \/><\/p>\n<p>start=6&gt;<\/p>\n<p>Repeat steps 3 and 4 for the other backend web servers.&nbsp;<\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/blog_article_images\/26581-body-Picture4_0.png\" alt=\"Netscaler pic 4\" \/><\/p>\n<p><strong>&nbsp;Create a service group&nbsp;<\/strong><\/p>\n<p>To create a service group, perform the following steps:<\/p>\n<p>1. Group these servers together in a service group configuration by choosing&nbsp;<strong>Traffic Management &gt; Load Balancing &gt; Service Groups<\/strong>.<br \/>\n2. Click <strong>Add<\/strong>.<\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/blog_article_images\/26581-body-Picture5_1.png\" alt=\"Netscaler pic 5\" \/><\/p>\n<p>start=3<br \/>\n&nbsp; &nbsp;Name the service group and set the protocol to <strong>HTTP<\/strong><\/p>\n<p>Click <strong>OK<\/strong><\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/blog_article_images\/26581-body-Picture6_0.png\" alt=\"Netscaler pic 6\" \/><\/p>\n<p>start=5&gt;<\/p>\n<p>Click <strong>No Service Group Member<\/strong><\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/blog_article_images\/26581-body-Picture7_0.png\" alt=\"Netscaler pic 7\" \/><\/p>\n<p>&nbsp;&nbsp;start=6&gt;<br \/>\n&nbsp; &nbsp; Click <strong>Server Based<\/strong><br \/>\n&nbsp; &nbsp; Select all the servers with the search arrow or add servers directly by&nbsp;IP base instead of creating them individually.<br \/>\n&nbsp; &nbsp; Set the server listening port (For example, the HTTP protocol is TCP port 80).<br \/>\n&nbsp; &nbsp; Click <strong>Create<\/strong><\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/blog_article_images\/26581-body-Picture8_0.png\" alt=\"Netscaler pic 8\" \/><\/p>\n<p>Click <strong>OK<\/strong><\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/blog_article_images\/26581-body-Picture9_0.png\" alt=\"Netscaler pic 9\" \/><\/p>\n<p><strong>&nbsp;&nbsp;Change the monitoring<\/strong><\/p>\n<p>To change the monitoring, perform the following steps::<\/p>\n<p>1. Change the monitoring from <em>SNIP<\/em>&nbsp;to <em>Backend servers<\/em>.<\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/blog_article_images\/26581-body-Picture10_1.png\" alt=\"Netscaler pic 10\" \/><\/p>\n<p>start=2&gt;<br \/>\n&nbsp; &nbsp; Click <strong>No service Group Monitor Binding<\/strong>&nbsp;and select the required&nbsp;monitoring binding. In this case, choose the HTTP NetScaler that has a&nbsp;&nbsp; &nbsp; monitor for HTTP preconfigured.<br \/>\n&nbsp; &nbsp; Click the search arrow, select <strong>http-ecv &gt;<\/strong> <strong>Bind<\/strong><br \/>\n&nbsp; &nbsp; Click <strong>Done<\/strong><\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/blog_article_images\/26581-body-Picture11_0.png\" alt=\"netscaler pic 11\" \/><\/p>\n<p><strong>&nbsp;&nbsp;Create a virtual server<\/strong><\/p>\n<p>\n1. Create a virtual server by choosing <strong>Configuration &gt; Traffic Management &gt;<br \/>\n&nbsp; &nbsp;Load Balancing &gt; Virtual Servers<\/strong>.<br \/>\n2. Click <strong>Add<\/strong><br \/>\n3. Give the virtual server a name.<br \/>\n4. Set the protocol to <em>HTTP<\/em>.<br \/>\n5. Specify the IP address, which should be the VIP that NetScaler presents to&nbsp;&nbsp; &nbsp;the outside world.<br \/>\n6. Set the port to <em>80<\/em><br \/>\n7. Click <strong>OK<\/strong>.<\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/blog_article_images\/26581-body-Picture12.png\" alt=\"Netscaler pic 12\" \/><\/p>\n<p>&nbsp;start=8&gt;<br \/>\n&nbsp; &nbsp; Add the previously created group by clicking <strong>No load balancing Virtual<br \/>\n&nbsp; &nbsp;Servers Service Group Binding&nbsp; <\/strong>and click <strong>Select<\/strong><\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/blog_article_images\/26581-body-Picture13.png\" alt=\"Netscaler pic 13\" \/><\/p>\n<p>&nbsp;start=9&gt;<br \/>\n&nbsp; &nbsp;Click <strong>Bind<\/strong>&nbsp;and click <strong>Done<\/strong><\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/blog_article_images\/26581-body-Picture14.png\" alt=\"Netscaler Pic 14\" \/><\/p>\n<p>&nbsp;start=10&gt;<br \/>\n&nbsp; &nbsp; Save your work and wait for the VIP to come up.<\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/blog_article_images\/26581-body-Picture15.png\" alt=\"Netscaler pic 15\" \/><\/p>\n<p><strong>&nbsp;Test the configuration&nbsp;<\/strong><\/p>\n<p>To test the configuration, use different web <strong>Welcome&nbsp;<\/strong>pages on each of the&nbsp;servers. When you refresh the page, you can see that the NetScaler is doing its&nbsp;job and balancing the requests across both back-end web servers as shown in the&nbsp;following image:<\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/blog_article_images\/26581-body-Picture16.png\" alt=\"Netscaler pic 16\" \/><\/p>\n<p><strong>&nbsp;Conclusion&nbsp;<\/strong><\/p>\n<p>Use a load balancer to distribute the load across multiple web and application&nbsp;servers. Load balancers can also do SSL offloading to expose the application or&nbsp;URL to the Internet in a secure way by installing an SSL certificate. If you&nbsp;have only one back-end server with SSL offloading, you should install the SSL&nbsp;certificate on the server and expose the server to the Internet with all the&nbsp;appropriate security measures and patches. You should open only the required&nbsp;ports on the firewall for the LBVIPs or the back-end server with SSL offloading<br \/>\nwhen you expose it to the Internet.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Setting up basic load balancing in Citrix NetScaler<\/p>\n","protected":false},"author":2,"featured_media":8029,"menu_order":0,"comment_status":"open","ping_status":"open","template":"","format":"standard","meta":{"content-type":"","nid":"26581","content_type":"blog","created_by":"10130","authored_on":"2024-02-06T13:55:04+00:00","field_article_industries":"","tag_category":"Technical","field_blog_author_text":"by Rackspace Technology Staff","seo_description":"Learn how to set up a basic HTTP site load balancing configuration using NetScaler, an Application Delivery Controller from Citrix.\r\n","field_featured_image":"","insights_image":"\/wp-content\/uploads\/2026\/blog_technical_images\/26581-insights_image-general-processes-technical-blog-2-insights.jpg","field_partners":"","rxt_platforms":"Applications, Oracle","product":"","publisheddate":"2019-01-28T13:55:04","rxt_solutions":"Cloud Management & Operations, Applications, Application Management & Operations","opengraph_tag":"","x_tag":"","teaser_flag":"Technical Blog","seo_titile":"Basic Load Balancing in Citrix NetScaler - A Setup Guide | Rackspace Technology","field_topics":"","field_slug":"setting-up-basic-load-balancing-in-citrix-netscaler","footnotes":""},"categories":[178],"tags":[204],"class_list":["post-8027","blogs","type-blogs","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","tag-technical"],"_links":{"self":[{"href":"https:\/\/www.rackspace.com\/en-gb\/wp-json\/wp\/v2\/blogs\/8027","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.rackspace.com\/en-gb\/wp-json\/wp\/v2\/blogs"}],"about":[{"href":"https:\/\/www.rackspace.com\/en-gb\/wp-json\/wp\/v2\/types\/blogs"}],"author":[{"embeddable":true,"href":"https:\/\/www.rackspace.com\/en-gb\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rackspace.com\/en-gb\/wp-json\/wp\/v2\/comments?post=8027"}],"version-history":[{"count":3,"href":"https:\/\/www.rackspace.com\/en-gb\/wp-json\/wp\/v2\/blogs\/8027\/revisions"}],"predecessor-version":[{"id":9843,"href":"https:\/\/www.rackspace.com\/en-gb\/wp-json\/wp\/v2\/blogs\/8027\/revisions\/9843"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.rackspace.com\/en-gb\/wp-json\/wp\/v2\/media\/8029"}],"wp:attachment":[{"href":"https:\/\/www.rackspace.com\/en-gb\/wp-json\/wp\/v2\/media?parent=8027"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rackspace.com\/en-gb\/wp-json\/wp\/v2\/categories?post=8027"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rackspace.com\/en-gb\/wp-json\/wp\/v2\/tags?post=8027"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}