Common configuration errors
The next step in troubleshooting a problem is to take a look at the configuration to see whether it actually achieves the goal you are trying to accomplish. NGINX configurations have been floating around the Internet for a number of years. Often, they were designed for an older version of NGINX, and to solve a specific problem. Unfortunately, these configurations are copied without really understanding the problem they were designed to solve. There is sometimes a better way to solve the same problem, using a newer configuration.
Using if instead of try_files
One such case is a situation in which a user wants to deliver a static file if it is found on the filesystem, and if not, to pass the request on to a FastCGI server:
server { root /var/www/html; location / { if (!-f $request_filename) { include fastcgi_params; fastcgi_pass 127.0.0.1:9000; break; } } }
This was the way this problem was commonly solved before NGINX had the...