Last active
March 22, 2022 19:46
-
-
Save bradleyboy/26ffd2ec7da68919ecd1 to your computer and use it in GitHub Desktop.
nginx rewrite setup for Koken
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Enable gzip. Highly recommending for best peformance | |
gzip on; | |
gzip_comp_level 6; | |
gzip_types text/html text/css text/javascript application/json application/javascript application/x-javascript; | |
# By default, do not set expire headers | |
expires 0; | |
# Set expires header for console CSS and JS. | |
# These files are timestamped with each new release, so it is safe to cache them agressively. | |
location ~ "console_.*\.(js|css)$" { | |
expires max; | |
} | |
# Catch image requests and pass them back to PHP if a cache does not yet exist | |
location ~ "^/storage/cache/images(/(([0-9]{3}/[0-9]{3})|custom)/.*)$" { | |
# Cached images have timestamps in the URL, so it is safe to set | |
# aggresive cache headers here. | |
expires max; | |
try_files $uri /i.php?path=$1; | |
} | |
# Catch .css.lens requests and serve cache when possible | |
location ~ "(lightbox-)?settings.css.lens$" { | |
default_type text/css; | |
try_files /storage/cache/site/${uri} /app/site/site.php?url=/$1settings.css.lens; | |
} | |
# Catch koken.js requests and serve cache when possible | |
location ~ koken.js$ { | |
default_type text/javascript; | |
try_files /storage/cache/site/${uri} /app/site/site.php?url=/koken.js; | |
} | |
# Standard site requests are cached with .html extensions | |
set $cache_ext 'html'; | |
# PJAX requests contain the _pjax GET parameter and are cached with .phtml extensions | |
if ($arg__pjax) { | |
set $cache_ext 'phtml'; | |
} | |
# Do not check for a cache for non-GET requests | |
if ($request_method != 'GET') { | |
set $cache_ext 'nocache'; | |
} | |
# If share_to_tumblr cookie is preset, disable caching (long story) | |
if ($http_cookie ~* "share_to_tumblr" ) { | |
set $cache_ext 'nocache'; | |
} | |
# Catch root requests | |
location ~ ^/?$ { | |
try_files /storage/cache/site/index/cache.$cache_ext /app/site/site.php?url=/; | |
} | |
# All other requests get passed back to Koken unless file already exists | |
location / { | |
try_files $uri $uri/ /storage/cache/site/${uri} /storage/cache/site/${uri}cache.$cache_ext /app/site/site.php?url=$uri&$args; | |
} |
Just like @csu I'm stuggling a bit as well to make this work with NGINX. Do we need more than just the above-mentioned config?
Also struggling, the last section makes my NGINX config fail on Debian 8.2 with easyengine managing the nginx conf.
There a full Nginx configuration example here: https://github.com/koken/docker-koken-lemp/blob/master/conf/nginx-site.conf
. Works fine for me on Debian Jessie
How would I make this work for a subdirectory? I'm still getting /index.php? in my URLs.
# Catch koken.js requests and serve cache when possible
location ~ koken.js$ {
default_type text/javascript;
try_files /storage/cache/site/${uri} /app/site/site.php?url=/koken.js;
}
is not working. T^T
A 404 error appears when accessing the address printed on the browser console
example.com/koken.js?0.22.24
But example.com/index.php? When approached, it comes out normally.
example.com/ndex.php?/koken.js
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
I have added these lines to the file to prevent direct access to the original files:
It does not affect the "download" button on page when setting "Maximum image download" as "Extra large" (which i'm using), as download also goes to the cache folder. I didn't test on other options.