Hi, Your DAEMON_OPTS variable is defined twice. Once with raw values, and once with variables like VARNISH_LISTEN_PORT.
Best Regards, Dridi On Tue, Feb 12, 2013 at 10:04 AM, Drew Morris <[email protected]> wrote: > Hi Guys, > > I've just setup Varnish on CentOS 6.2 via the official RPM and I'm hoping > someone can help me to get it working! > > It seems Varnish doesn't reference DAEMON_OPTS in /etc/sysconfig/varnish, > because it will always bind to ports 6081 and 6082, as seen in the netstat > -tulpn results below: > > tcp 0 0 0.0.0.0:6081 0.0.0.0:* > LISTEN 22844/varnishd > tcp 0 0 127.0.0.1:6082 0.0.0.0:* > LISTEN 22843/varnishd > tcp 0 0 :::6081 :::* > LISTEN 22844/varnishd > > Even after continuously restarting / reloading varnish, killing the process > etc, it wont bind on the desired port (80) > > I am starting varnish by running "service varnish start" > > Here is my config for /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 > > # 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. > # > > ## 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 > # fixed-size cache file. > # > > DAEMON_OPTS="-a :80 \ > -T localhost:6081 \ > -f /etc/varnish/default.vcl \ > -u varnish -g varnish \ > -S /etc/varnish/secret \ > -s file,/var/lib/varnish/varnish_storage.bin,1G" > > > ## Alternative 3, Advanced configuration > # > # See varnishd(1) for more information. > # > # # Main configuration file. You probably want to change it :) > VARNISH_VCL_CONF=/etc/varnish/default.vcl > # > # # Default address and port to bind to > # # Blank address means all IPv4 and IPv6 interfaces, otherwise specify > # # a host name, an IPv4 dotted quad, or an IPv6 address in brackets. > # VARNISH_LISTEN_ADDRESS= > VARNISH_LISTEN_PORT=6081 > # > # # Telnet admin interface listen address and port > VARNISH_ADMIN_LISTEN_ADDRESS=127.0.0.1 > VARNISH_ADMIN_LISTEN_PORT=6082 > # > # # Shared secret file for admin interface > VARNISH_SECRET_FILE=/etc/varnish/secret > # > # # The minimum number of worker threads to start > VARNISH_MIN_THREADS=1 > # > # # The Maximum number of worker threads to start > VARNISH_MAX_THREADS=1000 > # > # # Idle timeout for worker threads > VARNISH_THREAD_TIMEOUT=120 > # > # # Cache file location > VARNISH_STORAGE_FILE=/var/lib/varnish/varnish_storage.bin > # > # # Cache file size: in bytes, optionally using k / M / G / T suffix, > # # or in percentage of available disk space using the % suffix. > VARNISH_STORAGE_SIZE=1G > # > # # Backend storage specification > VARNISH_STORAGE="file,${VARNISH_STORAGE_FILE},${VARNISH_STORAGE_SIZE}" > # > # # Default TTL used when the backend does not specify one > VARNISH_TTL=120 > # > # # DAEMON_OPTS is used by the init script. If you add or remove options, > make > # # sure you update this section, too. > DAEMON_OPTS="-a ${VARNISH_LISTEN_ADDRESS}:${VARNISH_LISTEN_PORT} \ > -f ${VARNISH_VCL_CONF} \ > -T ${VARNISH_ADMIN_LISTEN_ADDRESS}:${VARNISH_ADMIN_LISTEN_PORT} > \ > -t ${VARNISH_TTL} \ > -w > ${VARNISH_MIN_THREADS},${VARNISH_MAX_THREADS},${VARNISH_THREAD_TIMEOUT} \ > -u varnish -g varnish \ > -S ${VARNISH_SECRET_FILE} \ > -s ${VARNISH_STORAGE}" > # > > > ## Alternative 4, Do It Yourself. See varnishd(1) for more information. > # > # DAEMON_OPTS="" > ========= > > & Here is my VCL : /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.1"; > .port = "8080"; > } > # > # 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); > # } > ========= > > Hoping you experts can help! > > -- > Regards, > > Drew Morris > > _______________________________________________ > varnish-misc mailing list > [email protected] > https://www.varnish-cache.org/lists/mailman/listinfo/varnish-misc _______________________________________________ varnish-misc mailing list [email protected] https://www.varnish-cache.org/lists/mailman/listinfo/varnish-misc
