# Nginx not connecting with varnish

**URL:** <https://www.ruby-forum.com/t/nginx-not-connecting-with-varnish/221031>\
**Category:** NGINX\
**Created:** [June 28, 2012, 12:59am UTC](https://www.ruby-forum.com/t/nginx-not-connecting-with-varnish/221031 "2012-06-28T00:59:39Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![aris](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/258eb7/32.png) [@aris](https://www.ruby-forum.com/u/aris)\
**Post date:** [June 28, 2012, 12:59am UTC](https://www.ruby-forum.com/t/nginx-not-connecting-with-varnish/221031/1 "2012-06-28T00:59:39Z")

</div>

I get this varnish error “FetchError no backend connection”

Varnishlog:

```
    0 CLI - Rd ping
    0 CLI - Wr 200 19 PONG 1340829925 1.0
   12 SessionOpen c 79.124.74.11 3063 :80
   12 SessionClose c EOF
   12 StatSess c 79.124.74.11 3063 0 1 0 0 0 0 0 0
    0 CLI - Rd ping
    0 CLI - Wr 200 19 PONG 1340829928 1.0
    0 CLI - Rd ping
    0 CLI - Wr 200 19 PONG 1340829931 1.0
   12 SessionOpen c 108.62.115.226 46211 :80
   12 ReqStart c 108.62.115.226 46211 467185881
   12 RxRequest c GET
   12 RxURL c /
   12 RxProtocol c HTTP/1.0
   12 RxHeader c User-Agent:

```

Pingdom.com\_bot\_version\_1.4\_([http://www.pingdom.com/](http://www.pingdom.com/))  
12 RxHeader c Host: [www.mysite.com](http://www.mysite.com)  
12 VCL\_call c recv lookup  
12 VCL\_call c hash  
12 Hash c /  
12 Hash c [www.mysite.com](http://www.mysite.com)  
12 VCL\_return c hash  
12 VCL\_call c miss fetch  
12 FetchError c no backend connection  
12 VCL\_call c error deliver  
12 VCL\_call c deliver deliver  
12 TxProtocol c HTTP/1.1  
12 TxStatus c 503  
12 TxResponse c Service Unavailable  
12 TxHeader c Server: Varnish  
12 TxHeader c Content-Type: text/html; charset=utf-8  
12 TxHeader c Retry-After: 5  
12 TxHeader c Content-Length: 418  
12 TxHeader c Accept-Ranges: bytes  
12 TxHeader c Date: Wed, 27 Jun 2012 20:45:31 GMT  
12 TxHeader c X-Varnish: 467185881  
12 TxHeader c Age: 1  
12 TxHeader c Via: 1.1 varnish  
12 TxHeader c Connection: close  
12 Length c 418  
12 ReqEnd c 467185881 1340829931.192433119  
1340829931.891024113 0.000051022 0.698516846 0.000074035  
12 SessionClose c error  
12 StatSess c 108.62.115.226 46211 1 1 1 0 0 0 256 418  
0 CLI - Rd ping  
0 CLI - Wr 200 19 PONG 1340829934 1.0  
0 CLI - Rd ping  
0 CLI - Wr 200 19 PONG 1340829937 1.0

* * *

```
netstat -tlnp
 Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address

```

State PID/Program name  
tcp 0 0 0.0.0.0:8080 0.0.0.0:\*  
LISTEN 3086/nginx  
tcp 0 0 0.0.0.0:80 0.0.0.0:\*  
LISTEN 1915/varnishd  
tcp 0 0 0.0.0.0:22 0.0.0.0:\*  
LISTEN 1279/sshd  
tcp 0 0 127.0.0.2:25 0.0.0.0:\*  
LISTEN 3195/sendmail: MTA:  
tcp 0 0 127.0.0.2:6082 0.0.0.0:\*  
LISTEN 1914/varnishd  
tcp 0 0 127.0.0.2:9000 0.0.0.0:\*  
LISTEN 1317/php-fpm.conf)  
tcp 0 0 127.0.0.2:3306 0.0.0.0:\*  
LISTEN 1192/mysqld  
tcp 0 0 127.0.0.2:587 0.0.0.0:\*  
LISTEN 3195/sendmail: MTA:  
tcp 0 0 127.0.0.2:11211 0.0.0.0:\*  
LISTEN 3072/memcached  
tcp6 0 0 :::8080 :::\*  
LISTEN 3086/nginx  
tcp6 0 0 :::80 :::\*  
LISTEN 1915/varnishd  
tcp6 0 0 :::22 :::\*  
LISTEN 1279/sshd

* * *

/etc/nginx/site-enabled/default

```
server {
  listen 8080; ## listen for ipv4; this line is default and

```

implied  
listen [::]:8080 default ipv6only=on; ## listen for ipv6

```
  root /usr/share/nginx/www;
  index index.html index.htm index.php;

  # Make site accessible from http://localhost/
  server_name localhost;

  location / {
    # First attempt to serve request as file, then
    # as directory, then fall back to index.html
    try_files $uri $uri/ /index.html;
  }

  location /doc {
    root /usr/share;
    autoindex on;
    allow 127.0.0.2;
    deny all;
  }

  location /images {
    root /usr/share;
    autoindex off;
  }

  #error_page 404 /404.html;

  # redirect server error pages to the static page /50x.html
  #
  #error_page 500 502 503 504 /50x.html;
  #location = /50x.html {
  # root /usr/share/nginx/www;
  #}

  # proxy the PHP scripts to Apache listening on 127.0.0.1:80
  #
  #location ~ \.php$ {
  # proxy_pass http://127.0.0.1;
  #}

  # pass the PHP scripts to FastCGI server listening on

```

127.0.0.1:9000  
#  
location ~ .php$ {  
fastcgi\_pass 127.0.0.2:9000;  
fastcgi\_index index.php;  
include fastcgi\_params;  
}

```
  # deny access to .htaccess files, if Apache's document root
  # concurs with nginx's one
  #
  #location ~ /\.ht {
  # deny all;
  #}
}

```

* * *

/etc/nginx/sites-enabled/www.mysite.com.vhost

```
server {
       listen 8080;
       server_name www.mysite.com mysite.com.net;
       root /var/www/www.mysite.com/web;
       if ($http_host != "www.mysite.com") {
                 rewrite ^ http://www.mysite.com$request_uri

```

permanent;  
}  
index index.php index.html;  
location = /favicon.ico {  
log\_not\_found off;  
access\_log off;  
}  
location = /robots.txt {  
allow all;  
log\_not\_found off;  
access\_log off;  
}  
# Deny all attempts to access hidden files such as .htaccess,  
.htpasswd, .DS\_Store (Mac).  
location ~ /. {  
deny all;  
access\_log off;  
log\_not\_found off;  
}  
location / {  
try\_files $uri $uri/ /index.php?$args;  
}  
# Add trailing slash to _/wp-admin requests.  
rewrite /wp-admin$ $scheme://$host$uri/ permanent;  
location ~_ .(jpg|jpeg|png|gif|css|js|ico)$ {  
expires max;  
log\_not\_found off;  
}  
location ~ .php$ {  
try\_files $uri =404;  
include /etc/nginx/fastcgi\_params;  
fastcgi\_pass 127.0.0.2:9000;  
fastcgi\_param SCRIPT\_FILENAME  
$document\_root$fastcgi\_script\_name;  
}

```
include /var/www/www.mysite.com/web/nginx.conf;
       location ~ /nginx.conf {
                deny all;
                access_log off;
                log_not_found off;
       }

}

```

* * *

```
/etc/varnish/default.vcl

# This is a basic VCL configuration file for varnish. See the

```

vcl(7)  
# man page for details on VCL syntax and semantics.  
#  
# Default backend definition. Set this to point to your content  
# server.  
#  
backend default {  
.host = “127.0.0.2”;  
.port = “8080”;  
# .connect\_timeout = 600s;  
#.first\_byte\_timeout = 600s;  
# .between\_bytes\_timeout = 600s;  
# .max\_connections = 800;

* * *

Note: uncommenting the last four options at default.vcl made no  
difference.

* * *

cat /etc/default/varnish

```
# Configuration file for varnish
#
# /etc/init.d/varnish expects the variables $DAEMON_OPTS, $NFILES

```

and $MEMLOCK  
# to be set from this shell script fragment.  
#

```
# Should we start varnishd at boot? Set to "yes" to enable.
START=yes

# Maximum number of open files (for ulimit -n)
NFILES=131072

# Maximum locked memory size (for ulimit -l)
# Used for locking the shared memory log in memory. If you increase

```

log size,  
# you need to increase this number as well  
MEMLOCK=82000

```
# Default varnish instance name is the local nodename. Can be

```

overridden with  
# the -n switch, to have more instances on a single server.  
INSTANCE=$(uname -n)

```
# This file contains 4 alternatives, please use only one.

## Alternative 1, Minimal configuration, no VCL
#
# Listen on port 6081, administration on localhost:6082, and forward

```

to  
# content server on localhost:8080. Use a 1GB fixed-size cache  
file.  
#  
# DAEMON\_OPTS=“-a :6081   
# -T localhost:6082   
# -b localhost:8080   
# -u varnish -g varnish   
# -S /etc/varnish/secret   
# -s file,/var/lib/varnish/$INSTANCE/varnish\_storage.bin,1G”

```
## Alternative 2, Configuration with VCL
#
# Listen on port 6081, administration on localhost:6082, and forward

```

to  
# one content server selected by the vcl file, based on the request.  
Use a 1GB  
# fixed-size cache file.  
#  
DAEMON\_OPTS=“-a :80   
-T 127.0.0.2:6082   
-f /etc/varnish/default.vcl   
-S /etc/varnish/secret   
-s  
file,/var/lib/varnish/$INSTANCE/varnish\_storage.bin,1G”

If you need any other info let me know. I am all out of clue as to whats  
the problem.

Posted at Nginx Forum:

> **[nginx not connecting with varnish](https://forum.nginx.org/read.php?2,228029,228029#msg-228029)**
>
> I get this varnish error “FetchError no backend connection” Varnishlog: 0 CLI - Rd ping 0 CLI - Wr 200 19 PONG 1340829925 1.0 12 SessionOpen c 79.124.74.11 3063 :80 12 SessionClose c EOF
