Default_server catch all block not working
António P. P. Almeida
appa at perusio.net
Wed Jan 25 16:16:30 UTC 2012
On 25 Jan 2012 15h39 WET, nginx-forum at nginx.us wrote:
> Ok as I started thinking later ....what for do I need
> proxy_set_header if my intention is to not proxy to Apache any
> request fall onto this catch all default_server ?
>
> To see my config let's say it is as follow (not all parameters to
> let it be clearer):
>
> ====================== /etc/nginx/sites-enabled/mydomain
> server {
>
> listen 80;
> server_name mydomain.com www.mydomain.com sub1.mydomain.com
> sub2.mydomain.com sub3.mydomain.com
> error_page 502 503 504 400 /50x.html;
> error_page 404 /404.php;
>
> large_client_header_buffers 4 4k;
>
> location = /50x.html {
> root /var/www/mydomain/static/;
> }
> location ~* \.(jpg|jpeg|gif|png|css|bmp|ico|txt|html|swf)$ {
>
> root /var/www/mydomain/
> expires 1y;
> }
> location / {
> proxy_pass http://127.0.0.1:60080/;
> proxy_redirect off;
> ........
> }
> }
>
> So my goal is to define a new vhost so that all requests reaching my
> nginx which don't fit any of my server names (all subdomains) are
> responded as one of 2 :: 404 returned or forwarding to another
> external URL (...whatever it fits better for SEO)
>
> ====================== /etc/nginx/sites-enabled/mydomain
> server {
> listen 80 default_server;
> server_name _;
> error_log /var/log/nginx/000default-error.log error;
> location / {
> proxy_set_header Host $host;
> #return 404;
> rewrite .* http://doesnotexist.com permanent;
> }
> }
This can be made much simpler:
server {
listen 80 default_server;
server_name _;
error_log /var/log/nginx/000default-error.log error;
return 301 http://doesnotexist.com;
}
This redirects to a new host.
For returning a 404 just do:
return 404;
I think that 444 is preferable. No business trying to access a host
that doesn't exist. But it's up to you.
Enable the debug log and set:
proxy_intercept_errors on;
Trace the requests and see how are the 503s generated.
http://nginx.org/en/docs/debugging_log.html
--- appa
More information about the nginx
mailing list