Это кажется простым вопросом, но после некоторого поиска в Google я не могу найти ответ.
У меня есть промежуточный сервер, на котором я хотел бы максимально имитировать рабочий сервер. Скажем, я владею example.com
и я решил, что хочу вести блог, используя blog.example.com
. Я хотел бы иметь возможность подготовить блог, прежде чем отправлять его в производство, используя промежуточный адрес blog.stage.example.com
. Я лучше сделаю это, чем куплю другой домен, например stage-example.com
или используйте соглашения об именах, например blog-stage.example.com
.
Очевидно, я бы хотел blog.stage.example.com
чтобы указать на сервер, работающий в промежуточной среде (например, IP 1.1.1.1), и blog.example.com
чтобы указать на сервер, работающий в производственной среде (например, IP 2.2.2.2).
Я использую Nginx для своего веб-сервера, а Gandi - в качестве хостинг-провайдера, где я управляю файлом зоны DNS.
Можно ли настроить мои доменные имена с многоуровневыми поддоменами? Или я придерживаюсь соглашения об именах, например, blog-stage.example.com
? Или, может быть, есть лучший способ справиться с этим, о котором я не знаю?
Если возможно, как бы выглядел файл зоны DNS?
И, наконец, если это возможно, как бы выглядел файл конфигурации Nginx?
Ваши виртуальные хосты nginx будут выглядеть примерно так:
server {
listen 1.1.1.1:80;
server_name blog.stage.example.com;
[...]
}
server {
listen 2.2.2.2:80;
server_name blog.example.com;
[...]
}
Это предполагает, что вы можете назначить вашему веб-серверу два IP-адреса. При указанной выше конфигурации один виртуальный сервер будет связываться с 1.1.1.1:80 и отвечать на blog.stage.example.com, а другой сервер будет связываться с 2.2.2.2:80 и отвечать на blog.example.com. Настройка DNS будет зависеть от того, как управляется ваш DNS, но это должно быть выполнимо.
Правильный ответ приходит от @ sysadmin1138 и @cjc:
Конфигурация Nginx
Ваши виртуальные хосты nginx будут выглядеть примерно так:
server {
listen 1.1.1.1:80;
server_name blog.stage.example.com;
[...]
}
server {
listen 2.2.2.2:80;
server_name blog.example.com;
[...]
}
Это предполагает, что вы можете назначить своему веб-серверу два IP-адреса. При указанной выше конфигурации один виртуальный сервер будет связываться с 1.1.1.1:80 и отвечать на blog.stage.example.com, а другой сервер будет связываться с 2.2.2.2:80 и отвечать на blog.example.com. Настройка DNS будет зависеть от того, как управляется ваш DNS, но это должно быть выполнимо.
DNS
Поддомены и хостинг немного неопределенны, и вам лучше всего спросить их, поддерживают ли они что-то подобное. Вполне возможно определить запись A с несколькими метками. Например, вы можете поместить это в свою зону DNS для example.com:
blog.stage 1.1.1.2
blog 1.1.1.1
И это может сработать. Bind DNS действительно поддерживает такие вещи, но позволяет ли вам это делать ваш хостинг-провайдер - совсем другое дело.
Лучше использовать что-нибудь помимо блога.
betablog 1.1.1.2
blog 1.1.1.1
Поскольку это гораздо более вероятно, будет поддерживаться вашим провайдером.
Я недостаточно знаком с Nginx, чтобы предоставить для этого несколько примеров виртуальных хостов.
Поддомены и хостинг немного неопределенны, и вам лучше всего спросить их, поддерживают ли они что-то подобное. Вполне возможно определить запись A с несколькими метками. Например, вы можете поместить это в свою зону DNS для example.com:
blog.stage 1.1.1.2
blog 1.1.1.1
И это может сработать. Bind DNS действительно поддерживает такие вещи, но позволяет ли вам это делать ваш хостинг-провайдер - совсем другое дело.
Лучше использовать что-нибудь помимо блога.
betablog 1.1.1.2
blog 1.1.1.1
Поскольку это гораздо более вероятно, будет поддерживаться вашим провайдером.
Я недостаточно знаком с Nginx, чтобы предоставить для этого несколько примеров виртуальных хостов.