Mastering Nginx

(Ron) #1
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;
Free download pdf