anchor0408 发表于 2012-06-24 11:28

求助:Nginx varnish 启动不了

# /usr/local/varnish/sbin/varnishd -d
Platform: Linux,2.6.18-164.el5,i686,-sfile,-smalloc,-hcritbit
200 238
-----------------------------
Varnish Cache CLI 1.0
-----------------------------
Linux,2.6.18-164.el5,i686,-sfile,-smalloc,-hcritbit

Type 'help' for command list.
Type 'quit' to close CLI session.
Type 'start' to launch worker process.

start
300 16
No VCL available

-----------------------------------
# vi /etc/sysconfig/varnish

# Configuration file for varnish
#
# /etc/init.d/varnish expects the variable $DAEMON_OPTS to be set from this
# shell script fragment.
#

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

# Locked shared memory (for ulimit -l)
# Default log size is 82MB + header
MEMLOCK=82000

# Maximum size of corefile (for ulimit -c). Default in Fedora is 0
# DAEMON_COREFILE_LIMIT="unlimited"

# Set this to 1 to make init script reload try to switch vcl without restart.
# To make this work, you need to set the following variables
# explicit: VARNISH_VCL_CONF, VARNISH_ADMIN_LISTEN_ADDRESS,
# VARNISH_ADMIN_LISTEN_PORT, VARNISH_SECRET_FILE, or in short,
# use Alternative 3, Advanced configuration, below
RELOAD_VCL=1

"/etc/sysconfig/varnish" 110L, 3626C
# Configuration file for varnish
#
# /etc/init.d/varnish expects the variable $DAEMON_OPTS to be set from this
# shell script fragment.
#

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

# Locked shared memory (for ulimit -l)
# Default log size is 82MB + header
MEMLOCK=82000

# Maximum size of corefile (for ulimit -c). Default in Fedora is 0
# DAEMON_COREFILE_LIMIT="unlimited"

# Set this to 1 to make init script reload try to switch vcl without restart.
# To make this work, you need to set the following variables
# explicit: VARNISH_VCL_CONF, VARNISH_ADMIN_LISTEN_ADDRESS,
# VARNISH_ADMIN_LISTEN_PORT, VARNISH_SECRET_FILE, or in short,
# use Alternative 3, Advanced configuration, below
RELOAD_VCL=1

# 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 fixed-size cache file.

DAEMON_OPTS="-a :localhost:80\
             -T localhost:3500 \
             -f /usr/local/varnish/etc/vcl.conf \
             -w 2,51200,10 \
             -u varnish -g varnish \
             -n /data/varnish/cache \
             -s file,/data/varnish/cache/varnish_cache,1G"

-----------------------------------------------------
# pwd
/usr/local/varnish/etc
# cat vcl.conf
# 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.1";
   .port = "80;
}
#
# Below is a commented-out copy of the default VCL logic.If you
# redefine any of these subroutines, the built-in logic will be
# appended to your code.
sub vcl_recv {
   if (req.restarts == 0) {
      if (req.http.x-forwarded-for) {
            set req.http.X-Forwarded-For =
                req.http.X-Forwarded-For + ", " + client.ip;
      } else {
            set req.http.X-Forwarded-For = client.ip;
      }
   }
   if (req.request != "GET" &&
       req.request != "HEAD" &&
       req.request != "PUT" &&
       req.request != "POST" &&
       req.request != "TRACE" &&
       req.request != "OPTIONS" &&
       req.request != "DELETE") {
         /* Non-RFC2616 or CONNECT which is weird. */
         return (pipe);
   }
   if (req.request != "GET" && req.request != "HEAD") {
         /* We only deal with GET and HEAD by default */
         return (pass);
   }
   if (req.http.Authorization || req.http.Cookie) {
         /* Not cacheable by default */
         return (pass);
   }
   return (lookup);
}
#
sub vcl_pipe {
#   # Note that only the first request to the backend will have
#   # X-Forwarded-For set.If you use X-Forwarded-For and want to
#   # have it set for all requests, make sure to have:
#   # set bereq.http.connection = "close";
#   # here.It is not set by default as it might break some broken web
#   # applications, like IIS with NTLM authentication.
   return (pipe);
}

sub vcl_pass {
   return (pass);
}
#
sub vcl_hash {
   hash_data(req.url);
   if (req.http.host) {
         hash_data(req.http.host);
   } else {
         hash_data(server.ip);
   }
   return (hash);
}
#
sub vcl_hit {
   return (deliver);
}
#
sub vcl_miss {
   return (fetch);
}
#
sub vcl_fetch {
   if (beresp.ttl <= 0s ||
         beresp.http.Set-Cookie ||
         beresp.http.Vary == "*") {
                /*
               * Mark as "Hit-For-Pass" for the next 2 minutes
               */
                set beresp.ttl = 120 s;
                return (hit_for_pass);
   }
   return (deliver);
}
#
sub vcl_deliver {
   return (deliver);
}
#
sub vcl_error {
   set obj.http.Content-Type = "text/html; charset=utf-8";
   set obj.http.Retry-After = "5";
   synthetic {"
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
   <head>
   <title>"} + obj.status + " " + obj.response + {"</title>
   </head>
   <body>
   <h1>Error "} + obj.status + " " + obj.response + {"</h1>
   <p>"} + obj.response + {"</p>
   <h3>Guru Meditation:</h3>
   <p>XID: "} + req.xid + {"</p>
   <hr>
   <p>Varnish cache server</p>
   </body>
</html>
"};
   return (deliver);
}
#
sub vcl_init {
      return (ok);
}
#
sub vcl_fini {
      return (ok);
}
页: [1]
查看完整版本: 求助:Nginx varnish 启动不了