Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| server:web [2023/12/20 23:11] – [sbbs.ini] Updates digital man | server:web [2026/03/04 13:51] (current) – [Reference] mention letsyncrypt nelgin | ||
|---|---|---|---|
| Line 15: | Line 15: | ||
| ===== Configure ===== | ===== Configure ===== | ||
| - | The Synchronet Web Server can be configured via [[util: | + | The Synchronet Web Server can be configured via [[util: |
| - | < | ||
| - | ╔══════════════════════════════════════════════════════════════════════╗ | ||
| - | ║ Web Server | ||
| - | ╠══════════════════════════════════════════════════════════════════════╣ | ||
| - | ║ │Enabled | ||
| - | ║ │Log Level | ||
| - | ║ │HTTP Interfaces | ||
| - | ║ │HTTP Port | ||
| - | ║ │HTTPS Support | ||
| - | ║ │HTTPS Interfaces | ||
| - | ║ │HTTPS Port 443 ║ | ||
| - | ║ │SSJS File Extension | ||
| - | ║ │Index Filenames | ||
| - | ║ │Content Root Directory | ||
| - | ║ │Error Sub-directory | ||
| - | ║ │Strict Transport Security | ||
| - | ║ │Virtual Host Support | ||
| - | ║ │Access Logging | ||
| - | ║ │Max Clients | ||
| - | ║ │Max Inactivity | ||
| - | ║ │Filebase Index Script | ||
| - | ║ │Filebase VPath Prefix | ||
| - | ║ │Filebase VPath for VHosts | ||
| - | ║ │Authentication Methods | ||
| - | ║ │Output Buffer Drain Timeout | ||
| - | ║ │Lookup Client Hostname | ||
| - | ║ │CGI Support | ||
| - | ╚══════════════════════════════════════════════════════════════════════╝ | ||
| - | </ | ||
| - | ... or via [[monitor: | + | ╔══════════════════════════════════════════════════════════════════╗ |
| + | ║ Web Server Settings | ||
| + | ╠══════════════════════════════════════════════════════════════════╣ | ||
| + | ║ │Enabled | ||
| + | ║ │Log Level | ||
| + | ║ │HTTP Support... | ||
| + | ║ │HTTPS Support... | ||
| + | ║ │SSJS File Extension | ||
| + | ║ │Index Filenames | ||
| + | ║ │Content Root Directory | ||
| + | ║ │Error Sub-directory | ||
| + | ║ │Virtual Host Support | ||
| + | ║ │Access Logging | ||
| + | ║ │Access Log Format | ||
| + | ║ │Max Clients | ||
| + | ║ │Max Inactivity | ||
| + | ║ │Max Concurrent Connections | ||
| + | ║ │Limit Rate of Requests | ||
| + | ║ │Authentication Methods | ||
| + | ║ │Output Buffer Drain Timeout | ||
| + | ║ │Lookup Client Hostname | ||
| + | ║ │CGI Support... | ||
| + | ║ │Filebase Support... | ||
| + | ║ │Login Requirements | ||
| + | ║ │JavaScript Settings... | ||
| + | ║ │Failed Login Attempts... | ||
| + | ╚══════════════════════════════════════════════════════════════════╝ | ||
| + | |||
| + | ... or via [[monitor: | ||
| {{: | {{: | ||
| - | ... or via manual edit of the '' | + | ... or via manual edit of the '' |
| ==== sbbs.ini ==== | ==== sbbs.ini ==== | ||
| Line 69: | Line 68: | ||
| | BindRetryDelay | | BindRetryDelay | ||
| | MaxClients | | MaxClients | ||
| + | | MaxConcurrentConnections | 10 | Maximum number of simultaneous connections allowed from a single client IP address | | ||
| | MaxInactivity | | MaxInactivity | ||
| | MaxCgiInactivity | | MaxCgiInactivity | ||
| + | | MaxRequestsPerPeriod | ||
| + | | RequestRateLimitPeriod | ||
| | SemFileCheckFrequency | | SemFileCheckFrequency | ||
| | IndexFileNames | | IndexFileNames | ||
| Line 81: | Line 83: | ||
| | Authentication | | Authentication | ||
| | HttpLogFile | | HttpLogFile | ||
| - | | FileIndexScript | + | | CustomLogFormat |
| + | | FileIndexScript | ||
| | FileVPathPrefix | | FileVPathPrefix | ||
| | FileVPathForVHosts | | FileVPathForVHosts | ||
| | OutbufDrainTimeout | | OutbufDrainTimeout | ||
| | TempDirectory | | TempDirectory | ||
| + | | LoginRequirements | ||
| + | | LoginAttempt* | ||
| + | | LoginInfoSave | ||
| + | | RemoteIPHeader | ||
| | Options | | Options | ||
| Line 96: | Line 103: | ||
| In addition to the [[config: | In addition to the [[config: | ||
| - | == DEBUG_RX | + | ^ Option |
| + | | VIRTUAL_HOSTS | Supports name-based virtual hosts. | | ||
| + | | NO_JAVASCRIPT | Disable SSJS execution. | | ||
| + | | NO_CGI | ||
| + | | NO_HTTP | ||
| + | | NO_FILEBASE | ||
| + | | HTTP_LOGGING | ||
| + | | ONE_HTTP_LOG | ||
| + | | ALLOW_TLS | ||
| + | | HSTS_SAFE | ||
| + | | HAPROXY_PROTO | Indicate that incoming requests are via HAproxy | | ||
| + | | DEBUG_RX | ||
| + | | DEBUG_TX | ||
| + | | DEBUG_SSJS | ||
| - | Log all received data to the console log, as well as various | + | ==== Reference ==== |
| - | extra bits related to receiving data. | + | |
| - | == DEBUG_TX | + | Web Server configuration settings reference: |
| - | + | ||
| - | Log all transmitted data except the reply body itself, as well | + | === Virtual Hosts === |
| - | as various extra bits of information related to transmitted | + | |
| - | data. | + | |
| - | + | ||
| - | == DEBUG_SSJS == | + | |
| - | + | ||
| - | Log server-side JavaScript execution details. | + | |
| - | == VIRTUAL_HOSTS == | + | If your system has multiple |
| + | host names, you can have each host name return unique content depending on which hostname is used. ie: if '' | ||
| - | Supports name-based | + | A virtual host is added by simply putting the desired |
| - | host names, you can have each host name return unique | + | the request host name (very old browsers, or some automated tools) they will be served out of document root. It is therefore a good idea to put links to your various virtual hosts in an ''index.html'' |
| - | depending on which hostname | + | |
| - | '' | + | |
| - | system, you could have FreeBSD-specific pages on one, and | + | |
| - | general *nix stuff on the other. | + | |
| - | A virtual host is added by simply putting the desired content | ||
| - | into a sub-directory of [[# | ||
| - | ie: '' | ||
| - | the request host name (very old browsers, or some automated | ||
| - | tools) they will be served out of document root. | ||
| - | It is therefore a good idea to put links to your various | ||
| - | virtual hosts in an '' | ||
| - | like this: | ||
| <code html> | <code html> | ||
| < | < | ||
| Line 144: | Line 146: | ||
| </ | </ | ||
| - | == NO_CGI == | ||
| - | |||
| - | Disable CGI/FastCGI script execution. | ||
| - | |||
| - | == HTTP_LOGGING == | ||
| - | |||
| - | Enable logging to a Common Logfile Format log as described in | ||
| - | the HttpLogFile section. | ||
| - | programs (like Webalizer: http:// | ||
| - | |||
| - | == NO_JAVASCRIPT == | ||
| - | |||
| - | Disable SSJS execution. | ||
| - | |||
| - | == ALLOW_TLS == | ||
| - | |||
| - | Enable TLS/SSL support. | ||
| - | |||
| - | == HSTS_SAFE == | ||
| - | |||
| - | Indicates that all URLs available via http are also available via https and redirects clients who want a TLS session to the https location. | ||
| - | |||
| - | ==== Reference ==== | ||
| - | |||
| - | Web Server configuration settings reference: | ||
| - | |||
| === RootDirectory === | === RootDirectory === | ||
| Line 178: | Line 154: | ||
| **NOTE**: Older versions of Synchronet had this value default to '' | **NOTE**: Older versions of Synchronet had this value default to '' | ||
| + | |||
| + | **NOTE**: If you change the root directory and use letsyncrypt for your certificate management, you will want to update the Domains section of letsyncrypt.ini in the ctrl directory. You will also need to do that if you have a virtual host so Let's Encrypt can find the correct document root. | ||
| + | |||
| === ErrorDirectory === | === ErrorDirectory === | ||
| Line 256: | Line 235: | ||
| Default value: '' | Default value: '' | ||
| - | The prefix of log files if HTTP_LOGGING is enabled | + | The prefix of HTTP access |
| - | store Common Logfile Format logs in. | + | |
| - | (if enabled, see next item), date, and '' | + | === CustomLogFormat === |
| + | |||
| + | When the '' | ||
| + | |||
| + | When the '' | ||
| + | |||
| + | | %% | The percent sign | | ||
| + | | %a | Client IP address of the request | | ||
| + | | %B | Size of response in bytes, excluding HTTP headers. | | ||
| + | | %b | Size of response in bytes, excluding HTTP headers. In CLF format | | ||
| + | | %h | Remote hostname or IP address | | ||
| + | | %H | The request protocol | | ||
| + | | %l | Remote logname (from identd, if supplied) | | ||
| + | | %p | Server TCP port number | | ||
| + | | %r | First line of request | | ||
| + | | %s | Status | | ||
| + | | %t | Time the request was received, in the format [18/ | ||
| + | | %u | Remote user if the request was authenticated | | ||
| + | | %v | The canonical ServerName of the server serving the request. (the vhost) | | ||
| + | | %{remote}p | the client' | ||
| + | | %{Referer}i | the HTTP Referer [sic] header line | | ||
| + | | %{User-agent}i | the HTTP User-agent header line | | ||
| + | |||
| + | Note: Double-quote characters used in the format string do **not** need to be escaped (i.e. with a backslash) | ||
| + | |||
| + | Example: | ||
| + | |||
| + | This is the equivalent of Apache' | ||
| + | |||
| + | CustomLogFormat = %h %l %u %t " | ||
| + | |||
| + | This is the equivalent of Apache' | ||
| + | |||
| + | CustomLogFormat = %v:%p %h %l %u %t " | ||
| === FileVPathPrefix === | === FileVPathPrefix === | ||
| Line 275: | Line 288: | ||
| Default value: "" | Default value: "" | ||
| - | Suggested value: '' | + | Suggested value: '' |
| A Server-side JavaScript (SSJS) file to execute and provide HTML/CSS indexes to file libraries and directories accessed via virtual file paths. | A Server-side JavaScript (SSJS) file to execute and provide HTML/CSS indexes to file libraries and directories accessed via virtual file paths. | ||