{ "info": { "author": "Wichert Akkerman, et al", "author_email": "wichert@wiggy.net", "bugtrack_url": null, "classifiers": [ "Framework :: Buildout", "Framework :: Zope2", "Intended Audience :: System Administrators", "License :: OSI Approved :: BSD License", "Operating System :: POSIX", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Topic :: Internet :: Proxy Servers" ], "description": ".. image:: https://travis-ci.org/collective/plone.recipe.varnish.svg?branch=master\n :target: https://travis-ci.org/collective/plone.recipe.varnish\n\n.. image:: https://coveralls.io/repos/github/collective/plone.recipe.varnish/badge.svg?branch=master\n :target: https://coveralls.io/github/collective/plone.recipe.varnish?branch=master\n\n\nVarnish recipe for buildout\n===========================\n\nplone.recipe.varnish is a `zc.buildout`_ recipe to install `Varnish`_. Even\nthough the name contains the name Plone, there is nothing Plone-specific about\nthis recipe: it works for non-Zope sites just as well.\n\nConfiguring it is very simple. For example::\n\n [varnish-build]\n recipe = plone.recipe.varnish:build\n\n [varnish-configuration]\n recipe = plone.recipe.varnish:configuration\n backends = 127.0.0.1:8081\n\n [varnish-script]\n recipe = plone.recipe.varnish:script\n bind = 127.0.0.1:8000\n cache-size = 512M\n\n\nThis configures three buildout parts:\n\n``varnish-build``\n which will download, compile and install varnish,\n\n``varnish-configuration``\n which generates the VCL configuration file,\n sending requests to a backend at 127.0.0.1:8081, and\n\n``varnish-script``\n which runs Varnish, configured to listen on 127.0.0.1:8000 for requests,\n using a 512 megabyte cache.\n\nA wrapper script for the varnish startup command is created in the ``bin``\ndirectory of your buildout.\n\nPlease note that the configuration generated by this recipe requires Varnish\n4.0.x or later. The URL provided by the recipe points to the\nlatest tested Varnish release compatible with the generated configuration.\n\n\nVirtual hosting\n---------------\n\nVarnish supports virtual hosting by selecting a different backend server\nbased on headers on the incoming request. You can configure the backends\nthrough the backends option::\n\n [varnish-configuration]\n backends =\n plone.org:127.0.0.1:8000\n plone.net:127.0.0.1:9000\n\nThis will generate a configuration which sends all traffic for the plone.org\nhost to a backend server running on port 8000 while all traffic for the\nplone.net host is send to port 9000.\n\n\nZope 2 hosting (with Virtual Host Monster)\n------------------------------------------\n\nIf you are using Zope 2 as backend server you will need to rewrite the URL\nso the Zope Virtual Host Monster (VHM) can generate correct links for links in\nyour pages. This can be done either by a web server such as Apache or nginx\n(placed either in front or behind Varnish) but can also be done by Varnish itself.\n\nThe three options are described below.\n\nOption 1 (rewrites after Varnish)\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nIf generating these VHM-style URLs in a proxy *behind* Varnish (or if using\nVHM's 'mapping' feature), no extra Varnish configuration is needed.\nJust make sure the ``backends`` option directs the traffic to the proxy.\n\nOption 2 (rewrites before Varnish)\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nIf generating these VHM-style URLs in a proxy *in front* of Varnish, no extra\nVarnish configuration is needed as long as the original hostname is still retained\nin the URL. If the hostname is not retained, you can tell Varnish to direct requests\nbased on the \"path\" instead of the hostname. For example::\n\n [varnish-configuration]\n backends =\n /VirtualHostBase/http/plone.org:80/Plone:127.0.0.1:8000\n /VirtualHostBase/http/plone.net:80/Plone:127.0.0.1:9000\n\nThis will generate a configuration which sends all traffic for any request whose\npath starts with ``/VirtualHostBase/http/plone.org:80/Plone`` to a backend server\nrunning at 127.0.0.1 on port 8000, while request paths starting with\n``/VirtualHostBase/http/plone.net:80/Plone`` are sent to port 9000.\n\nOption 3 (rewrites within Varnish)\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nTo have Varnish generate these VHM-style URLs, you can use the\n``zope2_vhm_map`` option.\nHere is an example::\n\n [varnish-configuration]\n zope2_vhm_map =\n plone.org:/plone\n plone.net:/plone\n\nThis tells us that the domain plone.org should be mapped to the location\n``/plone`` in the backend. By combining this with the information from the\n``backends`` option a varnish configuration will be generated that\nmaps URLs correctly.\n\nLoad Balancing\n--------------\n\nVarnish supports load balancing by configuring a director for a pool of backends.\nThis director sends the incoming requests that cannot be fulfilled by varnish to\nbackends in the pool in either random or round robin fashion. You can configure\nthe director via the ``balancer`` option::\n\n [varnish-configuration]\n balancer = random\n\nThis will generate a configuration which sends all traffic to the director,\nwhich will choose a 'random' backend server to fulfill the request if the\ncontent requested is not cached by varnish itself.\n\n\nplone.recipe.varnish reference\n------------------------------\n\nThe ``plone.recipe.varnish`` recipe does one or more of the following:\n\n``plone.recipe.varnish:build``\n compiles varnish from sources\n\n``plone.recipe.varnish:configuration``\n generates a VCL-configuration file\n\n``plone.recipe.varnish:script``\n generates a wrapper script inside your buildout that will start Varnish\n with the correct configuration.\n\nPlease note that this recipe requires Varnish 4.0.x or later.\n\n\nBuild varnish from sources\n~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n``build`` is based on\n`zc.recipe.cmmi `_ - so all\nparameters from that recipe are available here too (but rarely used). These options are available for the recipe part plone.recipe.varnish:build.\n\nThree parameters are different/ extra:\n\n``url``\n Location used for download of varnish sources. Defaults to a version tested\n for the selected ``varnish_version``.\n\n``jobs``\n Passes the number of parallel jobs to ``make``, defaults to ``4``. Adjust as\n needed to your CPU resources.\n\n``varnish_version``\n Varnish target version. Default is ``5.2``. Options are:\n\n - 4.0: uses 4.0.5, will stick to 4.0.x\n - 4.1: uses 4.1.9, will stick to 4.1.x\n - 4: uses 4.1.9, will stick to 4.x\n - 5.0: uses 5.0.0, will stick to 5.0.x\n - 5.1: uses 5.1.3, will stick to 5.1.x\n - 5.2: uses 5.2.1, will stick to 5.2.x\n - 5: uses 5.2.1, will stick to 5.x\n\n The exact version and the default version may be changed in future release of this recipe.\n\n\nVCL Configuration Generator\n~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nThese options are available for the recipe part plone.recipe.varnish:configuration.\n\n``backends``\n Specifies the backend or backends which will process the (uncached)\n requests. The syntax for backends:\n\n ``[][/]::``\n\n The optional ``hostname`` and ``path`` allows you to do virtual hosting.\n If multiple backends are specified then each backend must include\n either a hostname or path (or both) so that Varnish can direct the\n matching request to the appropriate backend. Defaults to\n ``127.0.0.1:8080``.\n\n``balancer``\n If included and set to either ``random`` or ``round_robin``, this option\n configures varnish to load balance the servers specified by the ``backends``\n directive. Possible values: ``none`` (default), ``round_robin`` or\n ``random``.\n\n``between-bytes-timeout``\n If specified, this option configures the timeout (in seconds) for Varnish\n waiting between bytes when receiving data from a backend. Varnish will only\n wait this many seconds between bytes before giving up. A value of 0s means\n this will never time out. Defaults to *60s*, as per Varnish's default\n settings.\n\n``bind``\n Hostname and port on which Varnish will listen for requests. Defaults\n to ``127.0.0.1:8000``.\n\n``connect-timeout``\n If specified, this option configures the connection timeout (in seconds)\n for Varnish connecting to a backend server. Varnish will only try to\n connect to a given backend for this many seconds before giving up. Defaults\n to 0.4s, as per Varnish's default settings.\n\n``cookie-whitelist``\n After the ``cookie-pass`` was processed this list is used to to sanitize\n cookie data on the request. Cookie data to be sent to the backend includes\n only cookies with the given namens. Goal is to work better with the\n backend, i.e. detect if user is logged in and adjust caching to ensure no\n authenticated pages get cached. Defaults are optimized for Zope2/Plone:\n ``statusmessages __ac _ZopeId __cp``\n\n``cookie-pass``\n This list consists of lines with a cookie-match and urlexclude in the form:\n ``\"cookiematch\":\"urlexcludes\"``. If *cookiematch* applies for the cookiename\n and the current url does not match urlexcludes, the request is passed\n directly to the configured backend bypassing any caching. But if cookie\n applies and url matches urlexcludes, then a lookup is forced. Defaults are\n optimized for Plone, one line:\n ``\"__ac(|_(name|password|persistent))=\":\"\\.(js|css|kss)$\"``\n\n``first-byte-timeout``\n If specified, this option configures the timeout (in seconds) for Varnish\n receiving the first byte from a backend. Varnish will only wait for this\n many seconds before giving up. A value of 0s means Varnish will never time\n out. Defaults to 300s.\n\n``purge-hosts``\n Specifies hostnames or IP addresses for purge ACL. By default ``localhost`` and\n the backends are allowed to purge. Additional allowed hosts are listed here.\n\n``vcl_recv``, ``vcl_hit``, ``vcl_miss``, ``vcl_backend_fetch``, ``vcl_backend_response``, ``vcl_deliver``, ``vcl_pipe``, ``vlc_purge``, ``vcl_hash``\n Insert arbitrary VCL code into the generated config.\n\n``verbose-headers``\n Enable sending extra headers in responses that expose what varnish\n did with the request and the cache status. Useful for debugging\n cache settings and optimizations.\n Possible values: ``on`` or ``off`` (default).\n\n``zope2_vhm_map``\n Defines a virtual host mapping for Zope servers. This is a list of\n ``hostname:ZODB location`` entries which specify the location inside\n Zope where the website for a virtual host lives.\n\n``zope2_vhm_port``\n Defines a virtual host mapping port to use in the VHM URL to send back to\n clients. Useful if there is another port mapping in front of varnish, such\n as haproxy. Defaults to bind port.\n\n``zope2_vhm_ssl``\n If specified, this maps VHM URLs to ``https`` for all requests.\n Possible values: ``on`` or ``off`` (default).\n\n``zope2_vhm_ssl_port``\n Defines a virtual host mapping port to use in the VHM URL to send back to\n clients. Useful if there is another port mapping in front of varnish, such\n as haproxy. Defaults to 443.\n\n``vcl-version``\n Varnish VCL format version.\n If not given it defaults to ``4.0``.\n\nTo test the generated configuration for syntactic correctness, run\n``varnishd -C -f ./parts/varnish-configuration/varnish.vcl``.\n\n\nCreate script to start varnish\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nStart varnish as a daemon or in foreground with the given settings. These options are available for the recipe part plone.recipe.varnish:script.\n\n``bind``\n Hostname and port on which Varnish will listen for requests. Defaults\n to ``127.0.0.1:8000``.\n\n``build-part``\n References the buildout part in order to get settings from there. Defaults\n to ``varnish-build``. Set it to ``false`` in order to switch it off.\n\n``cache-location``\n Customise the location for the Varnish file storage. Option only applicable\n when used with ``file`` or ``persistent`` cache-type options. Defaults to\n using a file named ``storage`` inside the relevant parts directory\n (eg ``parts/varnish/storage``). Changing the default location can be\n useful in putting the storage somewhere with quicker read speeds\n (e.g. RAM disk).\n\n``cache-size``\n The size of the cache (limited to 2G on 32bit systems). Defaults to\n 256M.\n\n``cache-type``\n Specify the type of cache storage to use with Varnish.\n Possible values: ``file`` (storage for each object is allocated from an\n arena backed by a file),\n ``malloc`` (storage for each object is allocated with malloc; in memory),\n or ``persistent`` (experimental as at Varnish 2.1.4).\n Defaults to ``file``.\n\n``configuration-file``\n Path to a Varnish VCL configuration file to use. Defaults to the generated\n file from the ``configuration-part`` setting.\n If no configuration was generated, this setting is mandatory.\n\n``configuration-part``\n Names the buildout part to get settings from.\n Defaults to ``varnish-configuration``.\n\n``daemon``\n The file and path of the varnish daemon ``varnishd`` to use.\n If not given, it looks for the build part\n (see the ``build-part`` setting)\n and uses its ``location`` setting plus the string ``/sbin/varnishd``.\n If there is no build part, it defaults to ``/usr/sbin/varnishd`` - the\n most common place\n where it's found on many Unix systems. Adjust it if needed.\n\n``grace-healthy``\n Grace in the context of Varnish means delivering otherwise expired objects\n when circumstances call for it. This can happen because:\n (1) the backend-director selected is down, or\n (2) a different thread has already made a request to the backend that's\n not yet finished.\n\n If the backend is healthy, accept objects that are this number of seconds\n old. Clients will be delivered content that is no more than number of\n seconds past its TTL.\n\n Format: number followed by a time unit: ms, s, m, h.\n\n Defaults to ``None``. If this is set to ``None`` the grace\n feature is disabled.\n\n``grace-sick``\n If the backend is sick, accept objects that are this old.\n See also ``grace-healthy``.\n\n Format: number followed by a time unit: ms, s, m, h.\n\n Defaults to ``600s``. Should be greater than ``grace-healthy``.\n\n``group``\n The name of the group that varnish should switch to before accepting any\n request. This defaults to the main group for the specified user.\n\n``mode``\n Specify whether the varnish daemon should run in ``daemon`` or\n ``foreground`` mode. The latter is useful when varnish is run by service\n supervision tools like daemontools or runit. Defaults to ``daemon``.\n\n``name``\n If specified this sets the name of the varnish instance (defaults to\n the host name).\n\n From varnishd's manpage:\n\n Amongst other things, this name is used to construct the name of the\n directory in which varnishd keeps temporary files and persistent state.\n If the specified name begins with a forward slash, it is interpreted as\n the absolute path to the directory which should be used for this purpose.\n\n``runtime-parameters``\n Runtime parameter configuration options. The full list of available options\n can be found in the manpage varnishd(1) for your version of varnish.\n Examples include ``thread_pool_max``, ``thread_pool_min``, ``sess_timeout``.\n\n``telnet``\n If specified sets the hostname and port on which Varnish will listen\n for commands using its telnet interface.\n\n``script-filename``\n Name of the start script file in ``buildout:bin-directory``.\n Defaults to the name of this buildout part.\n\n``secret-file``\n\n In Varnish 4.X the telnet interface is no longer usable without\n authentication by default. A pre shared key mechanism has been put in place\n which requires both the varnish daemon and a client connection over telnet\n (like the varnishadm tool) to have a shared key to authenticate. By default\n if no secret-file is specified, it's no longer possible to authenticate to\n the telnet interface.\n\n To disable this security feature (and go back to the dark Varnish 2 & 3\n days) use ``secret-file = disabled``. This is discouraged.\n\n To enable the secret-file, give the path to a file on the filesystem that\n preferably has random content and is both accessible to the varnish daemon\n and a command line utility like varnishadm.\n\n An example buildout part to generate such a file could be::\n\n [varnish-secret]\n recipe = plone.recipe.command\n command = dd if=/dev/random of=${buildout:directory}/var/varnish_secret count=1\n chmod 600 ${buildout:directory}/var/varnish_secret\n\n Giving secret-file the location of this file will pass on the secret to\n the varnish daemon when it starts up. Afterwards you can use varnishadm\n with the parameters -T host:port -S /path/to/varnish_secret to connect to\n the admin telnet interface.\n\n``user``\n The name of the user varnish should switch to before accepting any\n requests. Defaults to ``nobody``.\n\n\n.. _Varnish: http://varnish-cache.org/\n.. _zc.buildout: http://cheeseshop.python.org/pypi/zc.buildout\n\nExamples:\n---------\n\nUse system varnish at ``/usr/sbin/varnishd``, generate start script in\n``./bin/varnishd`` using a VCL-file in\n``./parts/varnish-configuration/varnish.vcl``::\n\n [buildout]\n parts =\n varnish-script\n varnish-configuration\n\n [varnish-script]\n recipe = plone.recipe.varnish:script\n\n [varnish-configuration]\n recipe = plone.recipe.varnish:configuration\n\nChangelog\n=========\n\n2.3.0 (2019-03-26)\n------------------\n\n- Simplified test buildout setup by not using plone versions.\n See `issue #69 `_. [maurits]\n\n- Updated default varnish 4 version to latest 4.1.11. [maurits]\n\n- Pick up vcl_hash custom code insertion again from the buildout recipe values.\n It was defined in the varnish templates but never picked up.\n [fredvd]\n\n- Initial Varnish 6 support.\n [cleberjsantos]\n\n- Fix custom vcl code insertion for ``vcl_purge``\n [mamico]\n\n- Fix grace-sick default.\n [mamico]\n\n2.2.0 (2018-01-05)\n------------------\n\n- Initial Varnish 5 support.\n vcl-version parameter has been added to control\n `Varnish VCL Syntax format version `_.\n [maurits, jensens, cleberjsantos]\n\n\n2.1.0 (2017-12-18)\n------------------\n\n- Use 4.1 version by default (4.0 was default until now). [maurits]\n\n\n2.0 (2017-12-15)\n----------------\n\n- When using varnish 4.1, use varnish 4.1.9.\n 4.0 is still the default. [cleberjsantos, maurits]\n\n- fix default value for ``COOKIE_PASS_DEFAULT`` not matching any other\n urls than the intended static resources.\n [petschki]\n\n\n2.0a8 (2017-11-03)\n------------------\n\n- New: refactor start script as Jinja2 template\n [petschki]\n\n- Fix to failing travis tests, ``bin/createcoverage`` tries to open browser.\n [instification]\n\n- Stripped query string before testing which urls to strip cookies on.\n https://github.com/collective/plone.recipe.varnish/issues/42 [instification]\n\n- Fix custom vcl code insertion for ``vcl_backend_fetch`` and ``vcl_backend_response``\n Update documentation\n [petschki]\n\n- Fix parameter for jailed user in ``varnish_version=4.1``\n [petschki]\n\n- update documentation for ``varnish_version`` which only makes sense to be set in\n the build-part.\n [petschki]\n\n\n2.0a7 (2017-08-16)\n------------------\n\n- Changed default downloads to ``.tgz`` instead of ``.tar.gz``.\n For some reason they were renamed after the last release of this recipe.\n [maurits]\n\n\n2.0a6 (2017-08-15)\n------------------\n\n- Updated default urls to `varnish security releases `_.\n Also updated these urls to not use the ``repo.varnish-cache.org`` domain,\n because those links will stop working at `31 August 2017 `_.\n [maurits]\n\n- Fix VCL director: from round-robin to round_robin, tests refactored.\n [cleberjsantos]\n\n\n2.0a5 (2016-08-29)\n------------------\n\n- Made three possible values for the ``varnish_version`` option. 4.0\n (uses 4.0.3), 4.1 (uses 4.1.3), 4 (uses 4.1.3). 4.0 is the default for now.\n 4 is intended to be updated to 4.2.x when this is released and found\n to work.\n [maurits]\n\n- Fix: to disable the secret-file authentication, an empty parameter should be\n passed to varnishd on startup.\n [fredvd, nutjob4life]\n\n\n2.0a4 (2016-02-23)\n------------------\n\n- New: add option for secret-file in the script part so you can communicate to\n varnish with varnishadm. See docs for usage and secret-file generation.\n [fredvd]\n\n- Fix: Split at max on two ':' to get a max of 3 parts as raw_backends\n [jensens]\n\n\n2.0a3 (2015-12-22)\n------------------\n\n- re-release: 2.0a2 was a brown bag release\n [jensens]\n\n2.0a2 (2015-12-22)\n------------------\n\n- Fix daemon location of script part of the recipe (/usr/bin/varnishd was\n always used.\n [fredvd]\n\n- Fix tests, download Varnish 4.0.3 as download.\n [fredvd]\n\n2.0a1 (2015-03-02)\n------------------\n\n- refactoring and cleanup of the whole recipe and vcl generation:\n\n - skip support of varnish < v4.0, use 1.x series for older varnish support.\n - do not generate vcl code in python\n - use jinja2 templates for vcl\n - refactor vcl generation out in own testable class\n - change fixup cookies into a cookie whitelist\n - split up recipe in 3 parts: build, configuration generation and script\n generation.\n\n [jensens]\n\n\n1.4 (unreleased)\n----------------\n\n- Fix test for running in the Varnish 2 or later.\n [cleberjsantos]\n\n- Fixup VCL template Varnish 3.\n [cleberjsantos]\n\n- add saint-mode for varnish_version 3.\n [cleder, cleberjsantos]\n\n- set a default download-url for varnish_version 3.\n [cleder]\n\n- Fixup string concat for varnish_version 3.\n [damaestro]\n\n- Add zope2_vhm_port to be able to explicitly define a response\n port in VHM URLs.\n [damaestro]\n\n- Add zope2_vhm_ssl to use VHM to render https urls.\n [damaestro]\n\n- Add zope2_vhm_ssl_port to be able to explicitly define a response\n port in VHM URLs for ssl.\n [damaestro]\n\n- Update verbose-headers to use upstream debug example:\n https://www.varnish-cache.org/trac/wiki/VCLExampleHitMissHeader\n [damaestro]\n\n- Add cookie-fixup to better support caching of plone conent\n and to ensure no authenticated content gets cached.\n http://developer.plone.org/hosting/varnish.html\n [damaestro]\n\n- Update VCL templates to be more flexible.\n [damaestro]\n\n\n1.3 (2013-08-21)\n----------------\n\n- Add varnish_version option in order to control vcl generation for\n varnish version >= 3\n [rnix]\n\n\n1.2.2 (2012-10-14)\n------------------\n\n- Moved to https://github.com/collective/plone.recipe.varnish\n [maurits]\n\n\n1.2.1 (2011-05-13)\n------------------\n\n- Update known good Varnish to 2.1.5.\n [elro]\n\n- Add vcl_recv, vcl_hit, vcl_miss, vcl_fetch, vcl_deliver, vcl_pipe options to\n insert arbitrary vcl.\n [elro]\n\n\n1.2 (2011-01-11)\n----------------\n\n- Added new options ``cache-type``, ``cache-location`` for specifying type of\n Varnish storage (such as using malloc for alternative storage) and setting a\n custom location for said storage\n [davidjb]\n\n- Added additional unit tests to check Varnish initialisation script\n [davidjb]\n\n- Added new option 'purge-hosts'. Enables additional addresses allowed to purge.\n [jensens]\n\n- Added the `name` option to be able to define the directory varnishd\n puts temporary files to and identify the instance when using varnishlog\n or varnishstat.\n [fRiSi]\n\n- fixed configuration for verbose-headers=on (context in vlc_fetch is\n bresp instead of obj in newer varnish versions)\n [fRiSi]\n\n1.1 (2010-08-05)\n----------------\n\n- Changed the default cache size to 256M from 1G.\n [hannosch]\n\n- Updated Varnish to 2.1.3.\n [hannosch]\n\n1.1b1 (2010-04-25)\n------------------\n\n- Updated advertised Varnish version to 2.1 and adjusted config.\n [hannosch]\n\n- Correct documentation for the ``daemon`` setting and remove the default.\n [hannosch]\n\n- Removed the deprecated build recipe.\n [hannosch]\n\n- Added basic test infrastructure and a test for the simple buildout.\n [hannosch]\n\n- Use the built-in set type instead of the deprecated sets module. This recipe\n now requires at least Python 2.4.\n [hannosch]\n\n- Added the ability to configure runtime parameters in the varnish runner\n configuration and added information to the documentation for it.\n [benliles]\n\n- Improve readability of the generated config.\n [ldr]\n\n1.0.2 (2010-01-18)\n------------------\n\n- Update proposed Varnish to 2.0.6.\n [hannosch]\n\n- Further documentation cleanup.\n [hannosch, vincentfretin]\n\n1.0.1 (2009-11-27)\n------------------\n\n- Expose the ``download-url`` of a known-good Varnish release that works with\n the configuration produced by the instance recipe.\n [hannosch]\n\n- Consistently use tabs in the generated vcl file.\n [hannosch]\n\n- Whitespace and documentation cleanup.\n [hannosch]\n\n\n1.0 (2009-08-27)\n----------------\n\n* Made the vcl template build its acl purge section. At present, the vcl will\n only allow purges coming from the local host. If we have multiple hosts that\n are separate from localhost, any PURGE requests will be denied without this.\n See http://varnish.projects.linpro.no/wiki/VCLExamplePurging\n [rockdj]\n\n* Added ability to set various Varnish timeouts (connect_timeout,\n first_byte_timeout, and between_bytes_timeout) from each option in the\n buildout. Default values are set at Varnish defaults of 0.4s for\n connect_timeout, and 60s for between_bytes_timeout. Time for\n first_byte_timeout is set at 300s as per plone.recipe.varnish 1.0rc9.\n [rockdj]\n\n* Set `req.http.host` for incoming virtual hosted URLs. Without setting this,\n purge requests sent from hosts other than localhost (the only host in the acl\n purge list) will result in a 404 message. See\n http://davidjb.com/blog/2009/01/plone-varnish-configuration-cache-hits-purge-fails\n [rockdj]\n\n\n1.0rc11 (2009-06-27)\n--------------------\n\n* Reintroduced grace options. What the varnish documentation say about grace:\n \"varnish serves stale (but cacheable) objects while retrieving object from\n backend\". The problem is \"default_ttl\" value is 120s (see\n bin/varnishd/mgt_param.c in varnish 2.0.4). Added a special rule for\n createObject url to not look up in the cache.\n [vincentfretin]\n\n\n1.0rc10 (2009-06-26)\n--------------------\n\n* 1.0rc9 generated broken configuration with balancer=none\n [vincentfretin]\n\n\n1.0rc9 (2009-06-25)\n-------------------\n\n* Do not set req.grace and obj.grace. See\n http://vincentfretin.ecreall.com/articles/varnish-user-be-careful\n [vincentfretin, maurits]\n\n* Removed `header_hit_deliver` and `header_hit_notcacheable` debug messages\n from default template. It is not safe to assign to the object during\n `vcl_hit` until http://varnish.projects.linpro.no/ticket/310 is not fixed.\n See also http://kristian.blog.linpro.no/2009/05/25/common-varnish-issues.\n [hannosch]\n\n* Updated to refer to Varnish 2.0.4. Added a `first_byte_timeout` value of\n 300 seconds to the backend definitions. This is a new option since Varnish\n 2.0.3 and by default set to 60 seconds. This is arguably too low for certain\n edit operations in Plone sites.\n [hannosch]\n\n\n1.0rc8 (2008-02-12)\n-------------------\n\n* Remove the custom vcl_hash from the template. Adding the Accept-Encoding\n header to the cache break effectively breaks purging since nobody will\n ever include those headers in a PURGE request. To make this safe we just\n remove the Accept-Encoding header from all incoming requests as well.\n [wichert]\n\n\n1.0rc7 (2008-11-26)\n-------------------\n\n* Be more explicit about deprecating the :build entry point.\n [wichert]\n\n* Make the :instance specifier optional: after :build has been removed\n we can deprecate :instance as well.\n [wichert]\n\n\n1.0rc6 (2008-09-22)\n-------------------\n\n* Deprecate plone.recipe.varnish:build in favour of zc.recipe.cmmi: it does\n not make sense to duplicate its logic here.\n [wichert]\n\n* Add feature to enable verbose headers in varnish.vcl. This is primary\n interesting for debugging of cache-settings. See README.txt.\n [jensens]\n\n* Deal better with sources which do not have executable-bits set or\n are svn exports.\n [wichert]\n\n* The 1.0rc5 release was broken and has been retracted. Currently the trunk\n is only usable with the Varnish 2.0-beta1 and later.\n [hannosch]\n\n\n1.0rc5 (2008-04-27)\n-------------------\n\n* Pipe is evil: it pipes the whole connection to the backend which means\n varnish will no longer process any further requests if HTTP pipelining is\n used. Switch to using pass instead.\n [wichert]\n\n* Add a default_ttl of zero seconds to the Varnish runner to avoid a Varnish\n bug with the handling of an Expires header with a date in the past.\n [newbery]\n\n* Merged branches/newbery-hostnamepath.\n [newbery]\n\n* We don't need to include Accept-Encoding in the hash. Varnish takes care\n of Vary negotiation already.\n [newbery]\n\n\n1.0rc4 (2008-03-18)\n-------------------\n\n* Fixed typos / whitespace.\n [hannosch]\n\n* Varnish 1.1.2 is out.\n [wichert]\n\n* Merged witsch-foreground-support back to trunk.\n [witsch]\n\n* Use a pidfile.\n [wichert]\n\n\n1.0rc3 (2007-09-02)\n-------------------\n\n* Fixed a bug where options[\"location\"] was being used before it was being set.\n [rocky]\n\n* Made the module name determination a little more robust during\n createVarnishConfig so that recipes that specify version deps still work.\n [rocky]\n\n* Do not use defaults for user and group.\n [wichert]\n\n* We do need the parts: we use it for the file storage.\n [wichert]\n\n\n1.0rc2 (2007-08-29)\n-------------------\n\n* Add an option to use an existing configuration file.\n [wichert]\n\n* Remove hardcoded caching for images, binaries, CSS and javascript. This\n should be done by the backend server or a custom varnish configuration.\n [wichert]\n\n* Add Accept-Encoding to the cache key so we can handle compressed content.\n [wichert]\n\n* Test if a bin-directory exists. This allows us to compile varnish 1.0\n which does not have an sbin directory.\n [wichert]\n\n\n1.0rc1 (2007-08-27)\n-------------------\n\n* Document the OSX bugfix we apply when building varnish.\n [wichert]\n\n* Add a dummy update method to prevent needless recompiles.\n [wichert]\n\n* Update for Varnish 1.1.1.\n [wichert]\n\n\n1.0b2 (2007-08-25)\n------------------\n\n* When building from svn, we need to run autogen.sh.\n [optilude]\n\n* Refactor the recipe: there are now separate recipes to build and configure\n Varnish. This makes it possible to reconfigure varnish without having to\n recompile with as well as using an already installed varnish.\n [wichert]\n\n* Move the OSX patching code into a separate method.\n [wichert]\n\n* Use pass for non-GET/HEAD requests. This makes a bit more sense and fixes a\n login problem for Plone sites.\n [wichert]\n\n* Reorganize a bit for readability.\n [wichert]\n\n* Support Python 2.3 as well.\n [wichert]\n\n* Make it possible to specify the user and group as well.\n [wichert]\n\n* Do not create the source directory - we move the extracted source in its\n place later.\n [wichert]\n\n* If running on OS X, patch libtool as described in\n http://varnish.projects.linpro.no/ticket/118 and\n http://thread.gmane.org/gmane.comp.web.varnish.misc/668/focus=669.\n [optilude]\n\n* VCL is not C. You need the curlies even on single-line if statements.\n [optilude]\n\n* This rewriting style only works on Zope 3 - Zope 3 reinvented that wheel.\n [wichert]\n\n* Add support for If-Modified-Since and If-None-Match requests.\n Thanks to newbery for the suggstions.\n [wichert]\n\n* Explicitly mention that there is nothing Plone or Zope specific about\n this recipe.\n [wichert]\n\n\n1.0b1 (2007-08-04)\n------------------\n\n* More documentation.\n [wichert]\n\n* Ignore the port information in the host header.\n [wichert]\n\n* Use the port varnish is bound to in the VHM mapping.\n [wichert]\n\n* Define all default values centrally.\n [wichert]\n\n* Add support for Zope virtual hosts.\n [wichert]\n\n* Add support for virtual hosting.\n [wichert]\n\n* Initial import of Varnish recipe.\n [wichert]\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://pypi.python.org/pypi/plone.recipe.varnish", "keywords": "buildout varnish cache proxy", "license": "BSD", "maintainer": "", "maintainer_email": "", "name": "plone.recipe.varnish", "package_url": "https://pypi.org/project/plone.recipe.varnish/", "platform": "", "project_url": "https://pypi.org/project/plone.recipe.varnish/", "project_urls": { "Homepage": "https://pypi.python.org/pypi/plone.recipe.varnish" }, "release_url": "https://pypi.org/project/plone.recipe.varnish/2.3.0/", "requires_dist": [ "jinja2 (>=2.7.3)", "setuptools", "zc.buildout", "zc.recipe.cmmi", "interlude ; extra == 'test'", "ipdb ; extra == 'test'" ], "requires_python": "", "summary": "Build and/or configure Varnish Cache with zc.buildout", "version": "2.3.0" }, "last_serial": 4989764, "releases": { "1.0": [ { "comment_text": "", "digests": { "md5": "bee5249ed189a224f0bd0fff9f686286", "sha256": "dfb8200f029ebd8487ba6125355594ff382089688ff26b63a26c173842f65a6f" }, "downloads": -1, "filename": "plone.recipe.varnish-1.0.tar.gz", "has_sig": false, "md5_digest": "bee5249ed189a224f0bd0fff9f686286", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15814, "upload_time": "2009-08-27T10:18:30", "url": "https://files.pythonhosted.org/packages/b3/0e/994a9c6b6db494e95ba74d194e4b63107b29c3c0348a507d36e019114165/plone.recipe.varnish-1.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "5ecc390032ea78dfc1cba50494e2f981", "sha256": "75bf20b1cf9fd49651547d0d69e137cdc29466878c6ba2e5675c4812e48affcc" }, "downloads": -1, "filename": "plone.recipe.varnish-1.0.1.zip", "has_sig": false, "md5_digest": "5ecc390032ea78dfc1cba50494e2f981", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28916, "upload_time": "2009-11-27T15:57:22", "url": "https://files.pythonhosted.org/packages/e7/43/645cef5cb053e9adaeec0132a2dd44d8e6671383b1e6706c5485f4658176/plone.recipe.varnish-1.0.1.zip" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "58e41b1a880d5e363c120f279a82e44b", "sha256": "6f593acd3979f9202fa4df1806cc2f477aee9e9a6e220d9cb3c3f09ef24625ca" }, "downloads": -1, "filename": "plone.recipe.varnish-1.0.2.zip", "has_sig": false, "md5_digest": "58e41b1a880d5e363c120f279a82e44b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27900, "upload_time": "2010-01-18T18:59:23", "url": "https://files.pythonhosted.org/packages/2b/33/564fb0b43feee32dfc2b63cb847a87e9314c1242ea74b6479590811446bf/plone.recipe.varnish-1.0.2.zip" } ], "1.0b1": [ { "comment_text": "", "digests": { "md5": "1ee0e3cff27943f903dccd6a2ef519c9", "sha256": "3004584647a8d93ae68e01f97d26c16b200b64b08124ab18158755840da3b207" }, "downloads": -1, "filename": "plone.recipe.varnish-1.0b1-py2.4.egg", "has_sig": false, "md5_digest": "1ee0e3cff27943f903dccd6a2ef519c9", "packagetype": "bdist_egg", "python_version": "2.4", "requires_python": null, "size": 11172, "upload_time": "2007-08-03T22:07:23", "url": "https://files.pythonhosted.org/packages/bf/e0/4320c4993df9e1ec926eb09439f3765fc7a99dd07d7d792bee0a43389f07/plone.recipe.varnish-1.0b1-py2.4.egg" }, { "comment_text": "", "digests": { "md5": "da6f93da3700c120d01f386867842147", "sha256": "4f0bbd73f164415cba3884ed229bbd2fa15be77f27ed17b7f8c9e342adc6f33c" }, "downloads": -1, "filename": "plone.recipe.varnish-1.0b1.tar.gz", "has_sig": false, "md5_digest": "da6f93da3700c120d01f386867842147", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5851, "upload_time": "2007-08-03T22:07:23", "url": "https://files.pythonhosted.org/packages/8b/35/6f1f6bfb3a522d18a2307231a061926a31e948eb8fa1d3dd2607e60759b0/plone.recipe.varnish-1.0b1.tar.gz" } ], "1.0b2": [ { "comment_text": "", "digests": { "md5": "dcf05f5b26a321b8e2ccc9c2675f4ce8", "sha256": "6585523f3dcf06a96fb322a7956eff92d88617bd8a7dfec063917838086ee222" }, "downloads": -1, "filename": "plone.recipe.varnish-1.0b2-py2.4.egg", "has_sig": false, "md5_digest": "dcf05f5b26a321b8e2ccc9c2675f4ce8", "packagetype": "bdist_egg", "python_version": "2.4", "requires_python": null, "size": 11846, "upload_time": "2007-08-23T08:24:41", "url": "https://files.pythonhosted.org/packages/5c/3b/21e5c2ccbd3a8af7a55a074feccfbbca75a05efa7c661ac1299c34fa206b/plone.recipe.varnish-1.0b2-py2.4.egg" }, { "comment_text": "", "digests": { "md5": "4bbbd208643d492902db37affb0db284", "sha256": "79b868caa40f455ee52951fac0756951fc1c45b747708c74e344ea89ce840deb" }, "downloads": -1, "filename": "plone.recipe.varnish-1.0b2.tar.gz", "has_sig": false, "md5_digest": "4bbbd208643d492902db37affb0db284", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6352, "upload_time": "2007-08-23T08:24:40", "url": "https://files.pythonhosted.org/packages/9f/68/52181689bd2226b4d4384163a277ded1b2eb9e2108ce25d0c418d282acdd/plone.recipe.varnish-1.0b2.tar.gz" } ], "1.0b3": [ { "comment_text": "", "digests": { "md5": "38f10b7d716712480dd40ba2b261db40", "sha256": "a7cedd01db92b5a81269ad3b3b59af645db5159ece779ce0d1852532042c14a5" }, "downloads": -1, "filename": "plone.recipe.varnish-1.0b3-py2.4.egg", "has_sig": false, "md5_digest": "38f10b7d716712480dd40ba2b261db40", "packagetype": "bdist_egg", "python_version": "2.4", "requires_python": null, "size": 12412, "upload_time": "2007-08-24T21:26:41", "url": "https://files.pythonhosted.org/packages/b1/1f/0efc2e8db747f81438583350dbd345db27c2188ab87dab4184c24535f822/plone.recipe.varnish-1.0b3-py2.4.egg" }, { "comment_text": "", "digests": { "md5": "a2bde24ab5ecf4b2e5a7648b2243cf24", "sha256": "a16adec4a94f6c66c32b2ee16060d597c203f7116767208e9cb6360f5eade843" }, "downloads": -1, "filename": "plone.recipe.varnish-1.0b3.tar.gz", "has_sig": false, "md5_digest": "a2bde24ab5ecf4b2e5a7648b2243cf24", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6724, "upload_time": "2007-08-24T21:26:41", "url": "https://files.pythonhosted.org/packages/ee/8c/38d188ba52db9bdc5dc8c816b68afcbd830a23d0a6e7b22cc79b0cc5bf5f/plone.recipe.varnish-1.0b3.tar.gz" } ], "1.0b4": [ { "comment_text": "", "digests": { "md5": "e3c074f34cda284e19bd3f0c92e42089", "sha256": "23e573c53713af609ca107c9d0df41e5e0386e59f92556d8ee071fa2e3fa4fb7" }, "downloads": -1, "filename": "plone.recipe.varnish-1.0b4-py2.4.egg", "has_sig": false, "md5_digest": "e3c074f34cda284e19bd3f0c92e42089", "packagetype": "bdist_egg", "python_version": "2.4", "requires_python": null, "size": 12478, "upload_time": "2007-08-25T19:41:44", "url": "https://files.pythonhosted.org/packages/83/30/82f3628b0ca0f3783832ab3ec8895df88e108331a53d69c649c08c5127a3/plone.recipe.varnish-1.0b4-py2.4.egg" }, { "comment_text": "", "digests": { "md5": "1432dfd57020e5e1c7b2398c8f30f37e", "sha256": "640f0ca03e7eab6ad8c4dcdb803f76eaeef885ab66855599a8b7573c10238cd4" }, "downloads": -1, "filename": "plone.recipe.varnish-1.0b4.tar.gz", "has_sig": false, "md5_digest": "1432dfd57020e5e1c7b2398c8f30f37e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6770, "upload_time": "2007-08-25T19:41:43", "url": "https://files.pythonhosted.org/packages/cd/96/fd3df78d9b16ac93cc225646756b2687e967eeff1643d7e865f0d1d7ca41/plone.recipe.varnish-1.0b4.tar.gz" } ], "1.0rc1": [ { "comment_text": "", "digests": { "md5": "55388d3b8c060aa9583eab2ca30a562a", "sha256": "f9b867f5c780ca90a95bffef8e9537378f1099198d1af2cd06c7b55308b8b626" }, "downloads": -1, "filename": "plone.recipe.varnish-1.0rc1-py2.4.egg", "has_sig": false, "md5_digest": "55388d3b8c060aa9583eab2ca30a562a", "packagetype": "bdist_egg", "python_version": "2.4", "requires_python": null, "size": 12581, "upload_time": "2007-08-27T14:20:40", "url": "https://files.pythonhosted.org/packages/8b/ed/0e961814004d2f92f1a40047bc23e9c66d513f6513039745bf679509de47/plone.recipe.varnish-1.0rc1-py2.4.egg" }, { "comment_text": "", "digests": { "md5": "8e5cbc75557896fecb92ce87280aac3c", "sha256": "1188f698e42a03ba8658c0f6ee421a2c5967bcb7147c11f570053ae824ca1120" }, "downloads": -1, "filename": "plone.recipe.varnish-1.0rc1.tar.gz", "has_sig": false, "md5_digest": "8e5cbc75557896fecb92ce87280aac3c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6825, "upload_time": "2007-08-27T14:20:40", "url": "https://files.pythonhosted.org/packages/16/ac/57c77f4cdcf0fe6532cf5ae1607607ce4d8012701d96c9f1fe63c4922135/plone.recipe.varnish-1.0rc1.tar.gz" } ], "1.0rc10": [ { "comment_text": "", "digests": { "md5": "805dad0084d1db17c017507172224fec", "sha256": "0901786dee8ef28069016bd5a6599afe229ba7b176fdf874b3a0a4da4793a372" }, "downloads": -1, "filename": "plone.recipe.varnish-1.0rc10.zip", "has_sig": false, "md5_digest": "805dad0084d1db17c017507172224fec", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25982, "upload_time": "2009-06-26T00:23:37", "url": "https://files.pythonhosted.org/packages/1d/0d/fcfd54d946d01dcf2dd01200fcffd231aa38d4de69d5c326e2e5a3778a35/plone.recipe.varnish-1.0rc10.zip" } ], "1.0rc11": [ { "comment_text": "", "digests": { "md5": "dde8a78887d834e5adaf708670af47aa", "sha256": "e17ebc5172f1a024561d9437be45ff68c1a06b07473b70c436e6cccc99ab4bfc" }, "downloads": -1, "filename": "plone.recipe.varnish-1.0rc11.zip", "has_sig": false, "md5_digest": "dde8a78887d834e5adaf708670af47aa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26484, "upload_time": "2009-06-27T15:57:03", "url": "https://files.pythonhosted.org/packages/d7/f9/d06bfb024208ec3b4d8a13dd3450b50fc5cf1ff9805a0c21b2833b3f0d93/plone.recipe.varnish-1.0rc11.zip" } ], "1.0rc2": [ { "comment_text": "", "digests": { "md5": "b53ee8ddf8395cd7a87bd8ab310f01fa", "sha256": "646d4329cd19432d5790ea485b0c54aa7cd190c841cb497631f5caf658c1219f" }, "downloads": -1, "filename": "plone.recipe.varnish-1.0rc2-py2.4.egg", "has_sig": false, "md5_digest": "b53ee8ddf8395cd7a87bd8ab310f01fa", "packagetype": "bdist_egg", "python_version": "2.4", "requires_python": null, "size": 12861, "upload_time": "2007-08-28T22:49:44", "url": "https://files.pythonhosted.org/packages/0e/75/e7c63e02f41b9420e1a3ad409dfb9fa2c6e23a09677dfa2c50fdd131541a/plone.recipe.varnish-1.0rc2-py2.4.egg" }, { "comment_text": "", "digests": { "md5": "43eefdaca32cda018dc90afa99babd8a", "sha256": "6ee57d2b238367551a2fc7c7f45d3f041f08fc9f96f68a84c2a69c9dbe561d4b" }, "downloads": -1, "filename": "plone.recipe.varnish-1.0rc2.tar.gz", "has_sig": false, "md5_digest": "43eefdaca32cda018dc90afa99babd8a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6888, "upload_time": "2007-08-28T22:49:43", "url": "https://files.pythonhosted.org/packages/58/e4/89ba75b5bf7c49bedd9bc2087747d66d42fadf889f987b312eaab4fd7f17/plone.recipe.varnish-1.0rc2.tar.gz" } ], "1.0rc3": [ { "comment_text": "", "digests": { "md5": "815b9e14302bed2bebb947f1e7a956e5", "sha256": "d39d9f15ef82048687d887054492c0a192a26f10dd86a53c621d98d645d716f0" }, "downloads": -1, "filename": "plone.recipe.varnish-1.0rc3-py2.4.egg", "has_sig": false, "md5_digest": "815b9e14302bed2bebb947f1e7a956e5", "packagetype": "bdist_egg", "python_version": "2.4", "requires_python": null, "size": 12909, "upload_time": "2007-09-02T18:57:30", "url": "https://files.pythonhosted.org/packages/ee/3d/43afc0bccec2c9541df71eb430af3f475f766190c6c7c700b79251614fd8/plone.recipe.varnish-1.0rc3-py2.4.egg" }, { "comment_text": "", "digests": { "md5": "4376e365e82f5bf75b01c4be40665a29", "sha256": "df8f1c96acc4f45ea8ec395613e297f42e64d42f85820f63fc13c2051e551e82" }, "downloads": -1, "filename": "plone.recipe.varnish-1.0rc3.tar.gz", "has_sig": false, "md5_digest": "4376e365e82f5bf75b01c4be40665a29", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6900, "upload_time": "2007-09-02T18:57:30", "url": "https://files.pythonhosted.org/packages/8f/fd/277ab679560a5d26e64c296b6e4018584e267c13816b92e67b31ca8e8b9d/plone.recipe.varnish-1.0rc3.tar.gz" } ], "1.0rc4": [ { "comment_text": "", "digests": { "md5": "bb712a5ca53ebbdefb86bd050e3a002c", "sha256": "1d92a46f08c343d381b6954fa2943d78427e95c96c0245954a9108c5c6dd6e6a" }, "downloads": -1, "filename": "plone.recipe.varnish-1.0rc4-py2.4.egg", "has_sig": true, "md5_digest": "bb712a5ca53ebbdefb86bd050e3a002c", "packagetype": "bdist_egg", "python_version": "2.4", "requires_python": null, "size": 13108, "upload_time": "2008-03-18T11:11:58", "url": "https://files.pythonhosted.org/packages/fe/05/6a4b98ea43836e38c669236b49cbd36cd4cdf8753a83e3dd4234760d9c5e/plone.recipe.varnish-1.0rc4-py2.4.egg" }, { "comment_text": "", "digests": { "md5": "910fd93cd8d753997fca5c5c6109b51b", "sha256": "c5e82c3e220bbcc01ef893eb216cd6f499db872a95d0797990530f381bbfe701" }, "downloads": -1, "filename": "plone.recipe.varnish-1.0rc4.tar.gz", "has_sig": true, "md5_digest": "910fd93cd8d753997fca5c5c6109b51b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7001, "upload_time": "2008-03-18T11:11:52", "url": "https://files.pythonhosted.org/packages/84/84/a1862bf9fee8d87a623db8e95e57995f0b748d7c9cb836942e4b4367ac81/plone.recipe.varnish-1.0rc4.tar.gz" } ], "1.0rc6": [ { "comment_text": "", "digests": { "md5": "18221dc204b798782c3a0703f541f813", "sha256": "507377da9f81803b31e56b48e51334d3997e0e3084702f97290b15e8e627ca95" }, "downloads": -1, "filename": "plone.recipe.varnish-1.0rc6.zip", "has_sig": false, "md5_digest": "18221dc204b798782c3a0703f541f813", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23118, "upload_time": "2008-09-22T14:49:13", "url": "https://files.pythonhosted.org/packages/fd/96/7c985fd06441bc8f51062a3ee3db9817ff3ffe416ef12cfbd0eeb9279b9a/plone.recipe.varnish-1.0rc6.zip" } ], "1.0rc7": [ { "comment_text": "", "digests": { "md5": "fe09a61a2c50ef3a2651321740d9aba3", "sha256": "ab9e14752312c9bb7165c0cfcd84c8e39ba76cdeece5ee2b3286d1bcdca64cac" }, "downloads": -1, "filename": "plone.recipe.varnish-1.0rc7.tar.gz", "has_sig": false, "md5_digest": "fe09a61a2c50ef3a2651321740d9aba3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15766, "upload_time": "2008-11-26T08:38:45", "url": "https://files.pythonhosted.org/packages/ce/f8/3f2ce74539fe2ecd3912b3e62408b2e3ad1d1a16ea4e35c01225afbd58c4/plone.recipe.varnish-1.0rc7.tar.gz" } ], "1.0rc8": [ { "comment_text": "", "digests": { "md5": "45154908609ba7fb516d9f006bb9bb69", "sha256": "0823fc73f3eed534d8b7e17ddf063a94098defaf9327dad3f811b48fef55be97" }, "downloads": -1, "filename": "plone.recipe.varnish-1.0rc8.zip", "has_sig": false, "md5_digest": "45154908609ba7fb516d9f006bb9bb69", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23808, "upload_time": "2009-02-12T18:12:29", "url": "https://files.pythonhosted.org/packages/87/3e/b3b7c0124738190e3d1486ffbe5db96327f30b38d511a9431f62f3f9324f/plone.recipe.varnish-1.0rc8.zip" } ], "1.0rc9": [ { "comment_text": "", "digests": { "md5": "19858e16c4fb68ca97f8ff86c75de472", "sha256": "391cd724c77f79a1c00ab8ce5059514775be790c6631100e159f7070ba6c09d0" }, "downloads": -1, "filename": "plone.recipe.varnish-1.0rc9.zip", "has_sig": false, "md5_digest": "19858e16c4fb68ca97f8ff86c75de472", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25842, "upload_time": "2009-06-25T23:44:09", "url": "https://files.pythonhosted.org/packages/c2/19/628db65e18d30df49018f498d23be781710bfbccdf8045dcbb17d4e9236a/plone.recipe.varnish-1.0rc9.zip" } ], "1.1": [ { "comment_text": "", "digests": { "md5": "dadbb710768483072d737efb574abc39", "sha256": "dffa148617fd794043d1a90b9a6972cbc74bf97a8190699a5e63fb17928ed1fd" }, "downloads": -1, "filename": "plone.recipe.varnish-1.1.zip", "has_sig": false, "md5_digest": "dadbb710768483072d737efb574abc39", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30919, "upload_time": "2010-08-05T11:18:50", "url": "https://files.pythonhosted.org/packages/59/9a/03bb1fba93ab0093334bc6c76ca8045561104884f7c7e6ed1872cc7a89e8/plone.recipe.varnish-1.1.zip" } ], "1.1b1": [ { "comment_text": "", "digests": { "md5": "2b4f3d0d0ac3e99dbbc06d87f08c9346", "sha256": "5a0523fdcd7f81a7a161d8182db61d4446dbb84cb47f3a7e5deb8fd65d3bbabe" }, "downloads": -1, "filename": "plone.recipe.varnish-1.1b1.zip", "has_sig": false, "md5_digest": "2b4f3d0d0ac3e99dbbc06d87f08c9346", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30859, "upload_time": "2010-04-25T15:41:54", "url": "https://files.pythonhosted.org/packages/34/e4/de37b84549932426ef0db0dab636e6459cc135f3b386aa9926d026b0bb90/plone.recipe.varnish-1.1b1.zip" } ], "1.2": [ { "comment_text": "", "digests": { "md5": "4eaa15560577fac76147030e87170be3", "sha256": "73cbd30e172487a27fcef21485c9957e60491e6ee718d0bce4074ad47423ae78" }, "downloads": -1, "filename": "plone.recipe.varnish-1.2.zip", "has_sig": false, "md5_digest": "4eaa15560577fac76147030e87170be3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33531, "upload_time": "2011-01-11T13:50:57", "url": "https://files.pythonhosted.org/packages/cb/5f/f22f1a69ca4b0c8c511d5efa18c5731882928554295f62d4f29128644d64/plone.recipe.varnish-1.2.zip" } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "d017e48098109b46761af57bfa1e8bbf", "sha256": "ebe12052dd121259844d7264c68a983c2b487bb4ab2c0739619022af7e506657" }, "downloads": -1, "filename": "plone.recipe.varnish-1.2.1.zip", "has_sig": false, "md5_digest": "d017e48098109b46761af57bfa1e8bbf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34157, "upload_time": "2011-05-13T15:33:25", "url": "https://files.pythonhosted.org/packages/e9/59/9016ed13ab620ce790df1ae9a6dde07d4899e17e1df8f91a83bd3a105761/plone.recipe.varnish-1.2.1.zip" } ], "1.2.2": [ { "comment_text": "", "digests": { "md5": "100f8bd4857926b8aa1c6decfd05626b", "sha256": "779694bdec990810cead469b597561114fa415d5be589762d352a18c5676a2f8" }, "downloads": -1, "filename": "plone.recipe.varnish-1.2.2.zip", "has_sig": false, "md5_digest": "100f8bd4857926b8aa1c6decfd05626b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 38492, "upload_time": "2012-10-14T00:54:18", "url": "https://files.pythonhosted.org/packages/7e/8f/95b7df03272115c7e899c98cb59c732e121f2f2432dcc03eda86f3e54885/plone.recipe.varnish-1.2.2.zip" } ], "1.3": [ { "comment_text": "", "digests": { "md5": "3ff88e57429041fa62f9c240ef2cf116", "sha256": "5f9f758a8c9f644169c6a48e0bc2fb65711cbfc4602db2636dc7e2fa956bf1a1" }, "downloads": -1, "filename": "plone.recipe.varnish-1.3.tar.gz", "has_sig": false, "md5_digest": "3ff88e57429041fa62f9c240ef2cf116", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26796, "upload_time": "2013-08-21T11:40:41", "url": "https://files.pythonhosted.org/packages/4f/e3/ccc023ea1c6a5a4e22b857494db6655f4dfb7d22d21d8519b76ed52e0e8f/plone.recipe.varnish-1.3.tar.gz" } ], "2.0": [ { "comment_text": "", "digests": { "md5": "c9276f9c8ea13a9c2e3e93d98cf0640e", "sha256": "ef4d2527ba3f4ad4d25fc59759ad4ea6cce8b7a7495ccb9a42473ceed2385b71" }, "downloads": -1, "filename": "plone.recipe.varnish-2.0-py2-none-any.whl", "has_sig": false, "md5_digest": "c9276f9c8ea13a9c2e3e93d98cf0640e", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 39878, "upload_time": "2017-12-15T13:21:51", "url": "https://files.pythonhosted.org/packages/c3/86/2b2a196c0396575ed131012e3607499e168c7c76b887ec850d9a40b511b0/plone.recipe.varnish-2.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "877a8f374691de1e4f9c131db31e955a", "sha256": "1adc7a51cdf1f2c13115107df1cf0654b91cb01570a079bf9d68a119e6fd0257" }, "downloads": -1, "filename": "plone.recipe.varnish-2.0.tar.gz", "has_sig": false, "md5_digest": "877a8f374691de1e4f9c131db31e955a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 47199, "upload_time": "2017-12-15T13:21:53", "url": "https://files.pythonhosted.org/packages/49/e1/4dad01b0e9497ce474594c6dba9fa1d1fc4e037498bd38a96c860c80dcdb/plone.recipe.varnish-2.0.tar.gz" } ], "2.0a1": [ { "comment_text": "", "digests": { "md5": "0feed7b4eccecab3be59ef5d5cec3d3f", "sha256": "92a726276356aeb51efb23b03c6d53eb4e3398c68b1d6a932928c9f2be9d4b0c" }, "downloads": -1, "filename": "plone.recipe.varnish-2.0a1.zip", "has_sig": false, "md5_digest": "0feed7b4eccecab3be59ef5d5cec3d3f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 51167, "upload_time": "2015-03-02T14:46:27", "url": "https://files.pythonhosted.org/packages/69/cb/10bff42c6885dd9547d1905f722230c1da9003687f885cf26a096219c829/plone.recipe.varnish-2.0a1.zip" } ], "2.0a2": [ { "comment_text": "", "digests": { "md5": "f8caec192abd1896ef3d56f65eb06fba", "sha256": "bde028551ae950519e0fdefbc9d4c4e7811c63b41059273fb487756fcb01b76f" }, "downloads": -1, "filename": "plone.recipe.varnish-2.0a2.tar.gz", "has_sig": false, "md5_digest": "f8caec192abd1896ef3d56f65eb06fba", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 40112, "upload_time": "2015-12-22T10:47:15", "url": "https://files.pythonhosted.org/packages/67/0c/c343739b997be457bdd98971329fe82aedc1eac9b39c2a35a9d4890a3c5b/plone.recipe.varnish-2.0a2.tar.gz" } ], "2.0a3": [ { "comment_text": "", "digests": { "md5": "6f4067758f6ac03eb9547e46371e70f0", "sha256": "0faea49c654f151cbe590de741e1f5a952172e2c25a0c6717d0dece6cf62410e" }, "downloads": -1, "filename": "plone.recipe.varnish-2.0a3.tar.gz", "has_sig": false, "md5_digest": "6f4067758f6ac03eb9547e46371e70f0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 40116, "upload_time": "2015-12-22T10:51:03", "url": "https://files.pythonhosted.org/packages/25/59/c70587595595f89e95d88157e31658264f403a7d93e09693d143fe61de9f/plone.recipe.varnish-2.0a3.tar.gz" } ], "2.0a4.dev0": [ { "comment_text": "", "digests": { "md5": "5e0a1cf1bb5a54c734d5310668f73b35", "sha256": "91ab5f5a139ba66065cefcc8af2bf77fdd7ba6532142593f532481ba5dc9fe26" }, "downloads": -1, "filename": "plone.recipe.varnish-2.0a4.dev0.tar.gz", "has_sig": false, "md5_digest": "5e0a1cf1bb5a54c734d5310668f73b35", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 43942, "upload_time": "2016-02-23T16:50:21", "url": "https://files.pythonhosted.org/packages/e3/85/0fcbb3ae6fb376e5e3ef8901a16c57ab52296fb0e59a727d8edc68700156/plone.recipe.varnish-2.0a4.dev0.tar.gz" } ], "2.0a5": [ { "comment_text": "", "digests": { "md5": "187fb3c8bc76203b5a30a793bb30b5c9", "sha256": "a3fc96f2e451d84943542380b81cc3d5654c83a54c4b927b03707e815530da7a" }, "downloads": -1, "filename": "plone.recipe.varnish-2.0a5.tar.gz", "has_sig": false, "md5_digest": "187fb3c8bc76203b5a30a793bb30b5c9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 45817, "upload_time": "2016-08-29T14:41:16", "url": "https://files.pythonhosted.org/packages/22/4f/ae3cb49b82d157fc57a32d00e172cc96c94997e32fa47a730b560fa0a029/plone.recipe.varnish-2.0a5.tar.gz" } ], "2.0a6": [ { "comment_text": "", "digests": { "md5": "c14a017c76806527b60dc4635a61f0fe", "sha256": "4f31bfb6ccb1c0a7fbd85d0660ec8803c59a946c600efc8e50b00834bb70cefd" }, "downloads": -1, "filename": "plone.recipe.varnish-2.0a6-py2-none-any.whl", "has_sig": false, "md5_digest": "c14a017c76806527b60dc4635a61f0fe", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 38613, "upload_time": "2017-08-15T12:10:35", "url": "https://files.pythonhosted.org/packages/ac/60/a0ef4c17f9317fe9c7afa0835aabd6e496cc528450c092fa7f9cb27a08df/plone.recipe.varnish-2.0a6-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d15fdc33135029d97d2a415fd818bac3", "sha256": "e74c8dc84c9d3ce7e536239c42450717e1a2fa0772d10bff4428a16907f7ed8b" }, "downloads": -1, "filename": "plone.recipe.varnish-2.0a6.tar.gz", "has_sig": false, "md5_digest": "d15fdc33135029d97d2a415fd818bac3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 45627, "upload_time": "2017-08-15T12:10:37", "url": "https://files.pythonhosted.org/packages/5f/9c/9934fe3d1647754d40f47fa5e48695848c9b2796f53265d1a28f5c33f419/plone.recipe.varnish-2.0a6.tar.gz" } ], "2.0a7": [ { "comment_text": "", "digests": { "md5": "63174f1810472cb7359f986444c43921", "sha256": "3ffcd6a5be9861289b46de556308fb2682930b773a6f1acd328592d67e82bf9a" }, "downloads": -1, "filename": "plone.recipe.varnish-2.0a7-py2-none-any.whl", "has_sig": false, "md5_digest": "63174f1810472cb7359f986444c43921", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 38725, "upload_time": "2017-08-16T11:44:52", "url": "https://files.pythonhosted.org/packages/f0/7b/eccdc1c47b4ff68d6977aa48726622c248615cef6f9d79883575ab6a7c0f/plone.recipe.varnish-2.0a7-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c98d9f89e7cf1a211ad5ed58e978ae74", "sha256": "a1b5e8c0b5c3d8923b9623c30be6bba0ec0492847a497a4013a6c6211c1d16ed" }, "downloads": -1, "filename": "plone.recipe.varnish-2.0a7.tar.gz", "has_sig": false, "md5_digest": "c98d9f89e7cf1a211ad5ed58e978ae74", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 45916, "upload_time": "2017-08-16T11:44:54", "url": "https://files.pythonhosted.org/packages/4f/02/0054802c563485bacd97faf6789f2ee498750efef51d643a34ab62f4473c/plone.recipe.varnish-2.0a7.tar.gz" } ], "2.0a8": [ { "comment_text": "", "digests": { "md5": "915be42c8ecd227620cf735af6d823dc", "sha256": "51ca1f59307d1ddcd155ea17a91858295c8d89546bcc2688508f613b2b4748c6" }, "downloads": -1, "filename": "plone.recipe.varnish-2.0a8-py2-none-any.whl", "has_sig": false, "md5_digest": "915be42c8ecd227620cf735af6d823dc", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 39726, "upload_time": "2017-11-03T13:21:45", "url": "https://files.pythonhosted.org/packages/cb/19/f6967bd46484144d4b420eed48e99eadf16001e991e5403dd363accfae79/plone.recipe.varnish-2.0a8-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a9c15b9f8354afb807c194c1dead32bd", "sha256": "8b2f4f4a7aaac27d435b125f7b560e9e3b4e3d7af8578cf0ad6de244eef69423" }, "downloads": -1, "filename": "plone.recipe.varnish-2.0a8.tar.gz", "has_sig": false, "md5_digest": "a9c15b9f8354afb807c194c1dead32bd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 46909, "upload_time": "2017-11-03T13:21:46", "url": "https://files.pythonhosted.org/packages/18/fc/dabb4c31272248fb2a4eaa6c61906b735536edd08a8f0687342ab8990b2c/plone.recipe.varnish-2.0a8.tar.gz" } ], "2.1.0": [ { "comment_text": "", "digests": { "md5": "d5c248a7137c7e9fd5678b7125471eaf", "sha256": "2001be2a98d7dd867ede9a96b3385dbc5e2ec7019644dac3ddcd4694aadb65dc" }, "downloads": -1, "filename": "plone.recipe.varnish-2.1.0-py2-none-any.whl", "has_sig": false, "md5_digest": "d5c248a7137c7e9fd5678b7125471eaf", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 39687, "upload_time": "2017-12-18T08:23:04", "url": "https://files.pythonhosted.org/packages/04/13/9c369629fcc37cfac70f89ec222845db2e06882f3d455ea78d5345593f05/plone.recipe.varnish-2.1.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f2b1ca87f055f5c24c0652f2b58c3b23", "sha256": "c5bd3843b445e8bc90eb8833e5d10d0a54a1f545abe56fc8a67ed9c73e6ba65d" }, "downloads": -1, "filename": "plone.recipe.varnish-2.1.0.tar.gz", "has_sig": false, "md5_digest": "f2b1ca87f055f5c24c0652f2b58c3b23", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 47019, "upload_time": "2017-12-18T08:23:06", "url": "https://files.pythonhosted.org/packages/6b/63/399aba2f3ddb0427eb89aca1ed5fb92dddd44f88337ad55cd02ea5785190/plone.recipe.varnish-2.1.0.tar.gz" } ], "2.2.0": [ { "comment_text": "", "digests": { "md5": "8cbf97e96e462e336e6c0053e0094061", "sha256": "bdfbb87fa697617ab83030c6929d8478597cb566a76e21a0638b24d57d721a8c" }, "downloads": -1, "filename": "plone.recipe.varnish-2.2.0-py2-none-any.whl", "has_sig": false, "md5_digest": "8cbf97e96e462e336e6c0053e0094061", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 44060, "upload_time": "2018-01-05T14:09:04", "url": "https://files.pythonhosted.org/packages/68/08/e91318ecb04da3dacf1640aa738d2f118fd310816bddcd1e646b0940e9b6/plone.recipe.varnish-2.2.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "931d376675a3a5699543fe286d71ec95", "sha256": "dfe1abb9decb1a08c7590d19af7d22653ad3b9d1ad1f3d97eeaa8524122e0c5f" }, "downloads": -1, "filename": "plone.recipe.varnish-2.2.0.tar.gz", "has_sig": false, "md5_digest": "931d376675a3a5699543fe286d71ec95", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 48496, "upload_time": "2018-01-05T14:09:07", "url": "https://files.pythonhosted.org/packages/68/97/fed1ff22580e27f0dfce014ebf93d949a95d07e1d13ef2d97fe47ff0c5ad/plone.recipe.varnish-2.2.0.tar.gz" } ], "2.3.0": [ { "comment_text": "", "digests": { "md5": "2754917815a5a196f8f18bc8f27264de", "sha256": "3eacf61cab512231b68ae257f9826f382653b9d586088f634908f20e2189783d" }, "downloads": -1, "filename": "plone.recipe.varnish-2.3.0-py2-none-any.whl", "has_sig": false, "md5_digest": "2754917815a5a196f8f18bc8f27264de", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 36511, "upload_time": "2019-03-26T22:04:46", "url": "https://files.pythonhosted.org/packages/38/3a/ca2fc1067db5ed01e898f128f85121a967c645052f4904ffd6b5f5a95cac/plone.recipe.varnish-2.3.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d1d0ef5756684e8c3f26d1ab01468526", "sha256": "172246bbee55f1379200a32ea21d10ddc1ddb7c98ec30e855a579aef73282b7e" }, "downloads": -1, "filename": "plone.recipe.varnish-2.3.0.tar.gz", "has_sig": false, "md5_digest": "d1d0ef5756684e8c3f26d1ab01468526", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 49222, "upload_time": "2019-03-26T22:04:48", "url": "https://files.pythonhosted.org/packages/08/af/28e0474501bda52f761c5d8c794b69eda5accd6180b223fcd00d0129c9e3/plone.recipe.varnish-2.3.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "2754917815a5a196f8f18bc8f27264de", "sha256": "3eacf61cab512231b68ae257f9826f382653b9d586088f634908f20e2189783d" }, "downloads": -1, "filename": "plone.recipe.varnish-2.3.0-py2-none-any.whl", "has_sig": false, "md5_digest": "2754917815a5a196f8f18bc8f27264de", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 36511, "upload_time": "2019-03-26T22:04:46", "url": "https://files.pythonhosted.org/packages/38/3a/ca2fc1067db5ed01e898f128f85121a967c645052f4904ffd6b5f5a95cac/plone.recipe.varnish-2.3.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d1d0ef5756684e8c3f26d1ab01468526", "sha256": "172246bbee55f1379200a32ea21d10ddc1ddb7c98ec30e855a579aef73282b7e" }, "downloads": -1, "filename": "plone.recipe.varnish-2.3.0.tar.gz", "has_sig": false, "md5_digest": "d1d0ef5756684e8c3f26d1ab01468526", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 49222, "upload_time": "2019-03-26T22:04:48", "url": "https://files.pythonhosted.org/packages/08/af/28e0474501bda52f761c5d8c794b69eda5accd6180b223fcd00d0129c9e3/plone.recipe.varnish-2.3.0.tar.gz" } ] }