summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Friesel <daniel.friesel@uos.de>2021-08-18 18:52:08 +0200
committerDaniel Friesel <daniel.friesel@uos.de>2021-08-18 18:52:08 +0200
commit5cae00129a4b79802b97e48e9cd316b203e7d4af (patch)
treeeae7a8c5d24f6666896d27f2cabe5d64a248051d
parent92b0c8e4b7be8c26873fe5cbe3b1d67703c2e7c5 (diff)
add caching nginx example configuration
-rw-r--r--README.md4
-rw-r--r--examples/nginx-cache.conf2
-rw-r--r--examples/nginx-site.conf32
3 files changed, 38 insertions, 0 deletions
diff --git a/README.md b/README.md
index df2eb5d..6e910b1 100644
--- a/README.md
+++ b/README.md
@@ -111,6 +111,10 @@ index.pl daemon -m production** (quick&dirty, does not respect all variables)
or **hypnotoad** (recommended). A systemd unit example is provided in
`examples/db-infoscreen.service`.
+For public-facing installations, you may want to enable caching in the reverse
+proxy serving DBF. See `examples/nginx-cache.conf` and
+`examples/nginx-site.conf` for nginx examples.
+
All code in this repository may be used under the terms of the BSD-2-Clause
(db-infoscreen, see COPYING) and MIT (jquery, jqueryui, and marquee libraries;
see the respective files) licenses. Attribution is appreciated.
diff --git a/examples/nginx-cache.conf b/examples/nginx-cache.conf
new file mode 100644
index 0000000..bea4366
--- /dev/null
+++ b/examples/nginx-cache.conf
@@ -0,0 +1,2 @@
+proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=dbf_cache:10m max_size=1g inactive=10m use_temp_path=off;
+proxy_cache_valid any 1m;
diff --git a/examples/nginx-site.conf b/examples/nginx-site.conf
new file mode 100644
index 0000000..1aac763
--- /dev/null
+++ b/examples/nginx-site.conf
@@ -0,0 +1,32 @@
+upstream dbf {
+ server 127.0.0.1:8092;
+}
+
+server {
+ listen [::]:443;
+ listen 0.0.0.0:443;
+
+ server_name FIXME;
+ access_log /var/log/nginx/FIXME.log anonip;
+
+ add_header Strict-Transport-Security "max-age=31536000" always;
+
+ location /static {
+ expires 1y;
+ root /srv/www/dbf/public;
+ }
+
+ location / {
+ proxy_cache dbf_cache;
+ proxy_cache_lock on;
+ proxy_ignore_headers "Set-Cookie";
+ proxy_hide_header "Set-Cookie";
+ proxy_pass http://dbf;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto "http";
+ add_header X-Frame-Options "";
+ add_header Strict-Transport-Security "max-age=31536000" always;
+ }
+}