Purpose : Used with other docs and files only.
- $Id: p-config.sgml,v 2.61 2010/02/04 09:35:04 fabiankeil Exp $
+ $Id: p-config.sgml,v 2.75 2011/07/08 13:31:40 fabiankeil Exp $
Copyright (C) 2001-2010 Privoxy Developers http://www.privoxy.org/
See LICENSE.
<title>The Main Configuration File</title>
<para>
- Again, the main configuration file is named <filename>config</filename> on
- Linux/Unix/BSD and OS/2, and <filename>config.txt</filename> on Windows.
+ By default, the main configuration file is named <filename>config</filename>,
+ with the exception of Windows, where it is named <filename>config.txt</filename>.
Configuration lines consist of an initial keyword followed by a list of
values, all separated by whitespace (any number of spaces or tabs). For
example:
Sample Configuration File for Privoxy v&p-version;
</title>
<para>
- $Id: p-config.sgml,v 2.61 2010/02/04 09:35:04 fabiankeil Exp $
+ $Id: p-config.sgml,v 2.75 2011/07/08 13:31:40 fabiankeil Exp $
</para>
<para>
Copyright (C) 2001-2010 Privoxy Developers http://www.privoxy.org/
</variablelist>
<![%config-file;[<literallayout>@@filterfile default.filter</literallayout>]]>
-<![%config-file;[<literallayout>@@#filterfile user.filter # User customizations</literallayout>]]>
+<![%config-file;[<literallayout>@@filterfile user.filter # User customizations</literallayout>]]>
</sect3>
debug 2 # show each connection status
debug 4 # show I/O status
debug 8 # show header parsing
- debug 16 # log all data written to the network into the logfile
+ debug 16 # log all data written to the network
debug 32 # debug force feature
debug 64 # debug regular expression filters
debug 128 # debug redirects
debug 2048 # CGI user interface
debug 4096 # Startup banner and warnings.
debug 8192 # Non-fatal errors
+ debug 32768 # log all data read from the network
</programlisting>
</para>
<para>
<term>Specifies:</term>
<listitem>
<para>
- The IP address and TCP port on which <application>Privoxy</application> will
+ The address and TCP port on which <application>Privoxy</application> will
listen for client requests.
</para>
</listitem>
<term>Type of value:</term>
<listitem>
<para>[<replaceable class="parameter">IP-Address</replaceable>]:<replaceable class="parameter">Port</replaceable></para>
+ <para>[<replaceable class="parameter">Hostname</replaceable>]:<replaceable class="parameter">Port</replaceable></para>
</listitem>
</varlistentry>
serve requests from other machines (e.g. on your local network) as well, you
will need to override the default.
</para>
+ <para>
+ You can use this statement multiple times to make
+ <application>Privoxy</application> listen on more ports or more
+ <abbrev>IP</abbrev> addresses. Suitable if your operating system does not
+ support sharing <abbrev>IPv6</abbrev> and <abbrev>IPv4</abbrev> protocols
+ on the same socket.
+ </para>
+ <para>
+ If a hostname is used instead of an IP address, <application>Privoxy</application>
+ will try to resolve it to an IP address and if there are multiple, use the first
+ one returned.
+ </para>
+ <para>
+ If the address for the hostname isn't already known on the system
+ (for example because it's in /etc/hostname), this may result in DNS
+ traffic.
+ </para>
+ <para>
+ If the specified address isn't available on the system, or if the
+ hostname can't be resolved, <application>Privoxy</application>
+ will fail to start.
+ </para>
<para>
IPv6 addresses containing colons have to be quoted by brackets.
+ They can only be used if <application>Privoxy</application> has
+ been compiled with IPv6 support. If you aren't sure if your version
+ supports it, have a look at
+ <literal>http://config.privoxy.org/show-status</literal>.
</para>
<para>
- If you leave out the IP address, <application>Privoxy</application> will
- bind to all IPv4 interfaces (addresses) on your machine and may become reachable
- from the Internet. In that case, consider using <link
- linkend="acls">access control lists</link> (ACL's, see below), and/or
- a firewall.
+ Some operating systems will prefer IPv6 to IPv4 addresses even if the
+ system has no IPv6 connectivity which is usually not expected by the user.
+ Some even rely on DNS to resolve localhost which mean the "localhost" address
+ used may not actually be local.
+ </para>
+ <para>
+ It is therefore recommended to explicitly configure the intended IP address
+ instead of relying on the operating system, unless there's a strong reason not to.
+ </para>
+ <para>
+ If you leave out the address, <application>Privoxy</application> will bind to all
+ IPv4 interfaces (addresses) on your machine and may become reachable from the
+ Internet and/or the local network. Be aware that some GNU/Linux distributions
+ modify that behaviour without updating the documentation. Check for non-standard
+ patches if your <application>Privoxy</application>version behaves differently.
+ </para>
+ <para>
+ If you configure <application>Privoxy</application>to be reachable from the
+ network, consider using <link linkend="acls">access control lists</link>
+ (ACL's, see below), and/or a firewall.
</para>
<para>
If you open <application>Privoxy</application> to untrusted users, you will
linkend="enable-edit-actions">enable-edit-actions</link></literal> and
<literal><link linkend="enable-remote-toggle">enable-remote-toggle</link></literal>
</para>
+ <para>
+ With the exception noted above, listening on multiple addresses is currently
+ not supported by <application>Privoxy</application> directly.
+ It can be done on most operating systems by letting a packet filter
+ redirect request for certain addresses to Privoxy, though.
+ </para>
</listitem>
</varlistentry>
<varlistentry>
IP addresses, only the first one is used.
</para>
<para>
- Some systems allows IPv4 client to connect to IPv6 server socket.
- Then the client's IPv4 address will be translated by system into
+ Some systems allow IPv4 clients to connect to IPv6 server sockets.
+ Then the client's IPv4 address will be translated by the system into
IPv6 address space with special prefix ::ffff:0:0/96 (so called IPv4
mapped IPv6 address). <application>Privoxy</application> can handle it
and maps such ACL addresses automatically.
</para>
<para>
<programlisting>
- foward / [2001:DB8::1]:8000
+ forward / [2001:DB8::1]:8000
</programlisting>
</para>
<para>
that go away when you try again manually. Start with a small value and check Privoxy's
logfile from time to time, to see how many retries are usually needed.
</para>
- <para>
- Due to a bug, this option currently also causes Privoxy to
- retry in case of certain problems with direct connections.
- </para>
</listitem>
</varlistentry>
<varlistentry>
<term>Notes:</term>
<listitem>
<para>
- For SOCKS requests the timeout currently doesn't start until
- the SOCKS server accepted the request. This will be fixed in
- the next release.
+ The default is quite high and you probably want to reduce it.
+ If you aren't using an occasionally slow proxy like Tor, reducing
+ it to a few seconds should be fine.
</para>
</listitem>
</varlistentry>
<sect3 renderas="sect4" id="handle-as-empty-doc-returns-ok"><title>handle-as-empty-doc-returns-ok</title>
<variablelist>
<varlistentry>
- <term>Note:</term>
+ <term>Specifies:</term>
+ <listitem>
+ <para>
+ The status code Privoxy returns for pages blocked with
+ <!-- URL will only end up in the user manual so the relative link should work. -->
+ <literal><ulink url="actions-file.html#HANDLE-AS-EMPTY-DOCUMENT">+handle-as-empty-document</ulink></literal>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Type of value:</term>
+ <listitem>
+ <para>
+ <replaceable>0 or 1</replaceable>
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Default value:</term>
+ <listitem>
+ <para>0</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Effect if unset:</term>
+ <listitem>
+ <para>
+ Privoxy returns a status 403(forbidden) for all blocked pages.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Effect if set:</term>
+ <listitem>
+ <para>
+ Privoxy returns a status 200(OK) for pages blocked with +handle-as-empty-document
+ and a status 403(Forbidden) for all other blocked pages.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Notes:</term>
<listitem>
<para>
This is a work-around for Firefox bug 492459:
</quote>
(<ulink url="https://bugzilla.mozilla.org/show_bug.cgi?id=492459"
>https://bugzilla.mozilla.org/show_bug.cgi?id=492459</ulink>)
+ As the bug has been fixed for quite some time this option should no longer
+ be needed and will be removed in a future release. Please speak up if you
+ have a reason why the option should be kept around.
</para>
</listitem>
</varlistentry>
+</variablelist>
+<![%config-file;[<literallayout>@@#handle-as-empty-doc-returns-ok 1</literallayout>]]>
+</sect3>
+
+
+<sect3 renderas="sect4" id="enable-compression"><title>enable-compression</title>
+<variablelist>
<varlistentry>
<term>Specifies:</term>
<listitem>
<para>
- The status code Privoxy returns for pages blocked with
- <!-- URL will only end up in the user manual so the relative link should work. -->
- <literal><ulink url="actions-file.html#HANDLE-AS-EMPTY-DOCUMENT">+handle-as-empty-document</ulink></literal>.
+ Whether or not buffered content is compressed before delivery.
</para>
</listitem>
</varlistentry>
<term>Effect if unset:</term>
<listitem>
<para>
- Privoxy returns a status 403(forbidden) for all blocked pages.
+ Privoxy does not compress buffered content.
</para>
</listitem>
</varlistentry>
<term>Effect if set:</term>
<listitem>
<para>
- Privoxy returns a status 200(OK) for pages blocked with +handle-as-empty-document
- and a status 403(Forbidden) for all other blocked pages.
+ Privoxy compresses buffered content before delivering it to the client,
+ provided the client supports it.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Notes:</term>
+ <listitem>
+ <para>
+ This directive is only supported if Privoxy has been compiled with
+ FEATURE_COMPRESSION, which should not to be confused with FEATURE_ZLIB.
+ </para>
+ <para>
+ Compressing buffered content is mainly useful if Privoxy and the
+ client are running on different systems. If they are running on the
+ same system, enabling compression is likely to slow things down.
+ If you didn't measure otherwise, you should assume that it does
+ and keep this option disabled.
+ </para>
+ <para>
+ Privoxy will not compress buffered content below a certain length.
+ </para>
+ </listitem>
+ </varlistentry>
+</variablelist>
+<![%config-file;[<literallayout>@@#enable-compression 1</literallayout>]]>
+</sect3>
+
+
+<sect3 renderas="sect4" id="compression-level"><title>compression-level</title>
+<variablelist>
+ <varlistentry>
+ <term>Specifies:</term>
+ <listitem>
+ <para>
+ The compression level that is passed to the zlib library when compressing buffered content.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Type of value:</term>
+ <listitem>
+ <para>
+ <replaceable>Positive number ranging from 0 to 9.</replaceable>
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Default value:</term>
+ <listitem>
+ <para>1</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Notes:</term>
+ <listitem>
+ <para>
+ Compressing the data more takes usually longer than compressing
+ it less or not compressing it at all. Which level is best depends
+ on the connection between Privoxy and the client. If you can't
+ be bothered to benchmark it for yourself, you should stick with
+ the default and keep compression disabled.
+ </para>
+ <para>
+ If compression is disabled, the compression level is irrelevant.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Examples:</term>
+ <listitem>
+ <para>
+ <screen>
+ # Best speed (compared to the other levels)
+ compression-level 1
+ # Best compression
+ compression-level 9
+ # No compression. Only useful for testing as the added header
+ # slightly increases the amount of data that has to be sent.
+ # If your benchmark shows that using this compression level
+ # is superior to using no compression at all, the benchmark
+ # is likely to be flawed.
+ compression-level 0
+ </screen>
</para>
</listitem>
</varlistentry>
</variablelist>
-<![%config-file;[<literallayout>@@handle-as-empty-doc-returns-ok 1</literallayout>]]>
+<![%config-file;[<literallayout>@@#compression-level 1</literallayout>]]>
</sect3>