Skip to content

Commit

Permalink
edited to section 4-2
Browse files Browse the repository at this point in the history
  • Loading branch information
langpavel committed Feb 1, 2012
1 parent 9a3dfe5 commit b56ca81
Show file tree
Hide file tree
Showing 8 changed files with 2,117 additions and 166 deletions.
1 change: 1 addition & 0 deletions .gitignore
Expand Up @@ -7,3 +7,4 @@
*.dvi
*.ps
*.xml
node_modules/
5 changes: 2 additions & 3 deletions version-1-5/make.js → version-1-5/tex.js
@@ -1,9 +1,8 @@
/*
* HAProxy configuration book builder
* HAProxy configuration book builder for LaTeX
* run it in node.js
* $ node make.js
*
* var m = require('make'); var parts = m.split_chapters(m.text); filenames = m.writeFiles(parts)
*/

var fs = require('fs');
Expand Down Expand Up @@ -53,7 +52,7 @@ var split_chapters = module.exports.split_chapters = function(text) {
};


var hasIndents = function(text) {
var hasIndents = function(text) { // identify tables too
return text.match(/^( |----+)/mg) !== null;
};

Expand Down
Binary file modified version-1-5/tex/configuration.pdf
Binary file not shown.
2 changes: 2 additions & 0 deletions version-1-5/tex/configuration.tex
Expand Up @@ -35,6 +35,8 @@
\usepackage{multicol}
%\usepackage{makeidx}
%\usepackage{showidx}
\usepackage{longtable}
\usepackage{dashrule}

\usepackage{hyperref} % For creating hyperlinks in cross references

Expand Down
50 changes: 50 additions & 0 deletions version-1-5/tex/ed_04--proxies.tex
@@ -0,0 +1,50 @@
% This is generated content
% Section 4.

\chapter{Proxies}

Proxy configuration can be located in a set of sections:
\begin{itemize}
\item \keyword{defaults} \param{name}
\item \keyword{frontend} \param{name}
\item \keyword{backend} \param{name}
\item \keyword{listen} \param{name}
\end{itemize}

A \keyword{defaults} section sets default parameters for all other sections following
its declaration. Those default parameters are reset by the next \keyword{defaults}
section. See below for the list of parameters which can be set in a \keyword{defaults}
section. The name is optional but its use is encouraged for better readability.


A \keyword{frontend} section describes a set of listening sockets accepting client
connections.


A \keyword{backend} section describes a set of servers to which the proxy will connect
to forward incoming connections.


A \keyword{listen} section defines a complete proxy with its frontend and backend
parts combined in one section. It is generally useful for TCP-only traffic.


All proxy names must be formed from upper and lower case letters, digits,
\CHAR{-} (dash), \CHAR{\_} (underscore) , \CHAR{.} (dot) and \CHAR{:} (colon). ACL names are
case-sensitive, which means that \CHAR{www} and \CHAR{WWW} are two different proxies.


Historically, all proxy names could overlap, it just caused troubles in the
logs. Since the introduction of content switching, it is mandatory that two
proxies with overlapping capabilities (frontend/backend) have different names.
However, it is still permitted that a frontend and a backend share the same
name, as this configuration seems to be commonly encountered.


Right now, two major proxy modes are supported: \texttt{tcp}, also known as layer 4,
and \texttt{http}, also known as layer 7. In layer 4 mode, HAProxy simply forwards
bidirectional traffic between two sides. In layer 7 mode, HAProxy analyzes the
protocol, and can interact with it by allowing, blocking, switching, adding,
modifying, or removing arbitrary contents in requests or responses, based on
arbitrary criteria.

176 changes: 176 additions & 0 deletions version-1-5/tex/ed_04-01--proxy-keywords-matrix.tex
@@ -0,0 +1,176 @@
% This is generated content
% Section 4.1.

\section{Proxy keywords matrix}

\newcommand{\NO}{--}
\newcommand{\YES}{$\times$}
\newcommand{\optnopr}{ $\neg$}
\newcommand{\deprecated}[1]{\textsl{{\color{gray}#1}}}
\newcommand{\depword}[1]{\texttt{\deprecated{#1}}}

The following list of keywords is supported. Most of them may only be used in a
limited set of section types. Some of them are marked as \deprecated{deprecated} because
they are inherited from an old syntax which may be confusing or functionally
limited, and there are new recommended keywords to replace them. Keywords
marked with\optnopr{} can be optionally inverted using the \texttt{no} prefix,
eg.~\texttt{no option contstats}. This makes sense when the option has been enabled by default
and must be disabled for a specific instance. Such options may also be prefixed
with \emph{default} in order to restore default settings regardless of what has been
specified in a previous \keyword{defaults} section.

\begin{longtable}{ l c c c c }
\hline
\textbf{keyword} &
\textbf{defaults} & \textbf{frontend} & \textbf{listen} & \textbf{backend} \\ \hline \hline
\endhead
\keyword{acl} & \NO & \YES & \YES & \YES \\
\keyword{appsession} & \NO & \NO & \YES & \YES \\
\keyword{backlog} & \YES & \YES & \YES & \NO \\
\keyword{balance} & \YES & \NO & \YES & \YES \\
\keyword{bind} & \NO & \YES & \YES & \NO \\
\keyword{bind-process} & \YES & \YES & \YES & \YES \\
\keyword{block} & \NO & \YES & \YES & \YES \\
\keyword{capture cookie} & \NO & \YES & \YES & \NO \\
\keyword{capture request header} & \NO & \YES & \YES & \NO \\
\keyword{capture response header} & \NO & \YES & \YES & \NO \\
\depword{clitimeout} & \YES & \YES & \YES & \NO \\
\depword{contimeout} & \YES & \NO & \YES & \YES \\
\keyword{cookie} & \YES & \NO & \YES & \YES \\
\keyword{default-server} & \YES & \NO & \YES & \YES \\
\keyword{default\_backend} & \YES & \YES & \YES & \NO \\
\keyword{description} & \NO & \YES & \YES & \YES \\
\keyword{disabled} & \YES & \YES & \YES & \YES \\
\keyword{dispatch} & \NO & \NO & \YES & \YES \\
\keyword{enabled} & \YES & \YES & \YES & \YES \\
\keyword{errorfile} & \YES & \YES & \YES & \YES \\
\keyword{errorloc} & \YES & \YES & \YES & \YES \\
\keyword{errorloc302} & \YES & \YES & \YES & \YES \\
\keyword{errorloc303} & \YES & \YES & \YES & \YES \\
\keyword{force-persist} & \NO & \YES & \YES & \YES \\
\keyword{fullconn} & \YES & \NO & \YES & \YES \\
\keyword{grace} & \YES & \YES & \YES & \YES \\
\keyword{hash-type} & \YES & \NO & \YES & \YES \\
\keyword{http-check disable-on-404} & \YES & \NO & \YES & \YES \\
\keyword{http-check expect} & \NO & \NO & \YES & \YES \\
\keyword{http-check send-state} & \YES & \NO & \YES & \YES \\
\keyword{http-request} & \NO & \YES & \YES & \YES \\
\keyword{id} & \NO & \YES & \YES & \YES \\
\keyword{ignore-persist} & \NO & \YES & \YES & \YES \\
\keyword{log}\optnopr & \YES & \YES & \YES & \YES \\
\keyword{maxconn} & \YES & \YES & \YES & \NO \\
\keyword{mode} & \YES & \YES & \YES & \YES \\
\keyword{monitor fail} & \NO & \YES & \YES & \NO \\
\keyword{monitor-net} & \YES & \YES & \YES & \NO \\
\keyword{monitor-uri} & \YES & \YES & \YES & \NO \\
\keyword{option abortonclose}\optnopr & \YES & \NO & \YES & \YES \\
\keyword{option accept-invalid-http-request}\optnopr & \YES & \YES & \YES & \NO \\
\keyword{option accept-invalid-http-response}\optnopr & \YES & \NO & \YES & \YES \\
\keyword{option allbackups}\optnopr & \YES & \NO & \YES & \YES \\
\keyword{option checkcache}\optnopr & \YES & \NO & \YES & \YES \\
\keyword{option clitcpka}\optnopr & \YES & \YES & \YES & \NO \\
\keyword{option contstats}\optnopr & \YES & \YES & \YES & \NO \\
\keyword{option dontlog-normal}\optnopr & \YES & \YES & \YES & \NO \\
\keyword{option dontlognull}\optnopr & \YES & \YES & \YES & \NO \\
\keyword{option forceclose}\optnopr & \YES & \YES & \YES & \YES \\
\keyword{option forwardfor} & \YES & \YES & \YES & \YES \\
\keyword{option http-no-delay}\optnopr & \YES & \YES & \YES & \YES \\
\keyword{option http-pretend-keepalive}\optnopr & \YES & \YES & \YES & \YES \\
\keyword{option http-server-close}\optnopr & \YES & \YES & \YES & \YES \\
\keyword{option http-use-proxy-header}\optnopr & \YES & \YES & \YES & \NO \\
\keyword{option httpchk} & \YES & \NO & \YES & \YES \\
\keyword{option httpclose}\optnopr & \YES & \YES & \YES & \YES \\
\keyword{option httplog} & \YES & \YES & \YES & \YES \\
\keyword{option http\_proxy}\optnopr & \YES & \YES & \YES & \YES \\
\keyword{option independant-streams}\optnopr & \YES & \YES & \YES & \YES \\
\keyword{option ldap-check} & \YES & \NO & \YES & \YES \\
\keyword{option log-health-checks}\optnopr & \YES & \NO & \YES & \YES \\
\keyword{option log-separate-errors}\optnopr & \YES & \YES & \YES & \NO \\
\keyword{option logasap}\optnopr & \YES & \YES & \YES & \NO \\
\keyword{option mysql-check} & \YES & \NO & \YES & \YES \\
\keyword{option pgsql-check} & \YES & \NO & \YES & \YES \\
\keyword{option nolinger}\optnopr & \YES & \YES & \YES & \YES \\
\keyword{option originalto} & \YES & \YES & \YES & \YES \\
\keyword{option persist}\optnopr & \YES & \NO & \YES & \YES \\
\keyword{option redispatch}\optnopr & \YES & \NO & \YES & \YES \\
\keyword{option redis-check} & \YES & \NO & \YES & \YES \\
\keyword{option smtpchk} & \YES & \NO & \YES & \YES \\
\keyword{option socket-stats}\optnopr & \YES & \YES & \YES & \NO \\
\keyword{option splice-auto}\optnopr & \YES & \YES & \YES & \YES \\
\keyword{option splice-request}\optnopr & \YES & \YES & \YES & \YES \\
\keyword{option splice-response}\optnopr & \YES & \YES & \YES & \YES \\
\keyword{option srvtcpka}\optnopr & \YES & \NO & \YES & \YES \\
\keyword{option ssl-hello-chk} & \YES & \NO & \YES & \YES \\
\keyword{option tcp-smart-accept}\optnopr & \YES & \YES & \YES & \NO \\
\keyword{option tcp-smart-connect}\optnopr & \YES & \NO & \YES & \YES \\
\keyword{option tcpka} & \YES & \YES & \YES & \YES \\
\keyword{option tcplog} & \YES & \YES & \YES & \YES \\
\keyword{option transparent}\optnopr & \YES & \NO & \YES & \YES \\
\keyword{persist rdp-cookie} & \YES & \NO & \YES & \YES \\
\keyword{rate-limit sessions} & \YES & \YES & \YES & \NO \\
\keyword{redirect} & \NO & \YES & \YES & \YES \\
\depword{redisp} & \YES & \NO & \YES & \YES \\
\depword{redispatch} & \YES & \NO & \YES & \YES \\
\keyword{reqadd} & \NO & \YES & \YES & \YES \\
\keyword{reqallow} & \NO & \YES & \YES & \YES \\
\keyword{reqdel} & \NO & \YES & \YES & \YES \\
\keyword{reqdeny} & \NO & \YES & \YES & \YES \\
\keyword{reqiallow} & \NO & \YES & \YES & \YES \\
\keyword{reqidel} & \NO & \YES & \YES & \YES \\
\keyword{reqideny} & \NO & \YES & \YES & \YES \\
\keyword{reqipass} & \NO & \YES & \YES & \YES \\
\keyword{reqirep} & \NO & \YES & \YES & \YES \\
\keyword{reqisetbe} & \NO & \YES & \YES & \YES \\
\keyword{reqitarpit} & \NO & \YES & \YES & \YES \\
\keyword{reqpass} & \NO & \YES & \YES & \YES \\
\keyword{reqrep} & \NO & \YES & \YES & \YES \\
\keyword{reqsetbe} & \NO & \YES & \YES & \YES \\
\keyword{reqtarpit} & \NO & \YES & \YES & \YES \\
\keyword{retries} & \YES & \NO & \YES & \YES \\
\keyword{rspadd} & \NO & \YES & \YES & \YES \\
\keyword{rspdel} & \NO & \YES & \YES & \YES \\
\keyword{rspdeny} & \NO & \YES & \YES & \YES \\
\keyword{rspidel} & \NO & \YES & \YES & \YES \\
\keyword{rspideny} & \NO & \YES & \YES & \YES \\
\keyword{rspirep} & \NO & \YES & \YES & \YES \\
\keyword{rsprep} & \NO & \YES & \YES & \YES \\
\keyword{server} & \NO & \NO & \YES & \YES \\
\keyword{source} & \YES & \NO & \YES & \YES \\
\depword{srvtimeout} & \YES & \NO & \YES & \YES \\
\keyword{stats admin} & \NO & \NO & \YES & \YES \\
\keyword{stats auth} & \YES & \NO & \YES & \YES \\
\keyword{stats enable} & \YES & \NO & \YES & \YES \\
\keyword{stats hide-version} & \YES & \NO & \YES & \YES \\
\keyword{stats http-request} & \NO & \NO & \YES & \YES \\
\keyword{stats realm} & \YES & \NO & \YES & \YES \\
\keyword{stats refresh} & \YES & \NO & \YES & \YES \\
\keyword{stats scope} & \YES & \NO & \YES & \YES \\
\keyword{stats show-desc} & \YES & \NO & \YES & \YES \\
\keyword{stats show-legends} & \YES & \NO & \YES & \YES \\
\keyword{stats show-node} & \YES & \NO & \YES & \YES \\
\keyword{stats uri} & \YES & \NO & \YES & \YES \\
\keyword{stick match} & \NO & \NO & \YES & \YES \\
\keyword{stick on} & \NO & \NO & \YES & \YES \\
\keyword{stick store-request} & \NO & \NO & \YES & \YES \\
\keyword{stick store-response} & \NO & \NO & \YES & \YES \\
\keyword{stick-table} & \NO & \NO & \YES & \YES \\
\keyword{tcp-request connection} & \NO & \YES & \YES & \NO \\
\keyword{tcp-request content} & \NO & \YES & \YES & \YES \\
\keyword{tcp-request inspect-delay} & \NO & \YES & \YES & \YES \\
\keyword{tcp-response content} & \NO & \NO & \YES & \YES \\
\keyword{tcp-response inspect-delay} & \NO & \NO & \YES & \YES \\
\keyword{timeout check} & \YES & \NO & \YES & \YES \\
\keyword{timeout client} & \YES & \YES & \YES & \NO \\
\depword{timeout clitimeout} & \YES & \YES & \YES & \NO \\
\keyword{timeout connect} & \YES & \NO & \YES & \YES \\
\depword{timeout contimeout} & \YES & \NO & \YES & \YES \\
\keyword{timeout http-keep-alive} & \YES & \YES & \YES & \YES \\
\keyword{timeout http-request} & \YES & \YES & \YES & \YES \\
\keyword{timeout queue} & \YES & \NO & \YES & \YES \\
\keyword{timeout server} & \YES & \NO & \YES & \YES \\
\depword{timeout srvtimeout} & \YES & \NO & \YES & \YES \\
\keyword{timeout tarpit} & \YES & \YES & \YES & \YES \\
\depword{transparent} & \YES & \NO & \YES & \YES \\
\keyword{use\_backend} & \NO & \YES & \YES & \NO \\
\end{longtable}

0 comments on commit b56ca81

Please sign in to comment.