Getting started
Overview
Getting started with HTTP/2
Out of the box HTTP/2 nextgen technology with Read Write Serve's dynamic modular architecture and JavaScript plugins is crazy/cool!
latency, multiplexing, prioritization, RFC 7540, RFC 7541, HTTP methods, HTTP headers, modular architecture, declarative language configuration, extensible plugins, middleware
Use Cases
Fulfilling your most demanding needs
Use the Read Write Serve HTTP/2 Server to fulfill all your most demanding requirements.
static Web server, Web hosting provider, REST API, Service Oriented Architecture, SOA, Internet of Things, IoT, Content Management System, CMS, Frictionless Blue Server, BLUEPHRASE
Features
Everything you need, plus all the goodies you know you want!
65 Reasons why the Read Write Serve HTTP/2 Server is in your future — it's packed with all the features you need from a high performance HTTP/2 server.
efficiency, scalability, standardization, configurability, encryption, permissions, URL rewrites, content negotiation, caching, cross origin requests, range requests, BLUEPHRASE files, logging, JavaScript extensibility
Extensibility
Here's the best reason for using Read Write Serve
The Read Write Serve HTTP/2 server has an extensible architecture allowing you to develop chainable JavaScript plugins that work within the request/response cycle.
extensibility, plugins, HTTP methods, work order methods, plugin tasks, processing patterns
RWSERVE
Crazy/Cool
So many cool features, it's crazy!
Access the full spectrum of Read Write Tools RWSERVE features — services, headers, monitoring, http/2, security, customizing — from these high-level Venn-like diagrams.
services,headers,monitoring,http/2,security,customizing
42
The Answer to the Ultimate Question of Life, The Universe, and Everything
A tidy pie for answering your Read Write Tools RWSERVE questions while: A) evaluating, B) preparing, C) securing, D) operating, E) customizing, F) extending the server.
evaluating, preparing, securing, operating, customizing, extending
Readiness
HTTP/2 server — are you ready?
Rate yourself on 1) tech savvy, 2) app requirements, and 3) language readiness to evaluate whether Read Write Tools RWSERVE is a good fit for your next project.
tech savvy, app requirements, language readiness
Download HTTP/2 Server
Grab all the goodness — in your favorite package flavor!
HTTP/2 server with modular JavaScript plugins, available for Linux in PKG and DEB formats: CentOS / Fedora / RedHat / Ubuntu / Debian
Read Write Serve, RWSERVE, download, Fedora, RedHat, CentOS, Ubuntu, Debian, rpm, pkg, tar.gz, rwserve, HTTP/2 server, Read Write Tools
In-depth
The joy of tech!
Everything you ever wanted to know about Read Write Tools RWSERVE HTTP/2, * but were afraid to ask.
essentials,security,monitoring,headers,requests,customization,installation,meta
Req/Res++
More requests / more responses
A quick-pick index to all the Read Write Serve HTTP/2 Server configuration notes.
essentials,security,monitoring,headers,requests,customization,installation,meta
TL;DR
Too Long; Didn't Read
HTTP/2 server with modular JavaScript plugins — plus — all the goodies you know you want!
Read Write Serve, RWSERVE, push prioritization,parti-homed hosting via SNI,information headers,stateful roles,MIME-type text/blue,HTTP/2,custom 404 error pages,Role Based Access Control,IP whitelisting/blacklisting,resource path mapping,JavaScript modules,Node.js handlers,SEO-friendly URL rewrites
42
Evaluating
Considerations when evaluating RWSERVE
These documents will help you learn about the Read Write Tools HTTP/2 server: possible use cases, notable features, limitations and extensibility.
overview, use cases, features, limitations, extensibility
Preparing
Getting everything in the right place
These documents describe: how and where the different parts of the server software are installed, the declarative syntax used in configuring the server, and the required configuration settings for a minimal web server.
downloading, prerequisites, installing, troubleshooting, standard directories, configuration syntax, config hierarchy, file permissions, cluster, server, server name indication, hosts, merged configurations, modules, path patterns, registration
Securing
Safely making resources available with the server
These documents describe: working with the file system to properly set permissions on server software, forbidding public access to resources, blocking usage by bad actors, and using the server's role-based access control module.
file permissions, forbidden, ip access, rbac, user accounts, auth handler, stateful roles, cookies
Operating
Setting up and running a static web server
These documents describe: configuring HTTP/2 request and response headers, request method processing steps, status codes, error handling, and monitoring facilities.
accept types, allow, cache control, content-encoding, content-length, content negotiation, content types, mime-types, etag, timestamps, range, delete method, get method, put method, options method, patch method, post method, trace method, custom errors, information headers, status codes, systemd, logging, counters, user agent, restrictions
Customizing
Setting up dynamic web server features
These documents describe how to enable built-in modules for: dynamic BLUEPHRASE processing with HTTP/2 speculative push prioritization, rewriting SEO-friendly URLs using resource masks, using CORS to relax browser some-origin policies, and splitting the resource request into more usable pieces.
BLUE PROCESSOR, push priority, resource masks, cross origin, raw path
Extending
Using JavaScript to extend the server's capabilities
These documents describe how to use JavaScript to write plugin modules to handle the work order during the request/response cycle, and how to selectively route incoming requests to the plugin.
RWSERVE, JavaScript plugins, work order, router
Essentials
Essentials
Required reading for every webmaster
These notes provide essential information necessary to successfully configure the RWSERVE HTTP/2 server.
Read Write Serve, RWSERVE, cluster, hosts, modules, server, SNI, restrictions
Cluster
Parallel processes to handle simultaneous requests
This note describes the server's ability to handle concurrent requests through a single address and port.
cluster, concurrent requests, simultaneous requests, round-robin, cluster-size, considerations, queue-related delays
Hosts
Required configuration settings for named hosts
This note describes the required settings needed by the server to configure an HTTP/2 socket, TLS certificates, the paths to documents and caches, acceptable mime-types, and allowed methods.
hosts, document-root, tls, private-key, certificate, encoding-cache, dynamic-cache, landing-page
Modules
Determining which steps are active during the request-response cycle
This note describes how the server is modularized and how it can be configured to behave differently by enabling and disabling individual modules.
modules, ip-access, forbidden, RBAC, cross-origin, accept-language, content-encoding, etag, cache-control, user-agent, resource-masks, router, push-priority, information-headers, custom-errors, counters
Server
Required settings for each server
This note lists the required entries in the server section that every configuration file must have.
RWSERVE, server settings, IP address, port, SNI, cluster size, registration, customer-number, access-key
ALPN
Automatic HTTP/1.1 fallback
This note describes how the server and browser agree on whether to use HTTP/2 or HTTP/1.1.
TLS, ALPN, Application Layer Protocol Negotiation, HTTP/2, HTTP/1.1
Server Name Indication
Allowing one IP address to serve multiple hostnames
This note describes how the server makes use of the Server Name Indication (SNI) protocol to allow more than one HTTPS hostname per IP address.
SNI, Server Name Indication, TLS, SSL, ip-address, port, hostname, tls, IETF RFC 3546
Cipher Suites
Choosing the right set of cipher algorithms for your users
This note describes the cipher algorithms that are available for use with the server, and how to configure custom cipher suites.
cipher suites, TLS
Restrictions
Setting limits
This note describes miscellaneous restrictions that can be placed on the server.
RWSERVE, restrictions, content-length-limit, PUT limit, server-version, rw-content-length-limit
Meta
Meta
Background info and general guidelines
These notes provide background information and general guidelines for RWSERVE configuration files, including: syntax, hierarchical structure, common patterns, and idioms.
RWSERVE, guidelines, background information, syntax, merged configurations, hierarchy, path patterns, timestamps
Configuration Syntax
Getting started with BLUEPHRASE
This note describes the syntax used within server configuration files.
RWSERVE, configuration syntax, version pragma, include pragma, comments, sections, subsections, single-line entries, sourcerefs, attributes
Merged Configurations
Common settings for multiple named hosts
This note describes how the server and host sections can be configured with merged settings to avoid repetition when configuring multiple hosts.
server section, host section, merge attribute, join, override, reduce, repetition
Config Hierarchy
A bare-bones look at configuration settings
This note provides a summary of the keywords used in host settings and server settings, and the hierarchy used to configure RWSERVE.
RWSERVE, configuration hierarchy, server settings, host settings, keywords, hierarchy
Path Patterns
Specification of path-pattern globbing rules
This note documents the rules used by the server for all configuration entries that use the path-pattern idiom.
path-patterns, globstar, asterisk, question mark, wildcard, GRAVE-ACCENT delimiters
Timestamps
Using file modification dates during update and caching operations
This note documents where and how timestamps are used by the server, and their role in file updates and caching.
if-modified-since, if-unmodified-since, last-modified, cache control, etag, IETF RFC 7231, IETF RFC 5905
Limitations
Some things just aren't possible
The HTTP/2 Server has a few limitations that you should be aware of.
upgrade, 101 switching protocols, CONNECT, proxy server, http, https, SSL, TLS
Security
Security
Modules and protocols to restrict use of resources
These notes provide information and guidelines for restricting access to resources using path patterns, IP addresses, and resource based access control.
RWSERVE, security, ip address, cookies, auth, stateful roles, path patterns, RBAC, Resource Based Access Control
Auth Handler
Sending login/logout requests to the server
This note describes how the server handles POST requests to login and logout of the Role Based Access Control mechanism.
RWSERVE, authorization, login, logout, user, password, rw-rbac-unsupported-method, rw-rbac-unsupported-content-type, rw-rbac-unsupported-action, rw-rbac-missing-credentials, rw-rbac-forbidden, rw-rbac-internal-error
Cookies
Maintaining state between browser requests
This note describes the cookie protocol used by the server to maintain state between browser requests.
RWSERVE, _cookieMap, set-cookie, decodeURIComponent, RBAC, Role Based Access Controls
Forbidden
Preventing public access to hidden files and special directories
This note describes how to block hidden files and special directories from being requested by the server.
forbidden, hidden files, special directories, path-pattern, rw-forbidden, GRAVE-ACCENTS, SOLIDUS, ASTERISK
IP Access
Whitelisting and blacklisting by IP address
This note describes how to configure the server to restrict incoming requests from selected IP addresses.
IP address, allow, deny, whitelist, blacklist, IP4, CIDR notation, rw-ip-access
RBAC
Using role based access controls to restrict resource usage
This note describes the Role Based Access Control (RBAC) mechanism of the server. Access to resources are allowed or denied based on resource patterns and request methods matched against user-assigned roles.
RBAC, Role Based Access Control, roles, allow, deny, anonymous, rw-rbac-no-matching-role, rw-rbac-no-resource-rule, cipher-secret, max-idle
Stateful Roles
Safely propagating user access roles between session requests
This note documents how roles are propagated from one request to the next without accessing the server's authorization file every time.
roles, RBAC, AES-192, symmetric-key encryption, cipher-secret, max-idle, rw-rbac-forged, rw-rbac-remote-address, rw-rbac-expired, rw-rbac-renewal
User Accounts
Creating role based user accounts to access resources
This note describes how user credentials are created through an external CLI utility. Passwords are SHA256 hashed using a nonce. Passwords are not discoverable or recoverable.
RWSERVE, addrole, SHA256, nonce, passwords, anonymous, shaDigest, RBAC
Headers
Accept Language
Declaring acceptable languages
This note describes how the server handles the browser's accept-language request header, enabling search engines to match the visitor's preferred language to the website's natural written language.
language negotiation, path-pattern, accept-language, content-language, rw-language-not-acceptable, rw-language-not-configured, IETF RFC 5646
Accept Types
Declaring acceptable types of file content
This note describes how the server handles the browser's accept-types request header to allow the browser and server to agree on their understanding of what the inner contents of each file contains.
accept-types, content negotiation, media-type, MIME-type, content-type, filename extension, IETF RFC 6838, rw-no-acceptable-type
Allow
How a user-agent can discover the allowable methods
This note describes how a user-agent can discover the allowable methods, and how the server responds to methods it can not handle.
methods, allow, OPTIONS, RBAC, IETF RFC 7231
Cache Control
Understanding request and response headers related to caching
This note describes how browsers communicate with the server to make optimal use of documents and resources that have previously been received.
caching, conditional request, etag, last-modified, if-modified-since, if-match, if-none-match, rw-no-cache-control, rw-if-match, rw-if-none-match, IETF RFC 7234
Charsets
Declaring which character set to use with documents, style sheets, and text files
This note describes how character set declarations can be added to response headers for documents, style sheets, and text files.
UTF-8, ISO-8859-1, Windows-1252, Shift_JIS, BIG5, EUC-KR, IETF RFC 2978, IETF RFC 6838
Content Encoding
Saving bandwidth and increasing throughput using compression
This note describes how to configure the server to compress files while in transit between the server and browser.
file compression, accept-encoding, content-encoding, gzip, deflate, Ethernet MTU
Content Length
Specifying the size of the payload
This note documents how the content-length header is determined and used in the exchange between browser and server.
content-length, payload byte count
Content Negotiation
Balancing what's acceptable with what's possible
This note describes how browsers and servers proclaim their ability to handle different file formats, allowing the browser to request and receive only files that it is able to understand.
RWSERVE, content negotiation, accept-type, content-type, MIME-types, rw-no-acceptable-type, IETF RFC 6838
Content Types
Mapping filename extensions to MIME types
This note describes how to map filename extensions to MIME-types to declare which filename extensions are used by the server and what their inner contents contain.
content-type, media-type, MIME-type, filename extension, IETF RFC 6838
Etag
Better caching with fewer false positives
This note documents how Etags are created and processed by the server. Use of Etag headers is encouraged for reliable caching with fewer false positives.
etag, reliable caching, resource version, if-match, if-none-match, SHA1 hash, rw-if-match, rw-if-none-match
MIME Types
Using MIME types to control the behavior associated with filename extensions
This note provides information about MIME-type configuration: associating filename extensions; declaring character sets; declaring encoding algorithms; and declaring content negotiation.
media-type, MIME-type, content-type, filename extension, accept-types, charset, content-encoding, IETF RFC 2978, IETF RFC 6838
Range
How to download partial content
This note documents the range request header and the server's implementation of the range protocol to get selected parts of a file.
range, if-range, accept-range, content-range, startByte, endByte, byteCount, multipart/byteranges, IETF RFC 7233
Policies
Policies
Enlisting the browser's help in policy enforcement
These documents describe the response headers sent by the server to the browser to establish enforceable policies. Policies are used by the browser to prevent bad actors from misusing a website's resources, and for sending reports of troublesome events back to the server.
policies, policy enforcement, reporting
Content Security Policy
Enlist the browser's help in security enforcement
Let your browser know your intentions. Enlist its help in enforcing your safe coding practices. Use the content-security-policy to fine tune where your document gets its resources.
content security policy, browser enforcement
Feature Policy
Stop accidental and nefarious use of device features
Keep your browser on your side. Prevent apps from accidentally gaining access to unauthorized mobile device features. Stop bad actors from elevating privileges without your consent.
feature policy, mobile security threat, browser enforcement
Network Error Logging
It's late. Do you know what your website is up to?
Enlist the browser's support in keeping your website up and running. Get notifications when DNS, TLS or HTTP errors unexpectedly occur for your visitors.
network error logging, browser reports, DNS, TLS, HTTP
Referrer Policy
Prevent outsiders from tracking your visitor's every move
Establish a policy for the browser to follow when assembling 'referer' request headers, limiting what's revealed when requesting resources cross-domain or under protocol switching scenarios.
referrer policy, response header, referer header
Report To
Tell the browser where to send policy reports
A browser can send reports to you when something out-of-the-ordinary happens while visitors access your website.
report-to, content-security-policy violations, network-error-logging, application/reports+json
Policy Reports
Process and log incoming policy reports
How to designate your server as a policy report handler for incoming security and error reports.
policy-reports, report-to, content-security-policy, network-error-logging
Monitoring
Monitoring
Providing visibility into the server's goings on
These notes provide information on how to monitor the server for both usual and unusual communication patterns.
RWSERVE, monitoring, counters, custom errors, information headers, logging, status codes, user agent
Counters
Real time monitoring with simple counters
This note describes the counter module, how to enable it, how to retrieve real-time server statistics, its limitations, and security implications.
RWSERVE, counters module, method, user-agent, content-type, content-length, status-code, logging, router, RBAC, devops, real-time insight, website traffic
Custom Errors
Helping the user to understand what went wrong
This note describes how to configure the server to show custom error messages when an HTTP request fails.
custom-errors, status codes, GRAVE-ACCENT, 404
Logging
Monitoring and capturing what's going on
This note describes the options available for fine-grain control over the server's logging operations.
logging, systemd, config, request, staging, information, response, error, filtering, abbreviations, formatting
Analytics
Analyze your server logs
This note explains how to use the Analytics CLI to monitor your RWSERVE logs.
analytics, logging, monitoring, errors, requests, responses
Status Codes
Explaining the conditions that trigger status codes
An explanation of what conditions trigger each status code in an HTTP/2 response.
status codes, http2, OK, created, no content, partial content, found, see other, not modified, bad request, forbidden, not found, method not allowed, not acceptable, conflict, length required, precondition failes, URI too long, unsuppoerted media type, range not satisfiable, internal server error, not implemented
User Agent
Defining server behaviour for web crawlers
This note describes how the server can be configured to handle special use cases when it detects that a web crawler is making requests.
user-agent, browser, crawler, bot, masquerade, safari, chrome, noserver, nopush, rw-user-agent-noserve, rw-user-agent-nopush
Customization
Customization
Making the server do things your way
These notes provide information on how the server can handle the request/response cycle in ways that go beyond the mimimum requirements of HTTP.
BLUEPHRASE, BLUE PROCESSOR, cross origin, dynamic modules, resource masks, push priority, raw path, router
BLUE PROCESSOR
Processing requests for BLUEPHRASE documents
This note describes how the server handles requests for documents with content type text/blue.
BLUEPHRASE, text/blue, push-priority,router, HTTP/2, nopush, dynamic-cache, linkmap, pragma, include, enclosure, use, processor options, push processing, pushAllowed, rw-blue-unsupported-method, rw-blue-cache-add, rw-blue-cache-stale, rw-blue-cache-dependency,rw-blue-cache-hit,rw-blue-invalid-option
Cross Origin
Relaxing the same-origin policy
This note describes how to configure the server to relax the strict same-origin policy imposed by browsers regarding the use of resources from other domains, also known as the CORS protocol.
CORS, origin, cross-origin, same-origin, access-control-allow-origin, access-control-allow-credentials, access-control-allow-headers, access-control-allow-methods, access-control-expose-headers, access-control-max-age
Resource Masks
Rewriting masked resources using replacement patterns
This note describes a way to rewrite resource request paths. Strings containing capture groups are used as request patterns that match incoming paths to rewrite rules. Replacement strings are used to specify how to reassemble the capture group values into masked replacement paths.
rewrite resource, request patterns, replacement strings, named capture group, resource pattern, masked replacement path, variable substitution, location, 302
Preload Push
Requesting early arrival of special resources
This note describes how to use the HTTP 'link' request header to retrieve resources earlier, using HTTP/2 push.
HTTP/2 PUSH, link, preload
Push Priority
Assign relative weights to speculative push requests
This note describes how to configure HTTP/2 speculative push protocol with weighted priorities for external resources associated with BLUEPHRASE source documents.
push-priority, HTTP/2 speculative push, linkmap, BLUE PROCESSOR, weights, push, nopush, path-pattern
Extending
Developing Plugins
Handling requests with application-specific code
This note describes how the server can be customized to handle application-specific needs using plugin modules written in JavaScript.
router, plugins, dynamic handler, custom handler, workOrder, requestHeaders, incomingPayload, remoteAddress, _queryString, _parameterMap, _cookieMap, outgoingPayload, outgoingFilename, doNotFulfill, responseHeaders
Work Orders
Accessing request/response data from a plugin
This note provides guidance on how to make use of the data structures provided to plugins during the request/response cycle.
workOrder, requestHeaders, incomingPayload, remoteAddress, _queryString, _parameterMap, _cookieMap, _formDataMap, _multipartFormData, outgoingPayload, outgoingFilename, doNotFulfill, responseHeaders
Multipart Entry
Accessing multipart form data
This note describes the properties of a single entry within a multipart/form-data payload.
multipartEntry, _multipartFormData, workOrder
Processing Sequence
Plugin developer responsibilities
This note describes the request/response processing sequence from the plugin developer's perspective. The responsibilities incumbent upon the developer are outlined for plugins following typical patterns.
processing sequence, plugins, chainable processing, response-body processing, empty-body processing, static file processing, terminal processing
Raw Path
Splitting the resource request into more usable pieces
This note describes the steps taken by the server to split the raw request path into a resource path, a query string, and key-value parameters.
raw path, resource path, query string, parameters, canonicalization, restrictions, _resourcePath, _queryString, _parameterMap, rw-resource-path-illegal, rw-resource-path-length
WWW Form Data
Splitting simple form data into key/value pairs
This note describes how and when the server processes request bodies that are encoded as type application/x-www-form-urlencoded
enctype,application/x-www-form-urlencoded,forms
Multipart Form Data
Splitting multipart binary form data into separate entries
This note describes how and when the server processes request bodies that are encoded as type multipart/form-data
enctype,multipart/form-data,forms
Router
Shunting the request/response cycle through custom handlers
This note describes how the server is configured to route dynamic resource requests.
router, dynamic routing, static routing, custom handler, path-pattern, rw-router-missing-module, rw-router-syntax-error, rw-router-unknown-error, rw-router-not-forwarded
Plugin Catalog
Enhance your app with ready-to-go plugins
This is a catalog of the plugins developed by Read Write Tools for the HTTP/2 Server. All of these are available on NPM and Github.
RWSERVE, plugin catalog, rwserve, plugin sdk, custom header, visitor count, lowercase, brute force, lorem ipsum, nodemailer, MySQL REST
Requests
Requests
Processing steps for each request method
These notes provide information on the sequence of steps taken when processing each incoming HTTP method.
RWSERVE, HTTP methods, delete, get, head, put, options, patch, post, trace
Methods
Declaring which HTTP methods are acceptable and applicable
This note describes the different configuration options that govern which HTTP methods are acceptable and applicable at the host level, and how to limit methods on resources that match a path-pattern.
RWSERVE, methods, HEAD, GET, PUT, DELETE, POST, PATCH, OPTIONS, TRACE, router, rbac, cross-origin, rw-method-not-allowed, 403
DELETE Method
Side effects when deleting files from the server
This note provides supplementary information about the server's implementation of the standard HTTP DELETE method and its side effects.
RWSERVE, DELETE method, side effects, WebDAV, AJAX, rw-request-file-deleted, rw-request-dir-deleted, rw-blue-file-deleted, rw-blue-map-deleted, rw-blue-dir-deleted, rw-encoding-file-deleted, rw-encoding-dir-deleted, rw-request-file-not-deleted, 204, 409, IETF RFC 7231
GET Method
Retrieving files from the server
This note provides supplementary information about the server's implementation of the standard HTTP GET method to retrieve a resource.
RWSERVE, GET method, retrieve, HTML, query-string, content-length, content-type, last-modified, content-encoding, content-language, cache-control, server, IETF RFC 7231
HEAD Method
Checking the availability of a server resource
This note provides supplementary information about the server's implementation of the standard HTTP HEAD method which is used to check resource availability.
RWSERVE, HEAD method, check availability, accept-ranges, range, content-length, IETF RFC 7231
PUT Method
Uploading files to the server
This note provides supplementary information about the server's implementation of the standard HTTP PUT method to create and update an entire resource.
RWSERVE, PUT method, WebDAV, AJAX, upload, create, update, rw-path, rw-content-type-missing, rw-content-type-not-supported, rw-content-type-mismatch, rw-content-length-missing, rw-content-length-limit, rw-if-unmodified-since, rw-if-match, rw-if-none-match, rw-content-decoding, rw-content-range, 201, 204, 406, 411, 412, 415, 501, IETF RFC 7231
OPTIONS Method
Querying the server for resource capabilities
This note provides supplementary information about the server's implementation of the standard HTTP OPTIONS method to query resource capabilities, and to implement cross-origin resource sharing exceptions.
RWSERVE, OPTIONS method, query, resource capabilities, cross-origin exceptions, allow, CORS, Cross-Origin Resource Sharing, IETF RFC 7231
PATCH Method
Updating parts of a resource on the server
This note provides supplementary information about the server's implementation of the standard HTTP PATCH method, used to replace portions of a resource.
RWSERVE, PATCH method, update, replace, AJAX, content-type, content-length, content-encoding, 204, 303, 307, IETF RFC 5789
POST Method
Processing data sent to a custom handler
This note provides supplementary information about the server's implementation of the standard HTTP POST method to process data sent to the server for special handling.
RWSERVE, POST method, processing data, send data, resource handler, post-back, 204, 303, 307, IETF RFC 7231
TRACE Method
Debugging server resources
This note provides supplementary information about the server's implementation of the standard HTTP TRACE method, used for troubleshooting resource requests.
RWSERVE, TRACE method, debugging, troubleshooting, ping, sanitize headers, IETF RFC 7231
WebDav Operations
Enabling file uploads and file deletions
The server can be configured to allow static file updates using the WebDav protocol.
RWSERVE, WebDAV, DELETE, PUT
Installation
Installation
Supplemental information about proper server setup
These notes provide additional information about the proper installation of the RWSERVE software.
RWSERVE, installation, prerequisites, registration, standard directories, file permissions, systemd
Prerequisites
Server dependencies
This note documents the software required by the server for successful website hosting.
RWSERVE, prerequisites, dependencies, Node.js
Registration
Legitimizing your copy of the server software
This note describes how to specify your customer number and access key in the configuration file.
RWSERVE, registration, customer number, access key
Standard Directories
The location of server files
This note provides documentation on the files and directories used by the server.
RWSERVE, standard directories, etc/rwserve, etc/systemd/system, usr/lib/node_modules/rwserve, /usr/lib/systemd/system, var/www, encoding-cache, dynamic-cache, custom-errors
File Permissions
File system enforcement of process privileges
This note describes the checks taken by the server's file system to limit the server's ability to access devices files outside its scope.
RWSERVE, file permissions, document-root, encoding-cache, dynamic-cache, readable, writable, read-write
SystemD
SystemD and JournalD services
This note documents how to use the SystemD service manager to enable unattended background execution of the server software, and how to use the JournalD service to view and manage the server's logged output.
SystemD, JournalD, unit file, systemctl, start, status, stop, journalctl, ‑‑disk-space, ‑‑vacuum-size
Troubleshooting
Best practices for configuring, monitoring, and extending
This is a high performance tool, and like all such engineering efforts, you can get yourself into trouble when you try out new features. Here are some best practices to follow as you build out your server.
RWSERVE, troubleshooting, configuration syntax, modules, rwserve verify, information headers, logging, journalctl, permissions, SSL certificates, registration, developing plugins