From 9fa2b526d9c2a6d12b3324023acb979ed03553f1 Mon Sep 17 00:00:00 2001 From: "Jens W. Klein" Date: Wed, 7 Oct 2020 14:38:56 +0200 Subject: [PATCH 1/4] Remove hopelessly outdated proxy config examples --- docs/caching-profiles.rst | 1 - docs/caching-proxies.rst | 21 +--- docs/split-views.rst | 5 +- .../caching/proxy-configs/squid/README.txt | 22 ---- .../caching/proxy-configs/squid/buildout.cfg | 59 --------- .../squid/templates/httpd-vhost.conf.in | 68 ----------- .../squid/templates/squid.conf.in | 52 -------- .../proxy-configs/squid/templates/squid.in | 17 --- .../caching/proxy-configs/varnish/README.txt | 22 ---- .../proxy-configs/varnish/buildout.cfg | 57 --------- .../varnish/templates/httpd-vhost.conf.in | 45 ------- .../varnish/templates/varnish.vcl.in | 115 ------------------ .../varnish/templates/varnishd.in | 8 -- 13 files changed, 3 insertions(+), 489 deletions(-) delete mode 100644 plone/app/caching/proxy-configs/squid/README.txt delete mode 100644 plone/app/caching/proxy-configs/squid/buildout.cfg delete mode 100644 plone/app/caching/proxy-configs/squid/templates/httpd-vhost.conf.in delete mode 100644 plone/app/caching/proxy-configs/squid/templates/squid.conf.in delete mode 100644 plone/app/caching/proxy-configs/squid/templates/squid.in delete mode 100644 plone/app/caching/proxy-configs/varnish/README.txt delete mode 100644 plone/app/caching/proxy-configs/varnish/buildout.cfg delete mode 100644 plone/app/caching/proxy-configs/varnish/templates/httpd-vhost.conf.in delete mode 100644 plone/app/caching/proxy-configs/varnish/templates/varnish.vcl.in delete mode 100644 plone/app/caching/proxy-configs/varnish/templates/varnishd.in diff --git a/docs/caching-profiles.rst b/docs/caching-profiles.rst index 016f677..c5e8c16 100644 --- a/docs/caching-profiles.rst +++ b/docs/caching-profiles.rst @@ -31,7 +31,6 @@ The three default caching profiles: * **With caching proxy (and split-view caching)** An example profile for a caching proxy setup with split-view caching enabled. This example requires a special proxy setup. - See the proxy examples in the "proxy-configs" directory. Custom caching profiles diff --git a/docs/caching-proxies.rst b/docs/caching-proxies.rst index 46abad8..adb3780 100644 --- a/docs/caching-proxies.rst +++ b/docs/caching-proxies.rst @@ -103,25 +103,8 @@ before he had a new haircut. Installing and configuring a caching proxy ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -The ``plone.app.caching`` package includes some example buildout -configurations in the ``proxy-configs`` directory. Two versions are included: -one demonstrating a Squid-behind-Apache proxy setup and another demonstrating -a Varnish-behind-Apache proxy setup. Both examples also demonstrate how to -properly configure split-view caching. - -These configurations are provided for instructional purposes but with a little -modification they can also be used in production. To use in a real production -instance, you will need to adjust the configuration to match your setup. For a -simple standard setup, you might only need to change the ``hostname`` value in -the buildout.cfg. Read the README.txt files in each example for more -instructions. - -There are also some alternative buildout recipes for building and configuring -proxy configs: `plone.recipe.squid`_ and `plone.recipe.varnish`_. The examples -in this package do not use these recipes in favor of using a more explicit, -and hopefully more educational, template-based approach. Even if you decide to -use one of the automated recipes, it will probably be worth your while to -study the examples included in this package to get a few pointers. +There are buildout recipes for building and configuring proxy configs: `plone.recipe.squid`_ and `plone.recipe.varnish`_. + Running Plone behind Apache 2.2 with mod_cache ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/docs/split-views.rst b/docs/split-views.rst index e405ec5..fe70321 100644 --- a/docs/split-views.rst +++ b/docs/split-views.rst @@ -29,7 +29,4 @@ responses. Yet another solution involves intercepting the request and dynamically adding a special ``X-Anonymous`` header to the anonymous request and then adding ``Vary:X-Anonymous`` to the split view response so that this header will added -to the cache key. Examples of this last solution for both Squid and Varnish -are included in the ``proxy-configs`` directory of this package, which are -intended to be used in concert with something like the split-view caching -profile of ``plone.app.caching``. +to the cache key. diff --git a/plone/app/caching/proxy-configs/squid/README.txt b/plone/app/caching/proxy-configs/squid/README.txt deleted file mode 100644 index 39653ca..0000000 --- a/plone/app/caching/proxy-configs/squid/README.txt +++ /dev/null @@ -1,22 +0,0 @@ - -This is an example buildout demonstrating a Squid-behind-Apache proxy configuration optimized for a Plone site using plone.app.caching. - -This example also demonstrates one way to configure split-view caching (see the plone.app.caching readme) although it's also perfectly useable for the non-split-view caching case. Split-view caching is enabled by setting a "Vary: X-Anonymous" header and "s-maxage" value on the split-views to be cached, via the plone.app.caching control panel. - -To install, you first need to have buildout installed. See http://www.buildout.org/install.html - -Copy the entire contents of this directory to a new project directory and run buildout in that directory (for this example, let's assume a system-wide buildout is already installed). - -% cp -R * /path/to/project/ -% cd /path/to/project -% buildout - -This will initialize the project directory and run all the 'parts' as defined in buildout.cfg. - -- An Apache vhost configuration will be generated at "./etc/httpd-vhost.conf" - -- A Squid configuration file will be generated at "./etc/squid.conf" - -- A wrapper script to start up Squid will be generated at "./bin/squid" - -For more detail, see the comments in the configuration files. In particular, you may wish to study the Apache vhost configuration as much of the "magic" is encapsulated therein. \ No newline at end of file diff --git a/plone/app/caching/proxy-configs/squid/buildout.cfg b/plone/app/caching/proxy-configs/squid/buildout.cfg deleted file mode 100644 index a0cc332..0000000 --- a/plone/app/caching/proxy-configs/squid/buildout.cfg +++ /dev/null @@ -1,59 +0,0 @@ -# Example Squid buildout for use with plone.app.caching - -[buildout] -parts = - squid - squid-config - squid-runner - apache-vhost - chmod - - -[squid] -recipe = zc.recipe.cmmi -url = http://www.squid-cache.org/Versions/v2/2.7/squid-2.7.STABLE9.tar.gz - - -[squid-config] -recipe = collective.recipe.template -input = templates/squid.conf.in -output = ${buildout:directory}/etc/squid.conf - -# misc template variables -hostname = example.com -bind = 127.0.0.1:3128 -pid = ${buildout:directory}/var/squid.pid -log = ${buildout:directory}/var/squid-cache.log -cache-dir = ${buildout:directory}/var/squidstorage -cache-size = 2000 -backend-host = 127.0.0.1 -backend-port = 8080 - - -[squid-runner] -recipe = collective.recipe.template -input = templates/squid.in -output = ${buildout:directory}/bin/squid - -# misc template variables -daemon = ${squid:location}/sbin/squid -config = ${squid-config:output} - - -[apache-vhost] -recipe = collective.recipe.template -input = templates/httpd-vhost.conf.in -output = ${buildout:directory}/etc/httpd-vhost.conf - -# misc template variables -hostname = ${squid-config:hostname} -backend = ${squid-config:bind} -zope-path = Plone - - -[chmod] -recipe = plone.recipe.command -command = chmod 755 ${squid-runner:output} -update-command = ${chmod:command} - - diff --git a/plone/app/caching/proxy-configs/squid/templates/httpd-vhost.conf.in b/plone/app/caching/proxy-configs/squid/templates/httpd-vhost.conf.in deleted file mode 100644 index 5187839..0000000 --- a/plone/app/caching/proxy-configs/squid/templates/httpd-vhost.conf.in +++ /dev/null @@ -1,68 +0,0 @@ -# Apache configuration example for Squid-behind-Apache setup - -# Include the following in the Apache config like so: -# -# Include ${buildout:directory}/etc/httpd-vhost.conf -# -# Or copy/paste into the relevant VirtualHost block -# or into the default host if not using VirtualHosts. - - -# The main domain - - ServerName ${apache-vhost:hostname} - RewriteEngine On - - # Split-view caching: Add "X-Anonymous" to request - # to segregate authenticated/anonymous responses - SetEnvIf Authorization .+ is_authenticated - SetEnvIf Cookie "(^|.*; )__ac=" is_authenticated - RequestHeader set X-Anonymous True env=!is_authenticated - - # Split-view caching: Rewrite s-maxage in response - # to exclude from intermediary caching proxies - Header edit Cache-Control "^(.*)s-maxage=[0-9]+(.*)$" "$1s-maxage=0$2" - - # Normalize Accept-Encoding header to optimize variant caching - # 1) if gzip is allowed, rewrite Accept-Encoding to just "gzip" - # 2) if gzip is not allowed, unset Accept-Encoding header - # 3) also unset Accept-Encoding for images and other common binaries - SetEnvIfNoCase Request_URI "\.(jpe?g|png|gif|swf|pdf|gz|tgz|bz2|tbz|zip)$" unset_accept_encoding - SetEnvIf Request_URI "/image_[^/]*$" unset_accept_encoding - SetEnvIf Accept-Encoding ".*gzip.*" set_accept_encoding !env=unset_accept_encoding - RequestHeader unset Accept-Encoding - RequestHeader set Accept-Encoding gzip env=set_accept_encoding - - # Remove trailing slash to avoid duplicates in caching proxy, - # 1) for search engines, redirect to normalized version - # 2) for everyone else, just strip the trailing slash - RewriteCond %{HTTP_USER_AGENT} ^Yahoo.* [NC,OR] - RewriteCond %{HTTP_USER_AGENT} ^Googlebot.* [NC,OR] - RewriteCond %{HTTP_USER_AGENT} ^msnbot.* [NC] - RewriteRule ^/(.*)/$ /$1 [R=301] - RewriteRule ^/(.*)/$ /$1 - - # And finally, pass the request to the backend - RewriteRule ^/(.*)$ http://${apache-vhost:backend}/VirtualHostBase/http/${apache-vhost:hostname}:80/${apache-vhost:zope-path}/VirtualHostRoot/$1 [P] - - - - -# Additional domains: -# Avoid the use of the ServerAlias directive in the main domain VirtualHost -# container as this tends to undermine the ability of external search engines -# to accurately assess page uniqueness. Instead perform a 301 redirect like so. - - ServerName www.${apache-vhost:hostname} - ServerAlias *.${apache-vhost:hostname} - RedirectPermanent / http://${apache-vhost:hostname}/ - - - -# References -# http://plone.org/documentation/kb/plone-apache/vhm -# http://httpd.apache.org/docs/2.2/rewrite -# http://httpd.apache.org/docs/2.2/mod/mod_setenvif.html -# http://httpd.apache.org/docs/2.2/mod/mod_headers.html - - diff --git a/plone/app/caching/proxy-configs/squid/templates/squid.conf.in b/plone/app/caching/proxy-configs/squid/templates/squid.conf.in deleted file mode 100644 index 6fadb2b..0000000 --- a/plone/app/caching/proxy-configs/squid/templates/squid.conf.in +++ /dev/null @@ -1,52 +0,0 @@ -# Configuration file optimized for squid 2.7+. It is untested with squid 3.x. -# See http://www.squid-cache.org/Doc/config/ for details - -# Assumes a single backend behind Squid (which could be a single -# zope instance or a load balancer serving multiple zeo clients). -# To change this to support multiple backends, see the docs linked above - - -visible_hostname ${squid-config:hostname} -http_port ${squid-config:bind} vhost defaultsite=${squid-config:hostname} -pid_filename ${squid-config:pid} - -# You may need to set the following if you need to start Squid as root. -# This might be the case if you need to bind to port 80. -#cache_effective_user zope -#cache_effective_group zope - -## Log files (http://wiki.squid-cache.org/SquidFaq/SquidLogs) -cache_log ${squid-config:log} -cache_store_log none -access_log none - -# Cache storage -# (for a faster cache storage option see, -# http://wiki.squid-cache.org/Features/CyclicObjectStorageSystem) -cache_dir ufs ${squid-config:cache-dir} ${squid-config:cache-size} 16 256 -cache_mem 256 MB -maximum_object_size 5 MB -maximum_object_size_in_memory 1 MB - -# Purge access - zope servers can purge but nobody else -# (works best if Zope and Apache are on different IPs -# or if Apache is configured to reject PURGE requests) -acl zope_servers src ${squid-config:backend-host} -acl purge method PURGE -http_access allow zope_servers purge -http_access deny purge - -# Deny caching of POST requests -acl post_requests method POST -cache deny post_requests - -# Cache Peers -cache_peer ${squid-config:backend-host} parent ${squid-config:backend-port} 0 no-query originserver login=PASS name=peer_0 - -# Cache Peer Access -acl all src all -acl path_0 urlpath_regex /VirtualHostBase -http_access allow path_0 -cache_peer_access peer_0 allow path_0 -cache_peer_access peer_0 deny all - diff --git a/plone/app/caching/proxy-configs/squid/templates/squid.in b/plone/app/caching/proxy-configs/squid/templates/squid.in deleted file mode 100644 index fb319c4..0000000 --- a/plone/app/caching/proxy-configs/squid/templates/squid.in +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/sh - -if [ $# -ge 1 ]; then - - ${squid-runner:daemon} \ - -f "${squid-runner:config}" \ - "$@" - -else - - ${squid-runner:daemon} -z \ - -f "${squid-runner:config}" - - ${squid-runner:daemon} \ - -f "${squid-runner:config}" - -fi diff --git a/plone/app/caching/proxy-configs/varnish/README.txt b/plone/app/caching/proxy-configs/varnish/README.txt deleted file mode 100644 index a1e06b3..0000000 --- a/plone/app/caching/proxy-configs/varnish/README.txt +++ /dev/null @@ -1,22 +0,0 @@ - -This is an example buildout demonstrating a Varnish-behind-Apache proxy configuration optimized for a Plone site using plone.app.caching. - -This example also demonstrates one way to configure split-view caching (see the plone.app.caching readme) although it's also perfectly useable for the non-split-view caching case. Split-view caching is enabled by setting a "Vary: X-Anonymous" header and "s-maxage" value on the split-views to be cached, via the plone.app.caching control panel. - -To install, you first need to have buildout installed. See http://www.buildout.org/install.html - -Copy the entire contents of this directory to a new project directory and run buildout in that directory (for this example, let's assume a system-wide buildout is already installed). - -% cp -R * /path/to/project/ -% cd /path/to/project -% buildout - -This will initialize the project directory and run all the 'parts' as defined in buildout.cfg. - -- An Apache vhost configuration will be generated at "./etc/httpd-vhost.conf" - -- A Varnish vcl file will be generated at "./etc/varnish.vcl" - -- A wrapper script to start up Varnish will be generated at "./bin/varnishd" - -For more detail, see the comments in the configuration files. In particular, you may wish to study the 'varnish.vcl' file as much of the "magic" is encapsulated therein. diff --git a/plone/app/caching/proxy-configs/varnish/buildout.cfg b/plone/app/caching/proxy-configs/varnish/buildout.cfg deleted file mode 100644 index c85283b..0000000 --- a/plone/app/caching/proxy-configs/varnish/buildout.cfg +++ /dev/null @@ -1,57 +0,0 @@ -# Example Varnish buildout for use with plone.app.caching - -[buildout] -parts = - varnish - varnish-config - varnish-runner - apache-vhost - chmod - - -[varnish] -recipe = zc.recipe.cmmi -url = http://downloads.sourceforge.net/project/varnish/varnish/2.1.0/varnish-2.1.tar.gz - - -[varnish-config] -recipe = collective.recipe.template -input = templates/varnish.vcl.in -output = ${buildout:directory}/etc/varnish.vcl - -# misc template variables -backend-host = 127.0.0.1 -backend-port = 8080 - - -[varnish-runner] -recipe = collective.recipe.template -input = templates/varnishd.in -output = ${buildout:directory}/bin/varnishd - -# misc template variables -daemon = ${varnish:location}/sbin/varnishd -config = ${varnish-config:output} -pid = ${buildout:directory}/var/varnish.pid -bind = 127.0.0.1:3128 -storage = ${buildout:directory}/var/storage -cache-size = 1G - - -[apache-vhost] -recipe = collective.recipe.template -input = templates/httpd-vhost.conf.in -output = ${buildout:directory}/etc/httpd-vhost.conf - -# misc template variables -hostname = example.com -backend = ${varnish-runner:bind} -zope-path = Plone - - -[chmod] -recipe = plone.recipe.command -command = chmod 755 ${varnish-runner:output} -update-command = ${chmod:command} - - diff --git a/plone/app/caching/proxy-configs/varnish/templates/httpd-vhost.conf.in b/plone/app/caching/proxy-configs/varnish/templates/httpd-vhost.conf.in deleted file mode 100644 index e663450..0000000 --- a/plone/app/caching/proxy-configs/varnish/templates/httpd-vhost.conf.in +++ /dev/null @@ -1,45 +0,0 @@ -# Apache configuration example for Varnish-behind-Apache setup - -# Include the following in the Apache config like so: -# -# Include ${buildout:directory}/etc/httpd-vhost.conf -# -# Or copy/paste into the relevant VirtualHost block -# or into the default host if not using VirtualHosts. - - -# The main domain - - ServerName ${apache-vhost:hostname} - RewriteEngine On - - # Remove trailing slash to avoid duplicates in caching proxy, - # 1) for search engines, redirect to normalized version - # 2) for everyone else, just strip the trailing slash - RewriteCond %{HTTP_USER_AGENT} ^Yahoo.* [NC,OR] - RewriteCond %{HTTP_USER_AGENT} ^Googlebot.* [NC,OR] - RewriteCond %{HTTP_USER_AGENT} ^msnbot.* [NC] - RewriteRule ^/(.*)/$ /$1 [R=301] - RewriteRule ^/(.*)/$ /$1 - - RewriteRule ^/(.*) http://${apache-vhost:backend}/VirtualHostBase/http/${apache-vhost:hostname}:80/${apache-vhost:zope-path}/VirtualHostRoot/$1 [P] - - - - -# Additional domains: -# Avoid the use of the ServerAlias directive in the main domain VirtualHost -# container as this tends to undermine the ability of external search engines -# to accurately assess page uniqueness. Instead perform a 301 redirect like so. - - ServerName www.${apache-vhost:hostname} - ServerAlias *.${apache-vhost:hostname} - RedirectPermanent / http://${apache-vhost:hostname}/ - - - -# References -# http://plone.org/documentation/kb/plone-apache/vhm -# http://httpd.apache.org/docs/2.2/rewrite - - diff --git a/plone/app/caching/proxy-configs/varnish/templates/varnish.vcl.in b/plone/app/caching/proxy-configs/varnish/templates/varnish.vcl.in deleted file mode 100644 index 9067d67..0000000 --- a/plone/app/caching/proxy-configs/varnish/templates/varnish.vcl.in +++ /dev/null @@ -1,115 +0,0 @@ -# VCL file optimized for plone.app.caching. See vcl(7) for details - -# This is an example of a split view caching setup with another proxy -# like Apache in front of Varnish to rewrite urls into the VHM style. - -# Also assumes a single backend behind Varnish (which could be a single -# zope instance or a load balancer serving multiple zeo clients). -# To change this to support multiple backends, see the vcl man pages -# for instructions. - - -backend default { - .host = "${varnish-config:backend-host}"; - .port = "${varnish-config:backend-port}"; - .connect_timeout = 0.4s; - .first_byte_timeout = 300s; - .between_bytes_timeout = 60s; -} - -acl purge { - "localhost"; - "127.0.0.1"; - "${varnish-config:backend-host}"; -} - -sub vcl_recv { - set req.grace = 120s; - set req.backend = default; - - if (req.request == "PURGE") { - if (!client.ip ~ purge) { - error 405 "Not allowed."; - } - purge_url(req.url); - error 200 "Purged"; - } - if (req.request != "GET" && req.request != "HEAD") { - # We only deal with GET and HEAD by default - return(pass); - } - call normalize_accept_encoding; - call annotate_request; - return(lookup); -} - -sub vcl_fetch { - if (!beresp.cacheable) { - set beresp.http.X-Varnish-Action = "FETCH (pass - not cacheable)"; - return(pass); - } - if (beresp.http.Set-Cookie) { - set beresp.http.X-Varnish-Action = "FETCH (pass - response sets cookie)"; - return(pass); - } - if (!beresp.http.Cache-Control ~ "s-maxage=[1-9]" && beresp.http.Cache-Control ~ "(private|no-cache|no-store)") { - set beresp.http.X-Varnish-Action = "FETCH (pass - response sets private/no-cache/no-store token)"; - return(pass); - } - if (req.http.Authorization && !beresp.http.Cache-Control ~ "public") { - set beresp.http.X-Varnish-Action = "FETCH (pass - authorized and no public cache control)"; - return(pass); - } - if (req.http.X-Anonymous && !beresp.http.Cache-Control) { - set beresp.ttl = 600s; - set beresp.http.X-Varnish-Action = "FETCH (override - backend not setting cache control)"; - } - call rewrite_s_maxage; - return(deliver); -} - -sub vcl_deliver { - call rewrite_age; -} - - -########################## -# Helper Subroutines -########################## - -# Optimize the Accept-Encoding variant caching -sub normalize_accept_encoding { - if (req.http.Accept-Encoding) { - if (req.url ~ "\.(jpe?g|png|gif|swf|pdf|gz|tgz|bz2|tbz|zip)$" || req.url ~ "/image_[^/]*$") { - remove req.http.Accept-Encoding; - } elsif (req.http.Accept-Encoding ~ "gzip") { - set req.http.Accept-Encoding = "gzip"; - } else { - remove req.http.Accept-Encoding; - } - } -} - -# Keep auth/anon variants apart if "Vary: X-Anonymous" is in the response -sub annotate_request { - if (!(req.http.Authorization || req.http.cookie ~ "(^|.*; )__ac=")) { - set req.http.X-Anonymous = "True"; - } -} - -# The varnish response should always declare itself to be fresh -sub rewrite_age { - if (resp.http.Age) { - set resp.http.X-Varnish-Age = resp.http.Age; - set resp.http.Age = "0"; - } -} - -# Rewrite s-maxage to exclude from intermediary proxies -# (to cache *everywhere*, just use 'max-age' token in the response to avoid this override) -sub rewrite_s_maxage { - if (beresp.http.Cache-Control ~ "s-maxage") { - set beresp.http.Cache-Control = regsub(beresp.http.Cache-Control, "s-maxage=[0-9]+", "s-maxage=0"); - } -} - diff --git a/plone/app/caching/proxy-configs/varnish/templates/varnishd.in b/plone/app/caching/proxy-configs/varnish/templates/varnishd.in deleted file mode 100644 index 636f080..0000000 --- a/plone/app/caching/proxy-configs/varnish/templates/varnishd.in +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/sh - -exec ${varnish-runner:daemon} \ - -f "${varnish-runner:config}" \ - -P "${varnish-runner:pid}" \ - -a ${varnish-runner:bind} \ - -s file,"${varnish-runner:storage}",${varnish-runner:cache-size} \ - "$@" From f9525a57242a179e761980dcb9cfdb81a0632d81 Mon Sep 17 00:00:00 2001 From: "Jens W. Klein" Date: Wed, 7 Oct 2020 14:47:11 +0200 Subject: [PATCH 2/4] state we're supporting Plone 6 --- setup.py | 1 + 1 file changed, 1 insertion(+) diff --git a/setup.py b/setup.py index 14e5aa2..8de361d 100644 --- a/setup.py +++ b/setup.py @@ -16,6 +16,7 @@ 'Environment :: Web Environment', 'Framework :: Plone', 'Framework :: Plone :: 5.2', + 'Framework :: Plone :: 6.0', 'Framework :: Plone :: Core', 'Framework :: Zope2', 'Framework :: Zope :: 4', From c3b5830850b132076ef4968106364bfbc4971a4f Mon Sep 17 00:00:00 2001 From: "Jens W. Klein" Date: Wed, 7 Oct 2020 14:50:23 +0200 Subject: [PATCH 3/4] state we're supporting Zope 5 (no Zope2) --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 8de361d..b6ece89 100644 --- a/setup.py +++ b/setup.py @@ -18,8 +18,8 @@ 'Framework :: Plone :: 5.2', 'Framework :: Plone :: 6.0', 'Framework :: Plone :: Core', - 'Framework :: Zope2', 'Framework :: Zope :: 4', + 'Framework :: Zope :: 5', 'License :: OSI Approved :: GNU General Public License v2 (GPLv2)', 'Operating System :: OS Independent', 'Programming Language :: Python', From 62e92a21801a7e0d539c0407a820f0fee99cd4b2 Mon Sep 17 00:00:00 2001 From: "Jens W. Klein" Date: Wed, 7 Oct 2020 14:51:06 +0200 Subject: [PATCH 4/4] document changes --- news/64.doc | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 news/64.doc diff --git a/news/64.doc b/news/64.doc new file mode 100644 index 0000000..39c6ac8 --- /dev/null +++ b/news/64.doc @@ -0,0 +1,4 @@ +Remove hopelessly outdated proxy config examples. +Look at plone.recipe.varnish for excellent examples! +[jensens] +