79 lines
2.2 KiB
Text
79 lines
2.2 KiB
Text
resolver 8.8.8.8 8.8.4.4;
|
|
|
|
# Pacman Cache
|
|
server
|
|
{
|
|
listen 8000;
|
|
server_name pkg.actcur.com;
|
|
root /srv/http/pacman-cache;
|
|
autoindex on;
|
|
|
|
# Requests for aur.db and sig files should stay here
|
|
location ~ aur-local\.(db|sig){
|
|
try_files $uri @pkg_mirror;
|
|
}
|
|
#TEMPORARY. Requests for teampass.db and sig files should stay here
|
|
location ~ teampass-temp\.(db|sig){
|
|
try_files $uri @pkg_mirror;
|
|
}
|
|
|
|
# Requests for package db and signature files should redirect upstream without caching
|
|
location ~ \.(db|sig)$ {
|
|
proxy_pass http://mirrors$request_uri;
|
|
}
|
|
|
|
# Requests for actual packages should be served directly from cache if available.
|
|
# If not available, retrieve and save the package from an upstream mirror.
|
|
location ~ \.tar\.xz$ {
|
|
try_files $uri @pkg_mirror;
|
|
}
|
|
|
|
# Retrieve package from upstream mirrors and cache for future requests
|
|
location @pkg_mirror {
|
|
proxy_store on;
|
|
proxy_redirect off;
|
|
proxy_store_access user:rw group:rw all:r;
|
|
proxy_next_upstream error timeout http_404;
|
|
proxy_pass http://mirrors$request_uri;
|
|
}
|
|
}
|
|
|
|
# Upstream Arch Linux Mirrors
|
|
# - Configure as many backend mirrors as you want in the blocks below
|
|
# - Servers are used in a round-robin fashion by nginx
|
|
# - Add "backup" if you want to only use the mirror upon failure of the other mirrors
|
|
# - Separate "server" configurations are required for each upstream mirror so we can set the "Host" header appropriately
|
|
upstream mirrors {
|
|
server localhost:8001;
|
|
server localhost:8002 backup;
|
|
server localhost:8003 backup;
|
|
server localhost:8004 backup;
|
|
server localhost:8005 backup;
|
|
server localhost:8006 backup;
|
|
server localhost:8007 backup;
|
|
server localhost:8008 backup;
|
|
server localhost:8009 backup;
|
|
server localhost:8010 backup;
|
|
}
|
|
|
|
{% from 'mirrors.jinja' import mirrors %}
|
|
|
|
{%- set port=8000 -%}
|
|
{%- if mirrors is defined -%}
|
|
{%- for mirror in mirrors -%}
|
|
{%- set port=port+1 %}
|
|
{%- set lst=mirror.split('/') %}
|
|
|
|
# Arch Mirror {{ lst[2] }} Proxy Configuration
|
|
server
|
|
{
|
|
listen {{ port + loop.index }};
|
|
server_name localhost;
|
|
|
|
location / {
|
|
proxy_pass {{ mirror }}$request_uri;
|
|
proxy_set_header Host {{ lst[2] }};
|
|
}
|
|
}
|
|
{% endfor -%}
|
|
{%- endif -%}
|