Conflicting server name - i don't understand

ktm nginx-forum at nginx.us
Wed Sep 2 11:05:30 MSD 2009


I don't know what's happening here, i'm posting at the nginx forums and I saw the responses on some mailing list by mistake and not at the forums. I'm not really sure if nginx forum is integrated with mailing list or maybe i understand wrong.

Anyway if i add this
server_name_;return 444; 

to one vhost , it works fine, no errors

Is this configuration ok Igor ? Those if's are rewrites of joomla .htaccess file. Also do i need to put server_name_;return 444; to every vhost or just to one vhost is enough ? It seems that nginx give no errors if I just add to one vhost.I use nginx 0.7.61.

Thank you for your help


server {
            listen   80;
            server_name  www.digitalfav.com;
			
			#redirect www to non-www
            rewrite ^/(.*) http://digitalfav.com/$1 permanent;
            
			
       }


server {
			listen   80;
			server_name digitalfav.com;
            access_log /home/digitalfav/log/access.log;
            error_log /home/digitalfav/log/error.log;
			
			
			
            location /  {
				root   /home/digitalfav/public/;
				index  index.php index.html;      
				expires 30d;
						
				#stop image and files hotlinking
				location ~* ^.+\.(gif|jpg|png|swf|flv|rar|zip|jpeg|css)$ {
				valid_referers none blocked digitalfav.com www.digitalfav.com *.google.com *.yahoo.com;
				if ($invalid_referer) {
				return 444;
				}
				}
						
				#joomla sef url's
				if (!-e $request_filename) {
					rewrite  ^(.*)$  /index.php?q=$1  last;
					break;
								}
					}
						
				if ( $args ~ "mosConfig_{1,21}(=|\%3d)" ) {
				set $args "";
				rewrite ^.*$ http://$host/index.php last;
				return 403;
				}

				if ( $args ~ "base64_encode.*\(.*\)" ) {
				set $args "";
				rewrite ^.*$ http://$host/index.php last;
				return 403;
				}

				if ( $args ~ "(\<|%3C).*script.*(\>|%3E)" ) {
				set $args "";
				rewrite ^.*$ http://$host/index.php last;
				return 403;
				}
			
				if ( $args ~ "GLOBALS(=|\[|\%[0-9A-Z]{0,2})" ) {
				set $args "";
				rewrite ^.*$ http://$host/index.php last;
				return 403;
				}

				if ( $args ~ "_REQUEST(=|\[|\%[0-9A-Z]{0,2})" ) {
				set $args "";
				rewrite ^.*$ http://$host/index.php last;
				return 403;
				}
			
			
            # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
            location ~ \.php$ 
            			{
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_index index.php;
            include /usr/local/nginx/conf/fastcgi_params;
            fastcgi_param SCRIPT_FILENAME /home/digitalfav/public_html/$fastcgi_script_name;
                        }
       }

	   
server {
            server_name_;return 444
			## Only allow GET and HEAD request methods
			if ($request_method !~ ^(GET|HEAD)$ ) {
			return 444;
			}
			## Deny illegal Host headers
			if ($host !~* ^(digitalfav.com|www.digitalfav.com)$ ) {
			return 444;
			}
			## Deny certain User-Agents (case insensitive)
			## The ~* makes it case insensitive as opposed to just a ~
			if ($http_user_agent ~* (Baiduspider) ) {
			return 444;
			}

			## Deny certain Referers (case insensitive)
			## The ~* makes it case insensitive as opposed to just a ~
			if ($http_referer ~* (babes|click|diamond|forsale|girl|jewelry|love|nudit|organic|poker|porn|poweroversoftware|sex|teen|video|webcam|zippo) ) {
			return 444;
			}
	  
			## Serve an empty 1x1 gif _OR_ an error 204 for favicon.ico
			location = /favicon.ico {
			#empty_gif;
			return 204;
			}


			## All other errors get the generic error page
			error_page 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417
                 500 501 502 503 504 505 /error_page.html;
			location  /error_page.html {
			internal;
		  
		 }
		  
	}


Posted at Nginx Forum: http://forum.nginx.org/read.php?2,5464,5467#msg-5467






More information about the nginx mailing list