<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii"><meta name=Generator content="Microsoft Word 14 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri","sans-serif";}
@page Section1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.Section1
        {page:Section1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-US link=blue vlink=purple><div class=Section1><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Here is our current setup:<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>2 ESX HOSTs 4 QUAD CORE XEON 55xx series chips<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>1 SAN with DUAL CONTROLLERS and Power supplies for each controller routed to separate switches, which interconnect to the ESX Hosts<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>In the LB VM’s we use OCFS2 to create a shared session folder that the Apache 2 / PHP 5.2 backend read from. <o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>The LB only do LB not PHP serving ( I found apache using a PHP module worked better for that)<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Also in our LB configuration if a request to a upstream fails it will try again via a RW rule, allowing the bad upstream to be removed, and the pool to reprocess the request. <o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Thus an end user will never get a proxy error page.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Does your kernel use PAE, if not you need to move to PAE or a 64 bit kernel to really utilize your ram.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>I would love to go to a true nginx environment, if only nginx could just make PHP a module and not do spawning of PHP .<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Hope this helps some.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>BTW We currently use JEOS 8.04 for this task but im moving to CentOS for better support from Dell and VMware (CentOS is on the approved distro list for both of them.)<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>David<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>From:</span></b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'> owner-nginx@sysoev.ru [mailto:owner-nginx@sysoev.ru] <b>On Behalf Of </b>Ilan Berkner<br><b>Sent:</b> Tuesday, September 15, 2009 3:42 PM<br><b>To:</b> nginx@sysoev.ru<br><b>Subject:</b> Re: Viability of nginx instead of hardware load balancer?<o:p></o:p></span></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal style='margin-bottom:12.0pt'>We are currently running Nginx as a front end LB to a single PHP App Server. When we need a bit more horse power, I can divert traffic to the LB itself to process PHP requests with a minor change in the config.<br><br>We are serving close to 2mm page views a day and growing. The Nginx configuration is a dual core, dual CPU AMD processor system, 32 bit with 8GB of RAM. We are also using it for delivery of static assets (everything except PHP). The CPU utilization on the box at peak is below 3% and nginx processing 3000+ connections at any given time.<br><br>I also configured the PHP app server as a Nginx server and it serves as a backup in case the primary nginx server fails.<br><br>I'm very happy with the confguration, adding another PHP app server will be a breeze, although session management is going to be difficult.<o:p></o:p></p><div><p class=MsoNormal>On Tue, Sep 15, 2009 at 4:16 PM, Gena Makhomed <<a href="mailto:gmm@csdoc.com">gmm@csdoc.com</a>> wrote:<o:p></o:p></p><p class=MsoNormal style='margin-bottom:12.0pt'>On Tuesday, September 15, 2009 at 18:19:38, David Murphy wrote:<br><br>DM> Not sure if this is possible ( as I haven't tried it)<br>DM> but what about building nginx on Damn Small Linux and having<br>DM> a boot cd or ramdisk, or even boot flash. You could literally take<br>DM> something like a PowerEdge 1425 or so and have a kicking minimalistic<br>DM> LB hardware running on nginx.<br><br>DSL - Desktop OS, linux distro for i486 with 2.4.x linux kernel,<br>optimized for minimal RAM usage and old computers.<br>no linux 2.6.x kernel - means no "epoll" at all.<br><br>therefore - DSL is totally useless for high traffic load balancer as base OS.<br><br>DM> Technically if you were so inclined, you could even write DSL and nginx<br>DM> to a prom chip so its 100% automated, I'm better if nginx does everything<br>DM> you need it would be a lot cheaper than the hardware normal route with the<br>DM> same if not better stability.<br><br>question was not about most cheaper "solution", but about "high traffic LB".<br><br>DM> Personally what I would do is (assuming you have ESX), run 2 VM's both<br>DM> running nginx on dedicated NICs. Then one your switching set up an<br>DM> active/active fail over to those nice ( and have the VM's on separate ESX<br>DM> hosts).<br><br>DM> You would then have a fully redundant LB system so if nginx on one node<br>DM> crashes the fail over would route all traffic to the other LB.<br><br>if, for example, crashes mainboard of esx server with these VM's -<br>both VM's go down. so, this is not "a fully redundant LB system".<br><br>hardware of ESX server is "single point of failure".<br><br>--<br>Best regards,<br><span style='color:#888888'> Gena<br><br></span><o:p></o:p></p></div><p class=MsoNormal><o:p> </o:p></p></div></body></html>