11

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?

25

Try this on the second block:

server {
    listen 80;
    server_name 178.62.136.230;

    return 301 $scheme://isitmaintained.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.

  • 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. – Matthieu Napoli Sep 17 '14 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. – Tero Kilkanen Sep 17 '14 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 :) – Matthieu Napoli Sep 17 '14 at 11:09
  • you are F***** right man , solved a problem of mine , upvoted , thnx – a_m_dev Feb 15 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.
}
  • 5
    This rewrite and return above do exactly the same thing. – Tero Kilkanen Sep 17 '14 at 10:12

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.