January 27, 2014 12:51PM
I'm trying to create a second location in NGINX that will only fire for a specific file type. Specifically, I have NGINX acting as a proxy for a server that primarily serves PHP files. There are, however, a bunch of folders that also have ASPX files (more than 120), and I need to use a different configuration when serving them (different caching rules, different Modsecurity/NAXSI rules, etc).

NGINX is successfully detecting the file type and applying the alternate location when the file name is specifically listed, but it's breaking when the ASPX file is the default file in the folder and the URL simply ends in a slash. When that happens, it's just applying the root location configuration. Is there a way to detect the extension of an index file and apply an alternate location, even when the name of the index file isn't specifically entered?

server {
listen 80;
server_name mysite.com;

location / {
#general settings applicable to most files go here
proxy_pass http://@backend;
}

location ~* \.(aspx|asmx) {
#slightly different settings applicable to .Net files go here
proxy_pass http://@backend;
}
}

If a folder has an index file called "default.aspx", the above configuration works perfectly if I enter the url as mysite.com/folder/default.aspx, but it fails to apply the second location and applies the base location if I enter it as mysite.com/folder, even though it is serving the exact same default.aspx file.

The only solution I've found is to alter the location directive to identify by the folder name instead of the file extension, but this doesn't scale well as there are more than 120 affected folders on the server and I'd end up with a huge conf file.

Is there any way to specify a location by file extension, when the file isn't specifically named in the URL? Can I test a folders index file to determine its extension before a location is applied?
Subject Author Posted

Applying NGINX location based on unlisted extension of default file?

brih January 27, 2014 12:51PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 292
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready