Check if variable exists in file, Using file contents for variable handling

Maxim Dounin mdounin at mdounin.ru
Thu Aug 29 17:42:17 UTC 2013


Hello!

On Thu, Aug 29, 2013 at 10:42:37AM -0400, spacecwoboy wrote:

> Is there a way to check a variable against file contents for processing?  A
> couple scenarios below.
> 
> This is used here, but adding multiple agents can get burdensome:
> if ($http_user_agent ~ (agent1|agent2|Foo|Wget|Nmap|BadAgent) ) {
>     return 403;
> }
>  
> I'd like to maintain a file with all the variables, (and custom script the
> addition/removal of file entries) like this:
> if ($http_user_agent ~ (in.file(../../badAgents.txt) ) {
>     return 403;
> }
>  
> 
> Or using file references for Allow/Deny:
> Allow ../../whitelist.txt
> Deny ../../badHosts.txt
> 
> 
> Or Checking usernames against a whitelist/blacklist:
> if ( $arg.Username does.not.exist.in(../../allowedUsers.txt) )
> if ( $arg.Username exists.in(../../blockedUsers.txt) )

The map module is probably what you are looking for, see here:

http://nginx.org/en/docs/http/ngx_http_map_module.html 

Additionally, the "include" directive may be usefull, see 
http://nginx.org/r/include.

-- 
Maxim Dounin
http://nginx.org/en/donation.html



More information about the nginx mailing list