Varnish not listening to /etc/sysconfig/varnish on CentOS 6.2

Tharanga Abeyseela tharanga.abeyseela at gmail.com
Tue Feb 12 10:16:18 CET 2013


change the VARNISH_LISTEN_PORT to 80.

On Tue, Feb 12, 2013 at 8:11 PM, Dridi Boukelmoune
<dridi.boukelmoune at zenika.com> wrote:
> 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
>
> _______________________________________________
> 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