Add Caddy HTTP error files

This commit is contained in:
TEC 2022-10-17 00:58:19 +08:00
parent abd49debb7
commit 32c26161a2
Signed by: tec
SSH Key Fingerprint: SHA256:eobz41Mnm0/iYWBvWThftS0ElEs1ftBr6jamutnXc/A
2 changed files with 52 additions and 5 deletions

View File

@ -2,8 +2,26 @@ emacssurvey.tecosaur.net
@dynamic {
not path /css/*
path /favicon.ico
not path /robots.txt
}
reverse_proxy @dynamic localhost:8000
root /css/* /opt/emacs-survey/public/css/
file_server /css/style.css
root * /opt/emacs-survey/public
file_server
handle_errors {
@404 expression `{err.status_code} == 404`
handle @404 {
rewrite * /caddy-error.html
templates
file_server
}
handle {
rewrite * /{err.status_code}
reverse_proxy https://http.cat {
header_up Host {upstream_hostport}
}
}
}

View File

@ -72,22 +72,51 @@ SETUPDIR=$(dirname "$(readlink --canonicalize-existing "$0")")
#+end_src
** Caddy Config
:PROPERTIES:
:header-args:prog: :tangle Caddyfile
:END:
We just need to redirect to Genie for now, which makes for a rather simple
config. The only complication is serving the static files through Caddy not
Genie, for performance reasons (Genie recommends against serving static files
with it).
#+begin_src prog :tangle Caddyfile
#+begin_src prog
emacssurvey.tecosaur.net
@dynamic {
not path /css/*
path /favicon.ico
not path /robots.txt
}
reverse_proxy @dynamic localhost:8000
#+end_src
root /css/* /opt/emacs-survey/public/css/
file_server /css/style.css
We'll just pass all other requests to the public folder of the Emacs Survey.
#+begin_src prog
root * /opt/emacs-survey/public
file_server
#+end_src
The only thing left is error pages, for which we'll use a combination of error
pages and http.cat 🐱.
#+begin_src prog
handle_errors {
@404 expression `{err.status_code} == 404`
handle @404 {
rewrite * /caddy-error.html
templates
file_server
}
handle {
rewrite * /{err.status_code}
reverse_proxy https://http.cat {
header_up Host {upstream_hostport}
}
}
}
#+end_src
Just this one file is all it takes to get Caddy set up to our liking 🙂.