1
0
Fork 0

update documentation about vhosts

This commit is contained in:
fosslinux 2019-06-15 10:09:50 +10:00
parent d80ddc482c
commit 12cc52f58c
1 changed files with 13 additions and 20 deletions

View File

@ -72,7 +72,6 @@ on the root menu don't work make sure you are using the `-h HOSTNAME`
parameter in your configuration (with a valid resolveable hostname
instead of `HOSTNAME` - see INSTALL).
## Security
Gophernicus has been written with high security in mind. There should
@ -89,7 +88,6 @@ The `-nx` option prevents execution of any script or external file,
and the `-nu` option suppresses scanning for and serving of `~user`
directories (which are normally at `~/public_html/` for each user).
## Gophermaps
By default all gopher menus are automatically generated from the
@ -98,7 +96,6 @@ informational text along with the files, or if you want to completely
replace the generated menu with your own you need to take a look at
gophermaps. See the [README.gophermap](./README.gophermap) for more information.
## Gophertags
A gophertag file can be used to virtually rename a directory. Let's
@ -109,7 +106,6 @@ will show "bar" but the links will still point to "foo". This is
useful for creating descriptive names for directories without
littering the file system with spaces and weird characters.
## Personal gopherspaces
Gophernicus supports users personal gopherspaces. If a user has
@ -121,30 +117,31 @@ This is suppressed if the `-nu` option is given.
In this case, any `~` entry which otherwise initiates listing
of user directories will be displayed literally.
## Virtual hosting
Gophernicus supports virtual hosting, or serving more than one logical
domain using the same IP address. Since gopher (RFC1436) doesn't
support virtual hosting this requires some clever (but mostly invisble)
hacks.
support virtual hosting this requires some hacks.
To enable virtual hosting create one or more directories under your
gopher root which are named after your domain names. The primary vhost
directory (set with the `-h HOSTNAME` option) must exist or virtual
hosting will be disabled. Then simply add content to the hostname
directories and you're up and running.
directories and you're (kind of) up and running.
Almost.
There is a serious issue with virtual hosting.
To make gopher clients work properly with virtual hosting, create a
root gophermap for each of your domains and include the "%" type
character to create a list of all available virtual hosts (see
README.gophermap). The generated virtual host links will be created so
that standard gopher clients will find the correct domain even when
they don't specifically tell the server which host they're trying to
reach.
As stated previously, RFC1436 dosen't support virtual hosting. Clients won't
like it.
How the virtual hosting works, is that it loops through the vhosts looking for
the selector. As you might think, the root gophermap exists on all of the
vhosts, meaning it might not use the correct vhost. There is currently no easy
way to fix this.
It is recommended to add '%' on a line by itself to the bottom of your root
gophermaps. This will add "special" links of the format example.com/;example.com
which forces the correct vhost.
## CGI support
@ -189,7 +186,6 @@ the PHP command line interpreter. In other words, PHP starts working.
And don't use the CGI version of PHP as it outputs HTTP headers the
gopher protocol doesn't have.
## Charset support and conversions
Gophernicus supports three charsets: US-ASCII, ISO-8859-1 and UTF-8.
@ -208,7 +204,6 @@ than pure US-ASCII. If you want to disable the conversion use the
something else than US-ASCII just use for example the `-o ISO-8859-1`
option.
## Selector rewriting
Selector rewriting lets you rewrite parts of the selector on the fly.
@ -243,7 +238,6 @@ monitoring systems. To ease up such integrations, Gophernicus
supports HTTP requests of the server-status page using an URL like
`http://HOSTNAME:70/server-status?auto` .
## TLS/SSL and proxy support
As of version 2.3 Gophernicus supports the HAproxy proxy protocol
@ -292,4 +286,3 @@ Example:
accept = :::7070
connect = 127.0.0.1:70
protocol = proxy