Parameters

This section describes how to configure Red Hat Content Accelerator via the available TUX parameters.

WarningWarning
 

Most parameters can only be set when Red Hat Content Accelerator is not active.

NoteNote
 

CGI_UID and CGI_GID are no longer available. All Red Hat Content Accelerator threads are executed with DAEMON_UID and DAEMON_GID.

/proc/sys/net/tux Parameters

The following parameters are set through /proc/sys/net/tux. Note this has changed from the original location of /proc/sys/net/http and /proc/net/http.

Table 3-1. Red Hat Content Accelerator Configuration Parameters

NameDefaultDescription
serverport80No longer available. To change the Red Hat Content Accelerator HTTP server port, use the command echo 'http://0.0.0.0:80' > /proc/net/tux/0/listen/0, where 80 is the port number.
clientport8080The port listened to by the userspace http-daemon
documentroot/var/www/htmlThe directory where the web pages are stored. If using the init script /etc/rc.d/init.d/tux, documentroot should be set in /etc/sysconfig/tux as DOCROOT.
http_subdocrootNo value set by defaultThe directory, relative to the documentroot, where the web pages are stored. Red Hat Content Accelerator defaults to using documentroot if http_subdocroot has no value.
ftp_subdocrootNo value set by defaultThe directory, relative to the documentroot, where the files to be served by the FTP server are stored. Red Hat Content Accelerator defaults to using the document root defined for the HTTP server if ftp_subdocroot has no value.
ftp_log_retr_only0If set to 0, Red Hat Content Accelerator will log every other command as well. If set to 1, Red Hat Content Accelerator will only log RETR FTP commands to cut down the log size.
ftp_wait_close1If set to 1, Red Hat Content Accelerator will wait for data socket to close before sending completion message to command socket. Certain clients (for example, lynx) get confused by Red Hat Content Accelerator's high level of asynchronity. This setting slows down FTP RETR downloads and directory listings and increases packet count, but it works around broken FTP clients. If set to 0, Red Hat Content Accelerator will not wait for the FTP client to notice the closed data socket.
ftp_login_message0 If set to 1, the number of users that are logged in and the bandwidth currently served by Red Hat Content Accelerator is shown after logging in to the FTP server. If set to 0, this information is not shown.
404_page404.html If Red Hat Content Accelerator does not manage to look up a requested page then it first tries to look up the document specified in 404_page. If the 404 page can not be found, the canned 404 message is sent. The file is relative to the document root.
threadsThe number or server-threads, set at most to 1 per CPUThe number of kernel threads (and associated daemon threads) to be used. Can not be greater than the number of CPUs on the system. If using the init script /etc/rc.d/init.d/tux, threads should be set in /etc/sysconfig/tux as TUXTHREADS.
mode_allowedS_IROTHRequired permissions for files Red Hat Content Accelerator will process. See "man 2 stat" for all values.
mode_forbiddendir+sticky+executeFiles with this permission-mask are "forbidden" and will not be processed by Red Hat Content Accelerator. See "man 2 stat" for all values.
nonagle2If set to 0, standard Nagle output packet merging. If set to 1, no Nagle merging of output packets. If set to 2, TCP_CORK-style output packet merging.
push_all0If set to 0, may merge subsequent packets. If set to 1, force a packet boundary right after the end of the Red Hat Content Accelerator request.
compression0If set to 0, it is disabled. If set to 1, sending gzip compressed data is turned on. See the Section called Compressed Gzip Data Stream for details.
cgiroot/var/www/tux/cgiroot/The directory in which Red Hat Content Accelerator runs CGI programs. Set by default to $DOCROOT in the tux init script.
cgi_cpu_mask0xffffffffThe default value allows CGI scripts to execute on all CPUs. This value can be set to bind newly started CGI scripts to a single CPU or a set of CPUs. The CPUs are represented in a 32-bit bitmask, where bit 1 is CPU#0, bit 2 is CPU#1, etc. This value has not effect on single-processor systems.
cgi_inherit_cpu0If set to 1, all newly started CGI scripts inherit the CPU-binding of the CGI-starting Red Hat Content Accelerator thread — all processes started by the CGI script will be bound to the same CPU as the parent CGI.
max_connect1000Maximum number of concurrent connections.
max_header_len3000Maximum header size in bytes.
max_output_bandwidth0Maximum output bandwidth (per connection) used up by keepalive requests in bytes/sec. The default value of 0 means off or unlimited bandwidth. Can be as low as 1 byte/sec. This parameter replaces max_keepalive_bw.
max_keepalive1000Maximum number of open keepalive connections. After having reached max_keepalives connections, Red Hat Content Accelerator zaps old connections based on LRU.
keepalive_timeout0Unfinished and should not be used. A per-client-connection timer that will time out if a request does not arrive within a pre-specified time. Timeout value is set in seconds.
max_object_size100MBMaximum file size Red Hat Content Accelerator is willing to serve specified in bytes.
Dprintk0If TUX_DEBUG is turned on, then print out very verbose messages to syslog. Should only be used for debugging purposes.
ack_pingpong1Delay TCP ACK for incoming frames in the hopes of a subsequent output frame. Separate ACK will happen nevertheless, if no output frame is generated within a timeout.
all_userspace0If set to 1, every complete and valid HTTP request will be bounced to the first user-space module. The user-space module "takes control" over the entire URL space. Then, the user-space module can make a decision to 1) serve a static reply, 2) serve a cached dynamic reply, or 3) create a dynamic reply. If set to 0, all_userspace is disabled.
application_protocol0If set to 1, it enables the Red Hat Content Accelerator FTP server. If set to 0, this feature is disabled. Refer to the Section called Red Hat Content Accelerator as an FTP Server for details.
logentry_align_orderN/ACurrently unused.
logfile/var/log/tuxThe filename of the Red Hat Content Accelerator binary logfile. Refer to the Section called Log Files in Chapter 2 for more information.
logging0If set to 1, logging is enabled. If set to 0, logging is disabled.
redirect_logging1Set to 0 to suppress redirected connections. Can be changed at runtime and takes effect immediately.
referer_logging0If set to 1, referer logging is enabled and will be automatically printed by tux2w3c if the referer entry is present. If set to 0, referer logging is disabled.
max_backlog2048Maximum size of SYN backlog of the Red Hat Content Accelerator listening socket.
virtual_server0 (off)Turns on mass virtual hosting. Hosts are headers from the browser that are directly turned into $DOCROOT/<Host> 'virtual docroots.' This way any number of hosts can be served by a single Red Hat Content Accelerator server without any performance penalty at all. Refer to the Section called Mass Virtual Hosting for details.
mass_hosting_hash0 (off)If virtual_server is enabled, this parameter modifies the hostname mapping to be more effective for a large number of hosts. Refer to the Section called Mass Virtual Hosting for details.
strip_host_tail0 (off)If virtual_server is enabled, this parameter strips off hostname components. Refer to the Section called Mass Virtual Hosting for details.
zerocopy_parse1Use the input packet buffer as a temporary buffer and avoids copying input data.
defer_accept0 (disabled if keepalive_timeout or max_keepalives is set)If set to 1, then Red Hat Content Accelerator processes will not be woken up on the initial SYN-ACK event of a new TCP connection, but only after the first real data packet has arrived. If set to 0, this feature is disabled.
http_dir_indexing0 (disabled)If set to 1, Red Hat Content Accelerator will list files in readable directories if an index file does not exist.
generate_cache_control1 (enabled)If set to 1, generate HTTP-expiration headers according to /etc/tux.mime.types. Refer to the Section called HTTP Cache Control for details.
generate_etags1 (enabled)If set to 1, generate the Etag HTTP header. Refer to the Section called HTTP Cache Control for details.
generate_last_mod1 (enabled)If set to 1, generate the Last-Modified HTTP header. Refer to the Section called HTTP Cache Control for details.

Init Script Parameters

If the Red Hat Content Accelerator init script /etc/rc.d/init.d/tux is used, the following parameters can be set in the file /etc/sysconfig/tux (see Table 3-2). They should not be set in /etc/sysctl.conf because the init script will override parameters set in /etc/sysctl.conf. Using the init script is the preferred method for starting Red Hat Content Accelerator. For parameters beyond those supported by /etc/sysconfig/tux, you can use /etc/sysctl.tux, which is read after the Red Hat Content Accelerator module is loaded; /etc/sysctl.conf is read before the Red Hat Content Accelerator module is loaded and so Red Hat Content Accelerator-specific settings in /etc/sysctl.conf do not take effect.

/proc/net/tux Parameters

After starting Red Hat Content Accelerator, the /proc/net/tux directory contains the file stat. This file contains statistics on every allocated request structure. As this works even if TUX_DEBUG is turned off, this should help debugging things a bit more. It can also be used to calculate file download status. For example, TUX/FTP - the 100*f_pos/filelen gives the current progress of download.

It is possible to bind the logger thread to any particular CPU (or group of CPUs), so you can localize IO, via /proc/net/tux/log_cpu_mask The default is to run on any CPU.

Required Parameters

Before starting Red Hat Content Accelerator, the following parameters must be set:

Note

The DOCROOT for Red Hat Content Accelerator must be the same document root directory as Apache or other user-space daemon running as the assistant web server for Red Hat Content Accelerator to properly redirect requests.