map optimizing question

Roman Vasilyev roman at anchorfree.com
Fri Sep 3 04:23:11 MSD 2010


Hello,

I have 2 huge map variables in my nginx.conf
first one contains 350000 hostname records;
second one: 115000;

First map used for some conditional substitution by hostname in my 
module which happening not frequently.

Second one is used for malware detection, so request to this map goes 
with every http request to nginx.

I was wondered that first map is not affecting on performance, but 
second one is decreasing nginx speed about 20%, so my question is, how 
can I optimize malware detection?

I tryed to check content_type:
map $host $mlw_table {
hostnames;

defult 0;

...
...
.zzuie.info 1;
.zzzz.ellmada.co.cc 1;
.zzzzzz.com 1;
}

set $malware 0;
if ( $content_type ~* text/ )
{
   set $malware $mlw_tbale;
}

if ( $malware ) { return 406; }

error_page 406 @406;
location @406 {
   rewrite  .* /af_protect.html break;
}

it doesn't work: not $content_type not $upstream_http_content_type
other option include this checking in my module byt in this case in need 
implement "return" statement inside it too (if possible).

Could you give me some ideas how better optimize performance in my case.



More information about the nginx mailing list