DC-Apache V1.0


DC-Apache stands for Distributed Cooperative Apache Web Server. It is a scalable web server solution to meet the explosion of data traffic on World Wide Web. DC-Apache module is implemented using the API and the module interface provided by Apache. Using DC-Apache module, it is very simple to set up several Apache servers to work together and build a scalable distributed web server system.

In the version 1.0, it uses pool of process model and it is extensively tested for Apache Web Server 1.3.6 on Linux platform. In the future, a version using multithreaded model will be available with Apache 2.0.

Installation and compilation

The DC-Apache module can be downloaded here.

Steps to install and compile:

  1. Untar dca.tar.gz to Apache sources' directory: ?/apache_x.x.x/src/modules/dca
  2. Run the Configure script to rebuild the makefile using the following command:
  3. ./configure --activate-module=src/modules/dca/libdca.a \
  4. Build Apache using make
  5. Install the new compiled programs: make install
  6. Edit the home and co-op web servers' configuration files, typically httpd.conf. See the DC-Apache module configuration section.
  7. Restart the web servers on all participant machines.
DC-Apache module configuration

The DC-Apache module gets its configuration information from the Apache's configuration file. The DC-Apache module introduced three new directives: ExportPath, ImportPath, Backend and DiskQuota.

ExportPath is used to tell the DC-Apache module which directory will be exported among the co-op servers. The files in this directory will be replicated or migrated. The DC-Apache module will build the local document graph from all documents in this directory and its sub-directories.

ImportPath tells the server where to store the replicated documents. The co-op server need to store in this directory the replicated documents it gets from the home server.

Backend indicates the co-op server's address. This information is used for home server to contact co-op servers and to replicate document to them.

In order to limit the usage of co-op server's disk space, there is a directive "DiskQuota" whose value is the disk space limit in bytes that can be used to hold the imported files. The default value is 10M Bytes.

SetHandler is also needed to specify that the requests for the documents under the "ExportPath" directory should be processed by DC-Apache module. This directive is a standard Apache run-time directive. The name of DC-Apache module's handler is "DCA-handler".


A typical part of configuration file for DC-Apache module is shown as follows:

DocumentRoot "/home/www/DCA"
<IfModule mod_dca.c>

SetHandler DCA-handler

# The directory to store the replicated files
# If this parameter is not set, a default path will be used
ImportPath "/home/www/~migrate"

# The directory to be parsed and will be replicated
ExportPath "/home/www/DCA/lod"

# Backend servers

There are two backend servers working with the home server. For a co-op server that has no file to export, the configuration file looks like: <IfModule mod_dca.c>

SetHandler dca-handler

ImportPath /scratch1/lqz/~migrate

# disk quota for imported file
DiskQuota 120000000


Please do not hesitate to send any comment, remark to lqz@cs.arizona.edu

Copyright ©2000 The University of Arizona
All Rights Reserved