17

With the following Nginx config:

server {
    listen 80;
    listen [::]:80 default_server ipv6only=on;

    server_name isitmaintained.com;

    ...
}

server {
    listen 178.62.136.230:80;
    server_name 178.62.136.230;

    add_header X-Frame-Options "SAMEORIGIN";

    return 301 $scheme://isitmaintained.com$request_uri;
}

I am trying to redirect http://178.62.136.230/ to http://isitmaintained.com/ but when I deploy this config I end up with a Redirect loop or both of those links.

What am I doing wrong?

2 Answers 2

37

Try this on the second block:

server {
    listen 80;
    server_name 178.62.136.230;

    return 302 $scheme://google.com$request_uri;
}

The problem is that the second server block listen directive is more specific than first server block, therefore it is always used. And since the second block is the only virtual host for that listen specification, it is always used.

Note : 301 will add permanent redirect. Use 302 for testing.

4
  • That makes sense. But when I apply this, I get the following error: nginx: [emerg] could not build the server_names_hash, you should increase server_names_hash_bucket_size: 32 :( And that doesn't make sense because my domain name is not that long. Sep 17, 2014 at 10:50
  • Well, for some reason your set up requires more storage space for the virtual host server names in nginx, so you should just increase the setting. Sep 17, 2014 at 11:05
  • My apologies for not trying directly, I was sure there was something wrong. But you were right, the redirection works now! A very warm thank you :) Sep 17, 2014 at 11:09
  • you are F***** right man , solved a problem of mine , upvoted , thnx
    – amdev
    Feb 15, 2019 at 5:33
3

You were close. Its rewrite that you are looking for.

server {
    listen 178.62.136.230:80;
    server_name 178.62.136.230 isitmaintained.com;

    rewrite  ^/(.*)$  http://www.isitmaintained.com/$1 permanent;
}
server {
    listen 80;
    server_name www.isitmaintained.com;
    # Serve Stuff Here.
}
1
  • 5
    This rewrite and return above do exactly the same thing. Sep 17, 2014 at 10:12

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .