5fa8aa3660
This revised nginx.conf holds the cache for one week, truly. For some reason there are two tuning knobs required to make one adjustment (cache duration). Without this fix the cache was only held for 10 minutes. The most important change is the "inactive=1w" which as I implied, is the *second* reference to one week. Sorry for this oversight. Nginx can be run on something as simple as a raspberry PI. I run it on a network file server attached to my desktop via copper ethernet. By caching the footprint libraries from github, I can load all github libraries in about 2.5 seconds, making github the fastest plugin of any kind.
69 lines
2.2 KiB
Nginx Configuration File
69 lines
2.2 KiB
Nginx Configuration File
# Author: <Dick Hollenbeck> dick@softplc.com
|
|
# Configuration file for nginx. Nginx works as a nice cache-ing proxy for
|
|
# the github footprint repos in a local nginx instance.
|
|
|
|
|
|
# In my case I also added a small RAM disk on a linux server to hold the cache.
|
|
# This line in /etc/fstab adds my RAM disk, this is 10 mbytes but 5mb would
|
|
# probably suffice:
|
|
# none /var/cache/nginx tmpfs size=10m
|
|
|
|
# I then set my KIGITHUB environment variable to
|
|
# export KIGITHUB=http://my_server:54321/KiCad
|
|
|
|
# Note that http is used between kicad and nginx, not https. However nginx uses
|
|
# https when refreshing from github. http is faster than https.
|
|
|
|
# You can run nginx either on your local machine, or on a server on your network,
|
|
# or a server on the Internet. In my case I run it on my network. I imagine
|
|
# that even a Raspery Pi would act as a decent caching server so long as you
|
|
# install nginx and give the machine Internet access.
|
|
|
|
|
|
worker_processes 2;
|
|
|
|
events {
|
|
worker_connections 1024;
|
|
}
|
|
|
|
|
|
http {
|
|
proxy_cache_path /var/cache/nginx keys_zone=cache_zone:10m inactive=1w;
|
|
|
|
server {
|
|
# nginx will listen on this port:
|
|
listen 54321;
|
|
|
|
proxy_cache cache_zone;
|
|
|
|
# hold the stuff for one week, then mark it as out of date which will
|
|
# cause it to be reloaded from github.
|
|
proxy_cache_valid any 1w;
|
|
|
|
location /KiCad/ {
|
|
rewrite /KiCad/(.+) /KiCad/$1/zip/master break;
|
|
|
|
# Skip past the redirect issued by https://github.com
|
|
proxy_pass https://codeload.github.com;
|
|
|
|
proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504;
|
|
proxy_cache_lock on;
|
|
|
|
proxy_set_header Proxy-Connection "Keep-Alive";
|
|
|
|
proxy_ignore_headers "Set-Cookie";
|
|
proxy_ignore_headers "Cache-Control";
|
|
proxy_ignore_headers "Expires";
|
|
|
|
proxy_cache_bypass $http_secret_header;
|
|
|
|
add_header X-Cache-Status $upstream_cache_status;
|
|
|
|
# This line causes github.com to return a "502 Bad Gateway Error"
|
|
# so do not include it:
|
|
# proxy_set_header Host $http_host;
|
|
}
|
|
}
|
|
}
|
|
|