Chapter 4
[ 85 ]
In each block, we have placed only those server_name that are relevant to the
respective rewrite, so that no if is needed. In each rewrite rule, we have replaced
the redirect flag with the permanent flag to indicate that this is a full URL that
the browser should remember and automatically use the next time the domain is
requested. In the last rewrite rule, we have also replaced the match (^/(.*)$) with a
readily-available variable, $request_uri, which contains the same information but
saves the trouble of matching the regular expression and saving the capture variable.
Using error documents to handle upstream problems
There are situations in which the upstream server cannot respond to a request. In
these cases, NGINX can be configured to supply a document from its local disk:
server {
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root share/examples/nginx/html;
}
}
Or from an external site:
server {
error_page 500 http://www.example.com/maintenance.html;
}
When proxying to a set of upstream servers, you may want to define an extra
upstream as being a "fallback" server, to handle requests when the others cannot.
This is useful in scenarios when the fallback server is able to deliver a customized
response based on the requested URI:
upstream app {
server 127.0.0.1:9000;
server 127.0.0.1:9001;