Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
TINYPROXY.CONF(5)		Tinyproxy manual	       TINYPROXY.CONF(5)

NAME
     tinyproxy.conf - Tinyproxy HTTP proxy daemon configuration file

SYNOPSIS
     tinyproxy.conf

DESCRIPTION
     tinyproxy(8)  reads  its  configuration file, typically stored in `/usr/lo-
     cal/etc/tinyproxy.conf` (or passed to Tinyproxy  with  -c	on  the  command
     line).  This manpage describes the syntax and contents of the configuration
     file.

     The Tinyproxy configuration file contains key-value pairs,  one  per  line.
     Lines  starting with `#` and empty lines are comments and are ignored. Key-
     words are case-insensitive, whereas values are case-sensitive. Some  string
     values must be enclosed in double quotes (") as noted below.

     The possible keywords and their descriptions are as follows:

     UserThe  user  which the Tinyproxy process should run as, after the initial
	 port-binding has been done as the `root` user. Either the user name  or
	 the UID may be specified.

     Group
	 The  group which the Tinyproxy process should run as, after the initial
	 port-binding has been done as the `root` user. Either the group name or
	 the GID may be specified.

     PortThe port which the Tinyproxy service will listen on.  If  the	port  is
	 less  than  1024,  you  will need to start the Tinyproxy process as the
	 `root` user.

     Listen
	 By default, Tinyproxy listens for connections on all  available  inter-
	 faces	(i.e.  it listens on the wildcard address `0.0.0.0`).  With this
	 configuration parameter, Tinyproxy can be told to listen  only  on  one
	 specific address.

     BindThis  allows  you  to	specify which address Tinyproxy will bind to for
	 outgoing connections.	This parameter may be specified multiple  times,
	 then Tinyproxy will try all the specified addresses in order.

     BindSame
	 If this boolean parameter is set to `yes`, then Tinyproxy will bind the
	 outgoing  connection  to the IP address of the incoming connection that
	 triggered the outgoing request.

     Timeout
	 The maximum number of seconds of inactivity a connection is allowed  to
	 have before it is closed by Tinyproxy.

     ErrorFile
	 This  parameter controls which HTML file Tinyproxy returns when a given
	 HTTP error occurs. It takes two arguments, the error number and the lo-
	 cation of the HTML error file. Enclose  the  file  location  in  double
	 quotes.

     DefaultErrorFile
	 The  HTML template file returned when an error occurs for which no spe-
	 cific error file has been set. Enclose in double quotes.

     StatHost
	 The host name or IP address that is treated as the  `stat  host`.   En-
	 close	in  double quotes. Whenever Tinyproxy receives a request for the
	 `stat host` it returns an internal statistics page instead of	forward-
	 ing the request to that host. The template for this page can be config-
	 ured  with  the  `StatFile`  configuration option. The default value of
	 `StatHost` is `tinyproxy.stats`.

     StatFile
	 The HTML file that Tinyproxy sends in response to  a  request	for  the
	 `stat	host`.	Enclose  in double quotes. If this parameter is not set,
	 Tinyproxy returns a hard-coded basic statistics page. See the	STATHOST
	 section in the tinyproxy(8) manual page for details.

	 Note  that  the  StatFile and the error files configured with ErrorFile
	 and DefaultErrorFile are template files that can contain a few template
	 variables that Tinyproxy  expands  prior  to  delivery.   Examples  are
	 "{cause}" for an abbreviated error description and "{detail}" for a de-
	 tailed error message.	The tinyproxy(8) manual page contains a descrip-
	 tion of all template variables.

     LogFile
	 The  location	of  the file to which Tinyproxy writes its debug output.
	 Enclose in double quotes. Alternatively, Tinyproxy can log to syslog --
	 see the Syslog option.

     Syslog
	 When set to `On`, this option tells Tinyproxy to write its  debug  mes-
	 sages	to  syslog  instead  of to a log file configured with `LogFile`.
	 These two options are mutually exclusive.

     LogLevel
	 Sets the log level. Messages from the set level and above  are  logged.
	 For  example, if the LogLevel was set to Warning, then all log messages
	 from Warning to Critical would be output, but Notice and below would be
	 suppressed. Allowed values are:

	 *   Critical (least verbose)

	 *   Error

	 *   Warning

	 *   Notice

	 *   Connect (log connections without Info's noise)

	 *   Info (most verbose)

     PidFile
	 The location of the file where the main Tinyproxy  process  stores  its
	 process ID for signaling purposes. Enclose in double quotes.

     XTinyproxy
	 Setting   this  option  to  `Yes`  tells  Tinyproxy  to  add  a  header
	 `X-Tinyproxy` containing the client's IP address to the request.

     Upstream
	 This option allows you to set up a set of rules for deciding whether an
	 upstream proxy server is to be used, based on the host or domain of the
	 site being accessed. The rules are stored in the order  encountered  in
	 the  configuration  file and the LAST matching rule wins. The following
	 forms for specifying upstream rules exist:

	 *   upstream type host:port turns proxy upstream support on generally.

	 *   upstream type user:pass@host:port does the same, but uses the  sup-
	     plied credentials for authentication.

	 *   upstream type host:port "site_spec" turns on the upstream proxy for
	     the sites matching `site_spec`.

	     `type` can be one of `http`, `socks4`, `socks5`, `none`.

	 *   upstream  none  "site_spec"  turns  off  upstream support for sites
	     matching `site_spec`, that means the connection is done directly.

	 It's recommended to use raw IP addresses to specify the upstream  host,
	 so  no costly DNS lookup has to be done everytime it is used.	IPv6 ad-
	 dresses need to be enclosed in square brackets.

	 The site can be specified in various forms as a hostname,  domain  name
	 or as an IP range:

	 *   name     matches host exactly

	 *   .name    matches any host in domain "name"

	 *   .	      matches any host with no domain (in 'empty' domain)

	 *   IP/bits  matches network/mask

	 *   IP/mask  matches network/mask

	 Note  that the upstream directive can also be used to null-route a spe-
	 cific	target	domain/host,  e.g.:  `upstream	http   0.0.0.0:0   ".ad-
	 server.com"`

     MaxClients
	 Tinyproxy  creates  one thread for each connected client.  This options
	 specifies the absolute highest number processes that will  be	created.
	 With other words, only MaxClients clients can be connected to Tinyproxy
	 simultaneously.

     Allow
     DenyThe  `Allow`  and  `Deny`  options  provide  a means to customize which
	 clients are allowed to access Tinyproxy. `Allow` and `Deny`  lines  can
	 be  specified	multiple  times  to  build  the  access control list for
	 Tinyproxy. The order in the config file is important.	If there are  no
	 `Allow`  or  `Deny` lines, then all clients are allowed. Otherwise, the
	 default action is to deny access.  The argument to  `Allow`  or  `Deny`
	 can  be  a  single IP address of a client host, like `127.0.0.1`, an IP
	 address range, like `192.168.0.1/24` or a string that will  be  matched
	 against  the  end of the client host name, i.e, this can be a full host
	 name like `host.example.com` or a domain name	like  `.example.com`  or
	 even  a  top level domain name like `.com`.  Note that by adding a rule
	 using a host or domain name, a costly name lookup has to  be  done  for
	 every new connection, which could slow down the service considerably.

     BasicAuth
	 Configure HTTP "Basic Authentication" username and password for access-
	 ing  the  proxy.   If	there  are any entries specified, access is only
	 granted for authenticated users.

	     BasicAuth user password

     AddHeader
	 Configure one or more HTTP request headers to be added to outgoing HTTP
	 requests that Tinyproxy makes. Note that this option will not work  for
	 HTTPS	traffic,  as  Tinyproxy has no control over what headers are ex-
	 changed.

	     AddHeader "X-My-Header" "Powered by Tinyproxy"

     ViaProxyName
	 RFC 2616 requires proxies to add a `Via` header to the  HTTP  requests,
	 but  using  the  real	host name can be a security concern. If the `Vi-
	 aProxyname` option is present, then its string value will  be	used  as
	 the  host  name  in  the Via header.  Otherwise, the server's host name
	 will be used. Enclose in double quotes.

     DisableViaHeader
	 When this is set to yes, Tinyproxy does NOT add the `Via` header to the
	 requests. This virtually puts Tinyproxy into stealth mode.   Note  that
	 RFC  2616 requires proxies to set the `Via` header, so by enabling this
	 option, you break compliance.	Don't disable the  `Via`  header  unless
	 you know what you are doing...

     Filter
	 Tinyproxy  supports  filtering  of  web sites based on URLs or domains.
	 This option specifies the location of the file  containing  the  filter
	 rules, one rule per line.

	 Rules	are  specified	as POSIX basic regular expressions (BRE), unless
	 another FilterType is specified.  Comment lines start with a `#`  char-
	 acter.

	 Example filter file contents:

	  # filter exactly cnn.com
	  ^cnn\.com$

	  # filter all subdomains of cnn.com, but not cnn.com itself
	  .*\.cnn.com$

	  # filter any domain that has cnn.com in it, like xcnn.comfy.org
	  cnn\.com

	  # filter any domain that ends in cnn.com
	  cnn\.com$

	  # filter any domain that starts with adserver
	  ^adserver

     FilterType
	 This  option can be set to one of `bre`, `ere`, or `fnmatch`.	If `bre`
	 is set, the rules specified in the filter file are matched using  POSIX
	 basic regular expressions, when set to `ere`, using POSIX extended reg-
	 ular  expressions,  and when set to `fnmatch` using the `fnmatch` func-
	 tion as specified in the manpage `man 3p fnmatch`.  `fnmatch`	matching
	 is identical to what's used in the shell to match filenames, so for ex-
	 ample	`*.google.com`	matches everything that ends with `.google.com`.
	 If you don't know what regular expressions are or you're  using  filter
	 lists	from  3rd  party  sources,  `fnmatch` is probably what you want.
	 It's also the fastest matching method of the three.

     FilterURLs
	 If this boolean option is set to `Yes` or `On`, filtering is  performed
	 for URLs rather than for domains. The default is to filter based on do-
	 mains.

	 Note that filtering for URLs works only in plain HTTP scenarios.  Since
	 HTTPS	has become ubiquitous during the last years, this will only work
	 on a tiny fraction of websites, so it is recommended not  to  use  this
	 option.

     FilterExtended
	 Deprecated.  Use  `FilterType	ere` instead.  If this boolean option is
	 set to `Yes`, then extended POSIX  regular  expressions  are  used  for
	 matching  the	filter rules.  The default is to use basic POSIX regular
	 expressions.

     FilterCaseSensitive
	 If this boolean option is set to  `Yes`,  then  the  filter  rules  are
	 matched in a case sensitive manner. The default is to match case-insen-
	 sitively,  unfortunately.  If you set this to `Yes`, then your matching
	 will be almost twice as fast.	This  setting  affects	only  `bre`  and
	 `ere` FilterTypes, fnmatch is always case sensitive.

     FilterDefaultDeny
	 The default filtering policy is to allow everything that is not matched
	 by  a	filtering rule. Setting `FilterDefaultDeny` to `Yes` changes the
	 policy do deny everything but the domains or URLs matched by  the  fil-
	 tering rules.	In other words, if set to `No` the Filter list acts as a
	 blacklist, if set to `Yes` as a whitelist.

     Anonymous
	 If  an  `Anonymous`  keyword is present, then anonymous proxying is en-
	 abled.  The headers listed with `Anonymous` are allowed through,  while
	 all  others  are  denied.  If no Anonymous keyword is present, then all
	 headers are allowed through.  You must include double quotes around the
	 headers.

	 Most sites require cookies to be enabled for them to work correctly, so
	 you will need to allow cookies through if you access those sites.

	 Example:

	     Anonymous "Host"
	     Anonymous "Authorization"
	     Anonymous "Cookie"

     ConnectPort
	 This option can be used to specify the ports allowed  for  the  CONNECT
	 method.  If no `ConnectPort` line is found, then all ports are allowed.
	 To disable CONNECT altogether, include a single ConnectPort line with a
	 value of `0`.

     ReversePath
	 Configure one or more ReversePath directives to  enable  reverse  proxy
	 support.  With reverse proxying it's possible to make a number of sites
	 appear as if they were part of a single site.

	 If you uncomment the following two directives and run Tinyproxy on your
	 own computer at port 8888, you can access example.com, using http://lo-
	 calhost:8888/example/.

	     ReversePath "/example/" "http://www.example.com/"

     ReverseOnly
	 When using Tinyproxy as a reverse proxy,  it  is  STRONGLY  recommended
	 that  the  normal proxy is turned off by setting this boolean option to
	 `Yes`.

     ReverseMagic
	 Setting this option to `Yes`, makes Tinyproxy use a cookie to track re-
	 verse proxy mappings. If you need to reverse proxy sites which have ab-
	 solute links you must use this option.

     ReverseBaseURL
	 The URL that is used to access this reverse proxy. The URL is	used  to
	 rewrite HTTP redirects so that they won't escape the proxy. If you have
	 a  chain  of reverse proxies, you'll need to put the outermost URL here
	 (the address which the end user types into his/her browser).	If  this
	 option is not set then no rewriting of redirects occurs.

BUGS
     To report bugs in Tinyproxy, please visit <https://tinyproxy.github.io/>.

SEE ALSO
     tinyproxy(8)

AUTHOR
     This manpage was written by the Tinyproxy project team.

COPYRIGHT
     Copyright (c) 1998-2020 the Tinyproxy authors.

     This  program  is distributed under the terms of the GNU General Public Li-
     cense version 2 or above. See the COPYING file for additional information.

Version 1.11.2			   2024-05-08		       TINYPROXY.CONF(5)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=tinyproxy.conf&sektion=5&manpath=FreeBSD+Ports+15.1.quarterly>

home | help