0

I'm trying to load-balance "2 Web Servers (running Apache/PHP)" by putting Nginx at in front of them. But I need to use Round Robin algorithm but when i do this, I can't manage to have the stable SESSIONS.

(I understand; if I use Round Robin, the SESSION information will be lost once i hit to the another Server on next load)

Is there a proper way to achieve this? Any kind advice for the industrial standards on this please?

FYI, I have already put these 2 Web Servers into GlusterFS as in Cluster. So I have a common storage (if you are going to suggest something based on this)

vvvvv
  • 25,404
  • 19
  • 49
  • 81
夏期劇場
  • 17,821
  • 44
  • 135
  • 217

2 Answers2

1

The nginx manual says that session affinity is in the commercial distribution only ("sticky" directive). If you don't use the commercial distribution, you'll have to grab a third-party "plugin" and rebuild the server with support

("sticky" should help you find the third party addons)

covener
  • 17,402
  • 2
  • 31
  • 45
0

If there isn't any specific reason for using Round Robin, you can try to use ip_hash load balancing mechanism.

upstream myapp1 {
    ip_hash;
    server srv1.example.com;
    server srv2.example.com;
    server srv3.example.com;
}

If there is the need to tie a client to a particular application server — in other words, make the client’s session “sticky” or “persistent” in terms of always trying to select a particular server — the ip-hash load balancing mechanism can be used.

Please refer to nginx doc for load_balancing for more information.

SunghoMoon
  • 1,329
  • 1
  • 15
  • 21