squid-rewriter
This is a rewrite engine for squid. It is meant to be used with the url_rewrite_program
directive in your squid.conf
file.
The rewrite rules are read from a yaml file. The file is expected to look like something like this:
---
rewrites:
- name: static
urls:
- http://proxy/
destination: http://127.0.0.1:9999/
- name: fromfile
filename: myrewrites.list
destination: http://example.com/
- name: alpine
distro: alpine
destination: https://dl-cdn.alpinelinux.org/alpine/
- name: debian
distro: debian
destination: http://deb.debian.org/debian/
- name: arch
distro: arch
destination: https://geo.mirror.pkgbuild.com/
- name: fedora
distro: fedora
destination: https://fedora.mirrorservice.org/fedora/linux/
- name: fedora
distro: fedora:epel
destination: https://fedora.mirrorservice.org/epel/
- name: ubuntu
distro: ubuntu
destination: http://archive.ubuntu.com/ubuntu/
- name: mint
distro: mint
destination: https://mirrors.layeronline.com/linuxmint/
- name: slackware
distro: slackware
destination: https://www.mirrorservice.org/sites/ftp.slackware.com/pub/slackware/
Each rewrite entry must contain a descriptive name (name
) a destination url (destination
) and one or more of the following:
- a list of static prefixes (
urls
)
- the name of a text file containing one prefix per line (
filename
)
- the name of a distribution repo (
distro
) in the format distroname:reponame
; if reponame is omitted, it defaults to main
; the name of the repos depend on the distro; at the moment only the fedora
distro supports repos other than main
(epel
, centos
)
On startup, squid-rewriter will look for rewrite rules in the following files:
rewrites.yaml
in the current directory
rewrites.yml
in the current directory
/etc/squid/rewrites.yaml
/etc/squid/rewrites.yml
Only the first existent file from the list above will be loaded.