To display the advanced server configuration menu, open the console, select Server Configuration and press the Advanced… button.
The following subsections describe each advanced configuration option.
Select Server Parameters in the advanced server configuration menu to display the server parameters dialog.
The dialog includes the following fields:
Automatic Directory Indexing: Enable automatic generation of a directory listing if no index file is found.
Timeout: How many seconds the server waits for an inactive connection before closing it.
Keep-Alive Requests: The maximum number of requests that can be served over the same connection. Only HTTP/1.1 and some HTTP/1.0 compliant browsers can benefit from this feature.
Maximum Simultaneous Requests: The maximum number of requests the server can serve in parallel.
Log File: The path of the log file. If it is relative, it is considered as a subpath of the server root. If empty, logging is disabled.
Extended Log Format: Add the referrer and the user agent to each log line.
PID File: The path of the file where the server's process ID is written at each startup. You can leave empty if you do not want to use the server's process ID.
User: The user name under whom privileges the server is run when started as root. You can also enter a UID (user ID) by preceding it by the # character. For example, for user whose UID is 502, you can enter #502. For more information, see the "User Option" appendix.
When a browser asks for a URL that does not contain a filename, the server checks for the existence of each index file in the mapped directory. If none is found and automatic directory indexing is enabled, a directory listing is generated and sent to the browser. Otherwise, an error is reported.
To edit, remove or add index filenames, use the Index Files table in the Server Parameters dialog.
Example 4-1. index.htm and index.html as index files
Assume that index.html and index.htm are set as index filenames. If a browser asks for http://<your host name>:<server port>/hello/, the server checks if <documents path>/hello/index.html exists. If not, it checks if <documents path>/hello/index.htm exists. If so, it is sent to the browser. If not, a listing of the directory <documents path>/hello/ is generated and sent to the browser if automatic directory indexing is enabled. If it is disabled, the server replies with a forbidden error message.
When the server sends a document to a browser, it also sends its MIME type. This information helps the browser to know what kind of file it is (HTML, ZIP, JPEG image, etc…) and what to do with (Display it, save it on the disk, launch a configured application to read it, etc…). Abyss Web Server comes with a preset list of common MIME types. To modify this list, select MIME Types in the advanced server configuration menu.
Use the displayed table to edit, remove or add MIME types. A MIME Type has the format type/subtype and is associated to one or more extensions separated by spaces.
Select Aliases in the advanced server configuration menu to display the aliases table.
If a URLs matches an alias' virtual path, the web server maps it to the alias' associated real path.
Use the displayed table to edit, remove or add aliases.
Example 4-3. Relative real path
Assume that there exists an alias which virtual path is /images and which real path is web/artwork. If a browser asks for http://<your host name>:<server port>/images/logo.jpg, the server maps the requested URL to the file <server root>/web/artwork/logo.jpg. The <server root> is added because the real path was relative.
Example 4-4. Absolute real path
Assume now that there exists an alias which virtual path is /images and which real path is /usr/local/web/artwork. If a browser asks for http://<your host name>:<server port>/images/logo.jpg, the server maps the requested URL to the file /usr/local/web/artwork/logo.jpg. The difference with the previous example is that the real path is absolute and not relative.
With Abyss Web Server, you can override the standard error pages and replace them with yours. To do so, select Custom Error Pages in the advanced server configuration menu.
This dialog includes the following elements:
Custom Error Pages: This table contains the customized errors and their associated URLs.
Default Custom Error Page: The URL used when an error which code is not listed in the Custom Error Pages table occurs. If empty, Abyss Web Server generates automatically a standard error page.
An error URL can be:
Local: If it begins with a slash /, the URL is local to the web server.
Global: If it begins with http://, the URL is global and the web server informs the browser a redirect to that URL when an error occurs.
Note:: It is only relevant to set 4xx and 5xx error codes. Other error codes are handled internally in the web server and do not lead to displaying an error page.
Note:: When using a local URL that is a CGI script or an SSI page as a custom error page, the server operates an internal redirection and adds to the custom error page's environment variables all the faulty request environment variables prefixed with REDIRECT_. It adds also the special variable REDIRECT_STATUS which contains the status code of the faulty request. For more information, read "CGI environment variables" section in "CGI Scripts" chapter.
To configure CGI scripts execution, select CGI Parameters in the advanced server configuration menu.
This dialog includes the following fields:
CGI Processing Enabled: Enable/disable CGI scripts execution.
CGI Error File: The path of the file where CGI scripts write error messages. You can leave it empty if you do not want to trace CGI scripts' errors.
CGI Scripts' Timeout: How long (in seconds) the server should wait for a CGI script to deliver content before aborting it.
Resolve CGI Interpreter using the #! Line in Script: Read the first line of the CGI script. If it begins with #!, the rest of the line is considered as the path to the script's interpreter.
The dialog contains also the following tables:
CGI Interpreters: The server uses this table to know which interpreter to use to execute a CGI script. The choice is based on the script's extension: an interpreter runs a script if the extension of that script matches with one of the associated extensions or extensions patterns of the interpreter. Each line of the table contains the path of an interpreter and one or more associated extensions or extensions patterns separated by spaces. Refer to the "Patterns Format" appendix for more information about patterns.
When adding or editing a CGI Interpreter, letting the Automatic Update of the CGI Paths set to Yes makes Abyss Web Server add/remove the pattern /*.ext in the CGI Paths table for every added/removed extension ext in associated extensions list.
CGI Paths: Only files that are in one of the CGI paths or theirs subpaths, or that match with one of the CGI Paths patterns can be processed as CGI scripts. These paths are virtual paths. See the "Patterns Format" appendix for more information about patterns.
User CGI Environment Variables: This table contains the variables you want to add to the execution environment of the CGI scripts. Each variable is defined by its name and its value.
For more information about CGI scripts, see "CGI Scripts" chapter.
To configure SSI (Server Side Includes), select SSI Parameters in the advanced server configuration menu.
This dialog includes the following fields:
SSI Associated Extensions: If a file name extension matches with one of these extensions or extensions patterns, it is processed as an SSI file. Read the "Patterns Format" appendix for more information about patterns.
SSI Error Message: The default error message that the server inserts when an error is detected while processing an SSI directive. If empty, an accurate error description with debugging information is generated.
SSI Time Format: The default time format string that the server uses to display times while processing SSI directives. If empty, the string %A, %d-%b-%Y %H:%M:%S %Z is used. For the complete reference of the time format string, read the description of <!-- #config timefmt="time_format" --> directive in "Server Side Includes" chapter.
Abbreviated File Size: The default way to display file sizes. If set to Yes, file sizes are displayed in Kb or Mb. Otherwise, they are displayed in bytes.
Exec cmd Execution: Enbale/disable the execution of shell commands in SSI.
For more information about SSI, refer to "Server Side Includes" chapter.
Select Users and Groups in the advanced server configuration menu to display the users and groups tables.
Use the displayed tables to edit, remove or add users and groups.
A user is defined by its name and its password. A group is defined by its name and its members which can be users and other groups.
Note:: The console hides automatically groups that can lead to circular references when editing a group.
To restrict and manage the access to paths in your web site, select Access Control in the advanced server configuration.
To edit, remove or add path access rules, use the displayed table.
The path access edition dialog contains the following fields:
Virtual Path: The virtual path which contents' access is to be restricted. It must always begin with a slash /. This field accepts also path patterns. In that case, the access rule applies to any virtual path that matches with the specified pattern. Refer to the "Patterns Format" appendix for more information about patterns.
Realm: A short description of the path's contents. It is prompted to users by the browser when it asks them for credentials.
Order: The order that the server follows to check if access is granted to a user. If it is set to Allow/Deny, access is denied by default and is allowed only if the user is in the Allow Access To list and is not in the Deny Acess To list. If it is set to Deny/Allow, access is allowed by default and is denied only if the user is in the Deny Access To list and is not in the Allow Access To list.
Allow Access To: The list of users and groups for whom access is allowed.
Deny Access To: The list of users and groups for whom access is denied.
Note:: If Deny Access To list is empty and the order is Deny/Allow, access is granted to all declared users and groups.