Nginx with LVS on Linux


#1

Hi,

I’m planing to use nginx on existing LVS load balancer with more than 10
numbers of web servers as back-ends. My main objective is to use nginx
as a reverse-proxy while compressing the data streaming. Since the LVS
running on Linux, I have planned to run the Nginx on the same Linux box
though I have tested it on FreeBSD.

Here is the setup I am looking for

[CLIENT] --> [NGINX+LVS+PULSE] --> [WEB SERVER FLEET]

I will be running LVS for to load balance user connections requesting
coming through Nginx and forward to back-end servers in Round-robin
algorithm . LVS also handing the the persistence, healthchecks and
failovers with pulse (piranha).

I would like to know is there a performance degration on Nginx when
moving from FreeBSD to Linux (Rhel5)…?
I will be testing the setup to run nginx and lvs on same box but is this
feasible…? I googled but haven’t seen any posts regards to nginx+lvs.

I wonder is there any way that we could run nginx with keepalived while
nginx to handle the load balancing and completely replace LVS. Right now
I’m running two back-end servers front-end with nginx reverse-proxy;
every time when I refresh the browser it connecting to back-end servers
in round-robin method. I can’t keep the session connected to single
back-end server (persistence).

I would really appreciate your advice.

Thanks in advance
Hirantha


#2

On Thu, 19 Mar 2009 at 16:56:41 +0530, hirantha wrote:

Hi,
Hi Hirantha,

I’m planing to use nginx on existing LVS load balancer with more than 10
numbers of web servers as back-ends. My main objective is to use nginx
as a reverse-proxy while compressing the data streaming. Since the LVS
running on Linux, I have planned to run the Nginx on the same Linux box
though I have tested it on FreeBSD.

Here is the setup I am looking for

[CLIENT] --> [NGINX+LVS+PULSE] --> [WEB SERVER FLEET]
Maybe offing topic, but you may try:
Clients --> Varnish (for caching) --> HAProxy (L7 LB/Proxy) --> Nginx
WebSrvs

I will be running LVS for to load balance user connections requesting
coming through Nginx and forward to back-end servers in Round-robin
algorithm . LVS also handing the the persistence, healthchecks and
failovers with pulse (piranha).
Good enough. But HAProxy gives you more power on LB and Proxying.

I would like to know is there a performance degration on Nginx when
moving from FreeBSD to Linux (Rhel5)…?
I will be testing the setup to run nginx and lvs on same box but is this
feasible…? I googled but haven’t seen any posts regards to nginx+lvs.

I wonder is there any way that we could run nginx with keepalived while
nginx to handle the load balancing and completely replace LVS. Right now
See above.

I’m running two back-end servers front-end with nginx reverse-proxy;
every time when I refresh the browser it connecting to back-end servers
in round-robin method. I can’t keep the session connected to single
back-end server (persistence).
Consider to use shared session storage with Memcached.

There are lots of features I just can’t tell in details regarding
Varnish, HAProxy. I think they’ll give you much more choices.

Hope that helps.


#3

Hi Cherife,

Thank you for the quick response.

Cherife Li wrote:

Here is the setup I am looking for

[CLIENT] --> [NGINX+LVS+PULSE] --> [WEB SERVER FLEET]
Maybe offing topic, but you may try:
Clients --> Varnish (for caching) --> HAProxy (L7 LB/Proxy) --> Nginx WebSrvs

My idea is to use nginx to do compression for back-end servers. HAProxy
or Varnish does not support
such feature. I don’t need nginx to do load balance and persistence but
only compression. LVS doing
an outstanding job on load balancing and session handling (persistence)
while pulse (piranha) doing
helthchecks and failovers.

I have read some post of persistence+round robin within nginx which
seems to be not successful.

Any suggestion is much appreciated.

Hirantha