<div dir="ltr"><br><div>I have Nginx as reverse proxy in front of Apache. Nginx is handling most of the redirects and static content. Apache is handling PHP requests using fastcgi php-fpm. This setup is giving intermittent 500 errors, however, there are no errors when Apache is serving traffic directly. </div><div><br></div><div>Below are some key parameters:</div><div> * Apache is using worker MPMs. </div><div><div>  ServerLimit          2048</div><div>  ThreadLimit           100</div><div>  StartServers           10</div><div>  MinSpareThreads        30</div><div>  MaxSpareThreads       100</div><div>  ThreadsPerChild        64</div><div>  MaxClients           2048</div><div>  MaxRequestsPerChild  5000</div></div><div><br></div><div>Nginx is using 2 worker processes and worker_connections is 1024. Proxy connections are configured using proxy_pass and not upstream. </div><div><br></div><div><br></div><div>Keep-alive is disabled on both Apache and Nginx.</div><div><br></div><div>Apache access logs show 500 return code, but apache error logs don't contain any information. php-fpm logs are empty as well.<br></div><div><br></div><div><br></div><div>Nginx debug logs indicates:</div><div><br></div><div><div>2015/02/10 21:21:39 [debug] 10657#0: connect to <a href="http://127.0.0.1:8080">127.0.0.1:8080</a>, fd:60 #50</div><div>2015/02/10 21:21:39 [debug] 10657#0: *49 http upstream connect: -2</div><div>2015/02/10 21:21:39 [debug] 10657#0: *49 posix_memalign: 000000000129B290:128 @16</div><div>2015/02/10 21:21:39 [debug] 10657#0: *49 event timer add: 60: 60000:1423632159180</div><div>2015/02/10 21:21:39 [debug] 10657#0: *49 http finalize request: -4, “/reviews/truelist?” a:1, c:2</div><div>2015/02/10 21:21:39 [debug] 10657#0: *49 http request count:2 blk:0</div><div>2015/02/10 21:21:39 [debug] 10657#0: *49 post event 00000000012516A8</div><div>2015/02/10 21:21:39 [debug] 10657#0: *49 post event 0000000001251710</div><div>2015/02/10 21:21:39 [debug] 10657#0: *49 delete posted event 0000000001251710</div><div>2015/02/10 21:21:39 [debug] 10657#0: *49 http upstream request: “/reviews/truelist?”</div><div>2015/02/10 21:21:39 [debug] 10657#0: *49 http upstream send request handler</div><div>2015/02/10 21:21:39 [debug] 10657#0: *49 http upstream send request</div><div>2015/02/10 21:21:39 [debug] 10657#0: *49 chain writer buf fl:1 s:369</div><div>2015/02/10 21:21:39 [debug] 10657#0: *49 chain writer in: 000000000129C1D8</div><div>2015/02/10 21:21:39 [debug] 10657#0: *49 writev: 369</div><div>2015/02/10 21:21:39 [debug] 10657#0: *49 chain writer out: 0000000000000000</div><div>2015/02/10 21:21:39 [debug] 10657#0: *49 event timer del: 60: 1423632159180</div><div>2015/02/10 21:21:39 [debug] 10657#0: *49 event timer add: 60: 60000:1423632159181</div><div>2015/02/10 21:21:39 [debug] 10657#0: *49 delete posted event 00000000012516A8</div><div>2015/02/10 21:21:39 [debug] 10657#0: *49 http run request: “/reviews/truelist?”</div><div>2015/02/10 21:21:39 [debug] 10657#0: *49 http upstream check client, write event:1, “/reviews/truelist”</div><div>2015/02/10 21:21:39 [debug] 10657#0: *49 http upstream recv(): -1 (11: Resource temporarily unavailable)</div><div>2015/02/10 21:21:39 [debug] 10657#0: post event 00000000012362B0</div><div><br></div><div><br></div><div><br></div><div>Another thing I noticed is that http.workers have dropped from 30-40 workers to 2 workers with nginx. When Apache is serving traffic without Nginx, there are no 500 errors, but it has more workers active. </div><div><br></div><div><br></div></div><div><br></div><div>Any pointers on debugging 500 errors will be really helpful.</div><div><br></div><div><br></div><div>--</div><div>Thanks,</div><div>N</div><div><br></div></div>