Hi,<br><br>We're having a bizarre issues with Varnish and 503 errors, when Varnish calls a Nginx when then calls its own Varnish. This may all sound like a bad setup, but it came from the fact during development we need to soap to a web service which currently resides on the same development server.<br>

<br>The script we're calling is called php2.php, the file that is calling is a different file: brad.css, so it's not looping on itself.<br>
<br>Connection sequence:<br>
1. HTTP GET to Varnish <a href="http://192.168.1.9:80" target="_blank">192.168.1.9:80</a><br>
2. Connection to Nginx:8080<br>
3. Connection to PHP FastCGI (php2.php does a file_get_contents("<a href="http://192.168.1.9/members/css/brad.css" target="_blank">http://192.168.1.9/members/css/brad.css</a>") - <a href="http://php.net/file-get-contents" target="_blank">http://php.net/file-get-contents</a>)<br>



4. Connection to Varnish:80<br>
5. Connection to Nginx:8080<br><br>Relevant part of the log (rest of the logs, success: <a href="http://dl.dropbox.com/u/3014365/varnishLogSuccess.txt" target="_blank">http://dl.dropbox.com/u/3014365/varnishLogSuccess.txt</a> fail: <a href="http://dl.dropbox.com/u/3014365/varnishLogFail.txt" target="_blank">http://dl.dropbox.com/u/3014365/varnishLogFail.txt</a>):<br>


<br>   12 RxHeader     c Cache-Control: max-age=0<br>   12 VCL_call     c recv lookup<br>   12 VCL_call     c hash<br>   12 Hash         c /retail/php2.php<br>   12 Hash         c 192.168.1.9<br>   12 VCL_return   c hash<br>


   12 VCL_call     c miss fetch<br>   12 Backend      c 14 default default<br>   12 FetchError   c http first read error: -1 11 (Resource temporarily unavailable)<br>   12 VCL_call     c error deliver<br>   12 VCL_call     c deliver deliver<br>


   12 TxProtocol   c HTTP/1.1<br>   12 TxStatus     c 503<br>   12 TxResponse   c Service Unavailable<br>   12 TxHeader     c Server: Varnish<br><br>Varnish configuration fails in the default.vcl supplied (only changes were removing comments from all lines).<br>


<br>Server Varnish 3.0.0 (Port 80), Nginx 1.0.5 (Port 8080), PHP 5.3.2 (FastCGI), CentOS 6.0, all running on VMWare Fusion.<br><br>Client 192.168.1.14 (Firefox 5.0.1) to server 192.168.1.9.<br><br>Nginx Logs:<br>127.0.0.1 - - [16/Aug/2011:17:47:02 +0930] "GET /retail/php2.php HTTP/1.1" 499 0 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:5.0.1) Gecko/20100101 Firefox/5.0.1"<br>


127.0.0.1 - - [16/Aug/2011:17:47:02 +0930] "GET /members/css/brad.css HTTP/1.1" 200 3 "-" "-"<br><br>Notice the GET responds with a 200 OK, according to Nginx it responded fine to the GET, BUT it doesn't log that until Varnish finally ends with a 503 (when Varnish finally closed the connection?). The 499 response is Nginx's way of saying "Client pre-maturely closed connection"<br>


<br>Other notes:<br>* Disabled keep-alive on nginx<br>* Disabled gzip on nginx<br>* Varnish default.vcl: <a href="http://dl.dropbox.com/u/3014365/varnishDefault.vcl.txt" target="_blank">http://dl.dropbox.com/u/3014365/varnishDefault.vcl.txt</a><br>


* Varnish sysconfig: <a href="http://dl.dropbox.com/u/3014365/varnishSysconfig.txt" target="_blank">http://dl.dropbox.com/u/3014365/varnishSysconfig.txt</a><br>* Issue seems to be intermittent, it continues to fail give it a restart and it's ok again, restart again and it beings to fail all over again. Restart sometimes it might work again or continue to fail etc etc. No noticeable pattern.<br>


* I haven't 'actually' done a 'make install' yet, I'm just running it out of /usr/local/varnish/bin/varnishd/.libs/lt-varnishd<br>* The fault doesn't happen when the PHP file_get_contents connects to a remove Nginx server<br>


* The fault doesn't happen when I connect directly to Nginx (ie, skip previously noted step 1 and connect to step 2 directly).<br>* Varnish logs in different orders between fails and successes (of 6 tests - 3 success 3 fail). <br>


** During a fail, the first log is the TxURL        b /retail/php2.php<br>** During a success, the first log is TxURL        b /members/css/brad.css<br><br>Any thoughts ?<br><br>-- <br>Bradley Falzon<br><a href="mailto:brad@teambrad.net" target="_blank">brad@teambrad.net</a><br>