2015-05-27 13:33:33 +00:00
|
|
|
# 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:
|
2016-06-29 10:25:28 +00:00
|
|
|
# none /var/cache/nginx tmpfs size=10m
|
2015-05-27 13:33:33 +00:00
|
|
|
|
|
|
|
# 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 {
|
2016-06-29 10:25:28 +00:00
|
|
|
proxy_cache_path /var/cache/nginx keys_zone=cache_zone:10m inactive=1w;
|
2015-05-27 13:33:33 +00:00
|
|
|
|
|
|
|
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.
|
2016-06-29 10:25:28 +00:00
|
|
|
proxy_cache_valid any 1w;
|
2015-05-27 13:33:33 +00:00
|
|
|
|
|
|
|
location /KiCad/ {
|
|
|
|
rewrite /KiCad/(.+) /KiCad/$1/zip/master break;
|
|
|
|
|
|
|
|
# Skip past the redirect issued by https://github.com
|
|
|
|
proxy_pass https://codeload.github.com;
|
|
|
|
|
2016-06-29 10:25:28 +00:00
|
|
|
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";
|
2015-05-27 13:33:33 +00:00
|
|
|
|
|
|
|
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;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2016-06-29 10:25:28 +00:00
|
|
|
|