# Mount and Bind Configuration in Apache, Nginx, IIS, and Acequia ## Overview Web servers expose files and services by mapping URL paths to local or remote resources. These mappings—called *mount points*—are configured differently in Apache, Nginx, and IIS. Acequia, which uses WebDAV as a central protocol, needs a mount and bind configuration that is portable, declarative, and browser-friendly. This document reviews existing web server configs and proposes a JSON-based config file format for Acequia. --- ## Apache (`httpd.conf`) Apache uses directives to mount URL paths to filesystem directories: - `DocumentRoot` defines the root directory for a virtual host. - `Alias` maps specific URL paths to other directories. - `` configures access and behavior for mounted paths. ### Example ``` Alias /images/ "/data/media/images/" Options Indexes FollowSymLinks AllowOverride None Require all granted ``` Apache does not support true resource-level BIND semantics. However, similar behavior can be mimicked using filesystem-level symlinks. --- ## Nginx (`nginx.conf`) Nginx uses a block-structured config format with the `location` directive to define mount behavior: - `root` appends the requested URI to the root path. - `alias` replaces the URI prefix with a new path directly. ### Example ``` server { listen 80; server_name example.com; location /images/ { alias /data/media/images/; autoindex on; } } ``` Like Apache, Nginx does not support BIND semantics out of the box, but URL rewriting and symbolic links can achieve similar outcomes. --- ## IIS (`web.config`) IIS uses *virtual directories* to map URL paths to filesystem paths. This is configured via the IIS Manager GUI or in `web.config`: ### Example ```xml ``` IIS treats mount points as isolated logical folders, and does not natively support binding multiple paths to the same resource identity. --- ## Acequia (`acequia.conf.json`) Acequia proposes a JSON-based configuration format to define mount points and resource bindings across decentralized nodes. This file can live in the root directory of a data volume or be advertised at a well-known path (e.g. `.well-known/acequia.conf.json`). ### Example ```json { "mounts": [ { "mountPath": "/photos", "target": "file:///Volumes/Media/Photos", "type": "local", "readOnly": true, "label": "Media Drive - Photos" }, { "mountPath": "/docs/reports", "target": "https://example.org/webdav/reports/", "type": "webdav", "auth": { "method": "basic", "username": "user", "password": "env:WEBDAV_PASS" } }, { "mountPath": "/datasets", "target": "ipfs://QmSomeCID12345", "type": "ipfs", "readOnly": true } ] } ``` This format supports: - Local and remote targets - Multiple backends (file, WebDAV, IPFS, etc.) - Optional authentication - BIND-like semantics by allowing multiple `mountPath`s to reference the same `target` --- ## Conclusion Apache, Nginx, and IIS each support static mount point configuration tied to the local filesystem. None of them natively support BIND operations as defined in RFC 5842. Acequia introduces a portable JSON configuration file, `acequia.conf.json`, that extends the idea of mount points into a decentralized, multi-protocol WebDAV-based system.