1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
<TITLE>Apache extra features</TITLE>
</HEAD>
<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
<BODY
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#000080"
ALINK="#FF0000"
>
<DIV ALIGN="CENTER">
<IMG SRC="images/sub.gif" ALT="[APACHE DOCUMENTATION]">
<H3>
Apache HTTP Server
</H3>
</DIV>
<H1 ALIGN="CENTER">Overview of new features</H1>
<H2>New Features with Apache 1.0</H2>
<P>New features with this release, as extensions of the Apache
functionality (see also more detailed <CODE>CHANGES</CODE> file) in
the source directory. Because the core code has changed so
significantly, there are certain liberties that earlier versions of
Apache (and the NCSA daemon) took that Apache 1.0 is pickier about -
please check the <A HREF="misc/compat_notes.html">compatibility notes</A> if
you have any problems.
<UL>
<LI> API for server extensions --- see below for a brief sermon on
philosophy, or see <A HREF="misc/API.html">src/API.html</A> for an actual
overview. Most server functionality (including includes, CGI, and
most forms of access control) are actually implemented as
API-conformant modules; you can also do other neat stuff (we've
included a sample module, for instance, which one of us is using to
track click-trails using the <A
HREF="http://home.netscape.com/newsref/std/cookie_spec.html">Netscape
cookie mechanism</A>, for visitors who come in through Netscape
clients). <A HREF="mod/mod_dld.html">Modules</A> can also be loaded
dynamically using GNU DLD.
<P>
The API is not yet quite stable (see src/TODO for some possible
changes), but anything done now will be easily adapted for future
versions --- after all, we have more modules to adapt than you do.
<P>
<LI> <A HREF="process-model.html">New Process Model - much less forking, no
fixed number of children.</A>
We found that many people were using values for "MaxServers" either
too high or too low, and were hanging themselves on it. The model we
adopted is still based on long-lived minimal-forking processes, but
instead of specifying one number of persistent processes, the
web-master specifies a maximum and minimum number of processes to be
"spare" - every couple of seconds the parent checks the actual number
of spare servers and adjusts accordingly. This should keep the number
of servers concurrently running relatively low while still ensuring
minimal forking.
<P>
<LI> <A HREF="vhosts/index.html"><VirtualHost> (the configuration
directive for
multiple-homed servers)</A> is more general now. Just about any srm.conf or
httpd.conf command can go in a <Virtualhost> section, with the
following specific exceptions: ServerType, UserId, GroupId,
StartServers, MaxRequestsPerChild, BindAddress, PidFile, TypesConfig,
ServerRoot.
<P>
<LI> <A HREF="content-negotiation.html">Support for content negotiation of
languages through MultiViews</A>
(*.fr, *.de, *.en suffixes), via the new AddLanguage and LanguagePriority
commands (code written by Florent Guillaume, guillaum@clipper.ens.fr).
<P>
<LI> Significant internal cleanups and rearrangements. The two externally
visible consequences of this are that just about all of the unchecked
fixed limits are gone, and that the server is somewhat pickier about
config file syntax (noting and complaining about extraneous command
arguments or other stuff at the end of command lines).
<P>
<LI> XBITHACK is a run-time option, and can be selectively enabled per
directory --- the -DXBITHACK compile-time option just changes the
default. The command which configures it is "XBitHack", which is
allowed everywhere "Options" is; this takes an argument ---
"XBitHack Off" turns it off; "XBitHack On" gets you the NCSA
-DXBITHACK behavior; and "XBitHack Full" gets you the Apache GXBIT
stuff on top of that. (-DXBITHACK makes "Full" the default;
otherwise, it defaults "Off").
<P>
<LI> TransferLog can specify a program which gets the log entries piped to it,
a la 'TransferLog "| /var/www/my-perl-script -arg valu"' --- this should
give the same SIGTERM/pause/SIGKILL treatment to the logging process on
server restarts that a CGI script gets on an aborted request. NB the
server is counting on the logging process to work, and will probably hang
or worse if it dies.
<P>
<LI> <A HREF="mod/mod_log_config.html">Configurable logging module</A> --- this
is a replacement for the standard plane-jane Common Log Format code, which
supports a LogFormat directive which allows you to control the formatting of
entries in the TransferLog, and add some new items if you like (in
particular, Referer and User-Agent). EXPERIMENTAL.
</UL>
<P><HR>
<H2>Other features of Apache</H2>
<UL>
<LI><A HREF="mod/mod_dld.html">Dynamically loading modules using GNU DLD</A>
<LI><A HREF="mod/mod_imap.html">Imagemap Module</A>
<LI><A HREF="mod/mod_dir.html#directoryindex">Multiple DirectoryIndex
filenames</A>
<LI><A HREF="mod/mod_asis.html"> "Send as is" file types</A>
<LI><A HREF="mod/mod_include.html#xbithack">XBITHACK last modified</A>
</UL>
<HR>
<H3 ALIGN="CENTER">
Apache HTTP Server
</H3>
<A HREF="./"><IMG SRC="images/index.gif" ALT="Index"></A>
</BODY>
</HTML>
|