Varnish not listening to /etc/sysconfig/varnish on CentOS 6.2
Dridi Boukelmoune
dridi.boukelmoune at zenika.com
Tue Feb 12 10:11:55 CET 2013
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 <drewsy.morris at gmail.com> 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
> varnish-misc at varnish-cache.org
> https://www.varnish-cache.org/lists/mailman/listinfo/varnish-misc
More information about the varnish-misc
mailing list