{"id":17046645,"url":"https://github.com/sebobo/shel.neos.nginxcache","last_synced_at":"2025-08-01T13:05:32.821Z","repository":{"id":57049157,"uuid":"171002135","full_name":"Sebobo/Shel.Neos.NginxCache","owner":"Sebobo","description":"nginx proxy cache integration for Neos CMS","archived":false,"fork":false,"pushed_at":"2019-09-28T11:09:16.000Z","size":53,"stargazers_count":5,"open_issues_count":2,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-26T10:04:51.538Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Sebobo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":"FUNDING.yml","license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null},"funding":{"patreon":"shelzle","github":"sebobo"}},"created_at":"2019-02-16T12:35:44.000Z","updated_at":"2019-09-28T11:09:18.000Z","dependencies_parsed_at":"2022-08-23T19:10:23.965Z","dependency_job_id":null,"html_url":"https://github.com/Sebobo/Shel.Neos.NginxCache","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sebobo%2FShel.Neos.NginxCache","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sebobo%2FShel.Neos.NginxCache/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sebobo%2FShel.Neos.NginxCache/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sebobo%2FShel.Neos.NginxCache/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Sebobo","download_url":"https://codeload.github.com/Sebobo/Shel.Neos.NginxCache/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248589891,"owners_count":21129698,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-14T09:46:58.320Z","updated_at":"2025-04-12T15:33:48.287Z","avatar_url":"https://github.com/Sebobo.png","language":"PHP","funding_links":["https://patreon.com/shelzle","https://github.com/sponsors/sebobo"],"categories":[],"sub_categories":[],"readme":"# Shel.Neos.NginxCache\n\n[![Latest Stable Version](https://poser.pugx.org/shel/neos-nginx-cache/v/stable)](https://packagist.org/packages/shel/neos-nginx-cache)\n[![Total Downloads](https://poser.pugx.org/shel/neos-nginx-cache/downloads)](https://packagist.org/packages/shel/neos-nginx-cache)\n[![License](https://poser.pugx.org/shel/neos-nginx-cache/license)](https://packagist.org/packages/shel/neos-nginx-cache)\n\n## Introduction\n\nThis package provides an improved integration for Neos CMS and the [NGINX proxy cache](https://nginx.org/en/docs/http/ngx_http_proxy_module.html).\nThe NGINX proxy cache caches the output of your website for a certain time and will deliver\nthe cached version to your visitors with much greater performance.\nThis system can also help with high traffic or smaller attacks on your site. \n\nBut of course NGINX cannot know when your content is updated.\nTherefore it's helpful to send refresh and invalidation notifications from your CMS when editing.\nThis allows you to increase cache times and be sure that your visitors see current content with great performance.\n\nRead [An Introduction to Cache Invalidation](https://foshttpcache.readthedocs.io/en/stable/invalidation-introduction.html#an-introduction-to-cache-invalidation)\nto understand the main issue of caching and its advantages and drawbacks.  \n\n### Features\n\n* ✓ Send refresh requests to NGINX when a page is published\n* ✓ Send invalidation requests to NGINX when a page is not available anymore (needs the optional NGINX purge module)\n* ✓ Send headers with each page to tell NGINX about the cache timeouts of a page\n* ✓ Backend module to check configuration and flush single pages or purge the whole cache\n* ✓ Disable caching via node properties\n* ✓ Respect caching timeouts defined in Fusion\n\nNot possible yet\n\n* Invalidate other pages than the published one, f.e. refresh a blog overview when a single article has been published.\n\n## Requirements\n\n* Neos CMS 4.x \n* NGINX as webserver       \n* NGINX purge module (optional)   \n\n## Installation\n\nAdd the dependency to your site package like this\n\n    composer require --no-update shel/neos-nginx-cache\n    \nAnd then run `composer update` in your project's root folder.\n\nIf you don't have the NGINX purge module, the package will only send refresh requests instead of using invalidations.\nYou can find more information on how to setup the purge module [here](https://foshttpcache.readthedocs.io/en/stable/nginx-configuration.html#purge).              \n\n## Documentation\n\nFor more information on the setup and configuration, see [the documentation](Documentation/Index.rst)\n\n### Other helpful resources\n\n* [Official NGINX proxy documentation](http://nginx.org/en/docs/http/ngx_http_proxy_module.html)                 \n* [NGINX configuration for the library used in this package](https://foshttpcache.readthedocs.io/en/stable/nginx-configuration.html)                 \n* [NGINX caching example by digitalocean](https://www.digitalocean.com/community/tutorials/how-to-setup-fastcgi-caching-with-nginx-on-your-vps)\n\n## Comparison to Varnish as proxy cache                                     \n\nThis package was inspired by [MOC.Varnish](https://github.com/mocdk/MOC.Varnish).\n\nVarnish works similarly, but allows you to create a much finer configuration when and what is flushed from its cache.\nBut the setup \u0026 configuration needs more knowledge as you need the Varnish service running additionally\nand you need to configure your webserver to communicate with it.\n\nTherefore this package was created to help people who have smaller sites, which don't need the bigger setup\nor don't have access to Varnish on their servers.\n\nFor larger sites it's recommended to use Varnish when a lot of editing is happening.\n\n\n| Client  | Purge | Refresh | Ban | Tagging |\n| ------- | ----- | ------- | --- | ------- |\n| Varnish | ✓     | ✓       | ✓   | ✓       |\n| NGINX   | ✓     | ✓       |     |         | \n\n## Contributions\n\nContributions are very welcome! \n\nPlease create detailed issues and PRs.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsebobo%2Fshel.neos.nginxcache","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsebobo%2Fshel.neos.nginxcache","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsebobo%2Fshel.neos.nginxcache/lists"}