Назад | Перейти на главную страницу

Как настроить сервер nginx с подстановочным DNS

Речь идет об образце приложения Rails, которое использует поддомены. Вы можете получить к нему доступ здесь: http://rodrigora.com.br. В этом приложении вы можете создать сайт и указать для него один поддомен.

Пример:

сайт: Google

поддомен: gog

Этот сайт должен быть доступен для http://gog.rodrigora.com.br

Но приложение недоступно ни для одного субдомена, ни www.


Конфигурация DNS-сервера:

Конфигурация сервера nginx:

upstream app_server {
  server unix:/tmp/unicorn.blog.sock fail_timeout=0;
}

server {
  listen 80 default;
  #server_name localhost;
  client_max_body_size 4G;
  keepalive_timeout 10;
  root /home/ubuntu/apps/blog/current/public;
  try_files $uri/index.html $uri.html $uri @app;

  location @app {
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    # proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header Host $http_host;
    proxy_redirect off;
    proxy_pass http://app_server;
  }

  # Rails error pages
  error_page 500 502 503 504 /500.html;
  location = /500.html {
    root /home/ubuntu/apps/blog/current/public;
  }

  location ~ ^/(assets)/  {
    root /home/ubuntu/apps/blog/current/public;
    gzip_static on; # to serve pre-gzipped version
    expires max;
    add_header Cache-Control public;
  }
}

Дополнительная информация: Если я получу доступ www.rodrigora.com.br в браузере Google Chrome показывает не найденную страницу, но nginx регистрирует эту строку:

186.210.71.46 - - [21/Sep/2013:22:08:37 +0000] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.65 Safari/537.36"

Вопросы:


Ресурсы:

Поддомены Railscast

Распространение DNS

Проверка DNS с использованием подстановочных знаков

Поместите имя сервера как *.rodrigora.com.br это позволит серверу nginx принимать любой запрос с одним из этих подписок домена.

Ты пробовала listen 80 default_server;?

Это может быть больше, что вам нужно. Я считаю, что для имени сервера _; это все.

server {
    listen 80 default_server;
    server_name _;
    rewrite ^(.*)$ http://www.domain.tld$1 permanent;
}