Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in

Configuring Jira Data Center with Netscaler as Load Balancer

Darren Shinkins September 4, 2020

Hi All,

Could I ask for some advice from anyone who has successfully set up Jira Data Centre using Netscaler as the load balancer?

The problem we're having is that when a user successfully completes authentication on one of the nodes, they are quite often redirected to another node on a new anonymous session and asked to authenticate again. Basically, session stickiness isn't working.

We believe that the problem relates to how we've attempted to set up cookie-based session affinity as described in the installation instructions. In particular we're struggling with the description of the jira.node.id property in the cluster.properties file: "This unique ID must match the username and the BalanceMember entry in the Apache configuration".

We've not been able to find a direct equivalent of this in the configuration for Netscaler, so this is where we believe that the problem is occurring. We've just set this value to be the fully qualified host name of the node.

Our tests have shown that the for the JSESSIONID cookie, a new value is written to this after a successful authentication. In spite of the fact that we're appending the "node name" to the cookie by setting the -DjvmRoute startup parameter, as described in the example 2 of this documentation.

I think there has to be something we're missing in the Netscaler configuration that tells it how to route traffic to those node names.

So far we've managed to work around this by using source IP-based persistence instead, but since all of Atlassian's documentation seems to be geared up towards cookie based session affinity, we'd be quite keen to get this working.

Any suggestions on where we might be going wrong would be much appreciated.

 

Many thanks

Darren

 

1 answer

1 accepted

Suggest an answer

Log in or Sign up to answer
2 votes
Answer accepted
Darren Shinkins October 5, 2020

We've managed to fix this issue now. The nearest equivalent we can find to what is described in Atlassian's documentation is COOKIEINSERT, as described here.

This gives us a similar solution to that described in example 1 of the load balancer examples (Specific load balancing cookie).

 

I hope that helps someone else!

David Drinnan June 9, 2022

Can you expand a bit? We are having this exact issue, too, with a nearly identical setup. 

The Jira load balancer example is for Apache, and it mentions ROUTEID and JSESSIONID, while the Citrix Netscaler mentions COOKIEINSERT. I'm not sure how to apply the examples to Netscaler.

Darren Shinkins June 13, 2022

Hi David,

Well, I'm no CDN engineer, but once I found the word COOKIEINSERT from Netscaler's documentation, I just handed that over to our engineers, and they just made it so.

Hopefully this KB article on Citrix's website will get you what you need.

https://support.citrix.com/article/CTX124630

You shouldn't need to tinker with JSessionID through the load balancer AFAIK. It will insert a new cookie; the name if I'm not mistaken always begins with NSC_ - and the rest is the name of the node name of the node you're being persisted to, but encrypted.

Hope that helps

TAGS
AUG Leaders

Atlassian Community Events