<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>&nbsp;</o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>2 ESX HOSTs&nbsp;&nbsp;&nbsp; 4 QUAD CORE XEON&nbsp; 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>&nbsp;</o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>1 SAN with&nbsp;&nbsp; DUAL CONTROLLERS and Power supplies for each controller&nbsp; routed to&nbsp;&nbsp; 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>&nbsp;</o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>In the LB VM&#8217;s we use&nbsp;&nbsp; OCFS2 to create a shared session folder&nbsp; that&nbsp; the&nbsp; Apache 2 / PHP 5.2&nbsp; 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>&nbsp;</o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p>&nbsp;</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 (&nbsp; I&nbsp; found&nbsp;&nbsp; apache using a PHP &nbsp;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>&nbsp;</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&nbsp; request to a upstream fails it will try&nbsp; again via a RW&nbsp; rule, allowing&nbsp;&nbsp; the bad&nbsp; upstream to be removed, and the&nbsp; 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&nbsp; will never get a&nbsp; 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>&nbsp;</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>&nbsp;</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&nbsp; environment, if only&nbsp; nginx could just make PHP &nbsp;a module and not do&nbsp; spawning of &nbsp;PHP &nbsp;.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p>&nbsp;</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>&nbsp;</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&nbsp; CentOS&nbsp; for better support from Dell and VMware&nbsp; (CentOS is on the approved&nbsp; 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>&nbsp;</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>&nbsp;</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>&nbsp;</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.&nbsp; 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.&nbsp; The Nginx configuration is a dual core, dual CPU AMD processor system, 32 bit with 8GB of RAM.&nbsp; We are also using it for delivery of static assets (everything except PHP).&nbsp; 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 &lt;<a href="mailto:gmm@csdoc.com">gmm@csdoc.com</a>&gt; 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&gt; Not sure if this is possible ( as I haven't tried it)<br>DM&gt; but what about building &nbsp;nginx on Damn Small Linux and having<br>DM&gt; a boot cd &nbsp;or ramdisk, or even &nbsp;boot flash. &nbsp;You could literally take<br>DM&gt; something like &nbsp;a &nbsp; PowerEdge 1425 or so and have a kicking minimalistic<br>DM&gt; LB &nbsp;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 &quot;epoll&quot; at all.<br><br>therefore - DSL is totally useless for high traffic load balancer as base OS.<br><br>DM&gt; Technically if you were so inclined, you could even &nbsp;write &nbsp;DSL and nginx<br>DM&gt; to a prom chip so its &nbsp;100% automated, I'm better if nginx &nbsp;does everything<br>DM&gt; you need it would be a lot cheaper than the hardware normal route with the<br>DM&gt; same if not better stability.<br><br>question was not about most cheaper &quot;solution&quot;, but about &quot;high traffic LB&quot;.<br><br>DM&gt; Personally what I would do is &nbsp;(assuming you have ESX), run 2 &nbsp;VM's &nbsp;both<br>DM&gt; running &nbsp;nginx on dedicated NICs. Then one your switching set up an<br>DM&gt; active/active fail over to those nice ( and have the VM's on separate ESX<br>DM&gt; hosts).<br><br>DM&gt; You would then have a fully redundant LB system so if nginx on one node<br>DM&gt; crashes the fail over would route all traffic &nbsp;to &nbsp;the other &nbsp;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 &quot;a fully redundant LB system&quot;.<br><br>hardware of ESX server is &quot;single point of failure&quot;.<br><br>--<br>Best regards,<br><span style='color:#888888'>&nbsp;Gena<br><br></span><o:p></o:p></p></div><p class=MsoNormal><o:p>&nbsp;</o:p></p></div></body></html>