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