readme: added 503 functionality section and bookmarks
This commit is contained in:
parent
2e35e2ff1f
commit
305d571d46
78
README.md
78
README.md
@ -87,7 +87,7 @@ unavailable' while being backed up. A sample 503 page is included for you.
|
|||||||
|
|
||||||
If you remove the default file or the one you specify is missing, a warning will
|
If you remove the default file or the one you specify is missing, a warning will
|
||||||
be issued by the script but, it will continue executing. More details on the
|
be issued by the script but, it will continue executing. More details on the
|
||||||
503 notification can be found later in the [503 functionality]() section of this
|
503 notification can be found later in the [503 functionality](#503-functionality) section of this
|
||||||
document. **Default: _scriptpath/503.html_**
|
document. **Default: _scriptpath/503.html_**
|
||||||
|
|
||||||
#### -b _/path/to/filename.file_, path to borg details file
|
#### -b _/path/to/filename.file_, path to borg details file
|
||||||
@ -134,7 +134,7 @@ as your NextCloud webroot.
|
|||||||
This is used exclusively for 503 functionality since the script has to know
|
This is used exclusively for 503 functionality since the script has to know
|
||||||
where to copy the 503 file. If you don't want to use this functionality, you
|
where to copy the 503 file. If you don't want to use this functionality, you
|
||||||
can omit this parameter and the script will issue a warning and move on. More
|
can omit this parameter and the script will issue a warning and move on. More
|
||||||
details can be found in the [503 functionality]() section later in this
|
details can be found in the [503 functionality](#503-functionality) section later in this
|
||||||
document.
|
document.
|
||||||
|
|
||||||
### Borg details file
|
### Borg details file
|
||||||
@ -304,3 +304,77 @@ chown root:root nc_sql.details
|
|||||||
# restrict access to root only
|
# restrict access to root only
|
||||||
chmod 600 nc_sql.details
|
chmod 600 nc_sql.details
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### 503 functionality
|
||||||
|
|
||||||
|
This script includes an entire section dedicated to copying an html file to act
|
||||||
|
as an error 503 notification page. Error 503 is by definition "service
|
||||||
|
temporarily unavailable" which is exactly the case for your NextCloud server
|
||||||
|
during a backup since it is in maintenance mode and no logins are permitted.
|
||||||
|
|
||||||
|
The script copies whatever file is defined by the *'-5'* parameter (or the
|
||||||
|
default located at *'scriptpath/503.html'*) to whatever path is defined as the
|
||||||
|
'webroot' by the *'-w'* parameter. This means that if you omit the *'-w'*
|
||||||
|
parameter, the script will necessarily skip this entire process and just issue a
|
||||||
|
warning to let you know about it.
|
||||||
|
|
||||||
|
#### Conditional forwarding by your webserver
|
||||||
|
|
||||||
|
The script copying the file to the webroot is the easy part. Your webserver has
|
||||||
|
to look for the presence of that file and generate a 503 error in order for the
|
||||||
|
magic to happen. To do that, you have to include an instruction to that effect
|
||||||
|
in your default server definition and/or your NextCloud virtual server
|
||||||
|
definition file depending on your setup.
|
||||||
|
|
||||||
|
##### NGINX
|
||||||
|
|
||||||
|
You can copy the following code into the relevant server definition(s) on an
|
||||||
|
NGINX server:
|
||||||
|
|
||||||
|
```Perl
|
||||||
|
server {
|
||||||
|
...
|
||||||
|
if (-f /usr/share/nginx/html/503.html) {
|
||||||
|
return 503;
|
||||||
|
}
|
||||||
|
...
|
||||||
|
error_page 530 @backup
|
||||||
|
location @backup {
|
||||||
|
root /usr/share/nginx/html;
|
||||||
|
rewrite ^(.*)$ /503.html break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
This tells NGINX that if it finds the file *'503.html'* at the path
|
||||||
|
*'/usr/share/nginx/html'* (webroot) then return an error code 503. Next,
|
||||||
|
rewrite any url to *'domain.tld/503.html'* and thus, display the custom 503
|
||||||
|
error page. On the other hand, if it can't find 503.html at the path specified
|
||||||
|
(i.e. the script has deleted it because the backup is completed), then go about
|
||||||
|
business as usual.
|
||||||
|
|
||||||
|
##### Apache
|
||||||
|
|
||||||
|
I don't use apache for anything, ever... so I'm not sure how exactly you'd do
|
||||||
|
this but I think you'd have to use something like:
|
||||||
|
|
||||||
|
```Perl
|
||||||
|
RewriteEngine On
|
||||||
|
RewriteCond %{ENV:REDIRECT_STATUS} !=503
|
||||||
|
RewriteCond "/var/www/503.html" -f
|
||||||
|
RewriteRule ^ - [R=503,L]
|
||||||
|
...
|
||||||
|
ErrorDocument 503 /503.html
|
||||||
|
...
|
||||||
|
```
|
||||||
|
|
||||||
|
Let me know if that works and I'll update this document accordingly. Like I
|
||||||
|
said, I don't use Apache so I can't really test it very easily.
|
||||||
|
|
||||||
|
#### Disabling 503 functionality altogether
|
||||||
|
|
||||||
|
If you don't want to use the 503 functionality for whatever reason and don't
|
||||||
|
want your log file junked up with warnings about it, then find the section of
|
||||||
|
the script file that starts with *'--- Begin 503 section ---'* and either
|
||||||
|
comment all the lines (put a *'#'* at the beginning of each line) or delete all
|
||||||
|
the lines until you get to *'--- End 503 section ---'*.
|
||||||
|
Loading…
Reference in New Issue
Block a user