Я попытаюсь переписать первоначальный вопрос так, чтобы он имел больше смысла.
Проблема, с которой я столкнулся, заключается в том, что у меня есть веб-сайт моей компании, размещенный на Site Ground, но, к сожалению, из-за конструктора сайтов, использование которого они не могут перенести, находится под другим дополнительным доменом в корневом каталоге документов этого домена. Причина, по которой я хотел перенести его, заключалась в том, что я наконец зарегистрировал доменное имя, которое соответствует названию моей компании. В настоящее время доступ к этому веб-сайту осуществлялся с временного доменного имени, которое я никогда не планировал сохранять в качестве доменного имени для своей компании.
Чтобы избежать путаницы, название моей компании — Systopian Solutions. Моя домашняя страница с публичным фирменным стилем временно (или я так думал) работала под Document Root для доменного имени "systopian.com". Я полностью спланировал, что как только я получу свое надлежащее доменное имя компании "systopiansolutions.com", я смогу добавить этот домен как еще один дополнительный домен в Site Ground, а затем перенести фактическое содержимое сайта с одного дополнительного домена на другой, оба на хостинге Site Grounds.
Однако, изначально думая, что сайт можно перенести, и до того, как я открыл исходный вопрос, который был здесь, даже если бы это перенесло его, у меня осталась небольшая проблема.
У меня также есть сервер e VPS, размещенный Vultr. Этот сервер управляет всеми общедоступными веб-приложениями для выставления счетов, выставления счетов и обработки платежей моей компании (Invoice Ninja), а также парой внутренних веб-приложений, которые позволяют мне предоставлять различные услуги моим клиентам,
ПРИМЕЧАНИЕ: (и хотя я знаю, что вам никогда не следует запускать публичные сайты и внутренние сайты на сервере сохранения, я реализовал ряд шагов, чтобы гарантировать, что никто не сможет шпионить. Для 1. Я настроил псевдонимы для всех URL-адресов моих внутренних сайтов, так что ни один из них не использует общеизвестные URL-адреса, если они знают, что эти сайты там есть. 2. Invoice Ninja имеет очень надежную реализацию безопасности, которая не позволит никому выбирать любые полные доменные имена/каталоги, если это не разрешено Invoice Ninja для функциональности этого продукта, однако, с помощью /etc/phpmyadmin/apache2.conf, который отформатирован совершенно иначе, чем настроен файл /etc/apache2/sites-available/site-name.conf. Синтаксис совершенно другой, но по причинам, которые я не могу объяснить, если мне нужно установить новый сайт, вместо того, чтобы использовать site-name.conf, который заставит Invoice Ninja отклонить доступ к любому из путей DocumentRoot я использую /etc/phpmyadmin/apache2.conf и перехожу в самый низ под phpMyAdmins Config, где затем создаю новый раздел тегов с помощью маркеров и размещаю соответствующие пути, моды, пути и все остальные конфигурации, требуемые новым сайтом, сохраняю, затем перезапускаю apache2. Однако я делаю еще один шаг в плане безопасности, поскольку мы смешиваем публичные и внутренние сайты на одном сервере, добавляя использование .htpasswd и заставляя тех, кто может попытаться получить доступ к какому-либо внутреннему сайту, они могут обнаружить, что если они достаточно сильно потыкают, они должны быть Required для учетных данных для 1 из 2 пользователей, которые настроены в .htpasswd. Если они каким-то образом удовлетворяют этим учетным данным, сами сайты веб-приложений имеют свои собственные учетные данные для управления пользователями / входа, необходимые для доступа к этим сайтам. Хотя я не питаю иллюзий, что то, что я сделал, непроницаемо, я могу вас заверить, что для взлома внутренних сайтов понадобится ОЧЕНЬ решительный хакер с многолетним опытом. Слоев достаточно, а выбранные пароли ОЧЕНЬ надежны с минимальной длиной символов и правильной комбинацией #, специальных символов, верхних/нижних символов)
Небольшая проблема, с которой я столкнулся, заключалась в том, что я хотел, чтобы мой VPS-сервер, на котором размещались некоторые из публичных сайтов моей компании, такие как invoice ninja, использовал новый домен компании systopiansoltions.com. В случае, если бы перенос домашней страницы моей компании был перенесен на новый дополнительный домен на моем Site Ground Host, это означало бы, что мне пришлось бы использовать разные серверы, которые каким-то образом должны были бы использовать домен systopiansoltions.com. И вот что я спрашивал, есть ли способ, при котором я могу разместить свой сайт на Site Ground, где запись DNS A будет иметь другой IP-адрес для записи A, чтобы указать домен systopiansoltions.com на IP-адрес Site Ground 37.60.253.172, а также каким-то образом указать ту же запись DNS A для моих сайтов VPS-серверов на IP-адрес моих сайтов VPS, который равен 207.246.87.29.
Первоначальный вопрос был примерно таким: без какой-либо настройки балансировщика нагрузки или маршрутизатора, можно ли каким-либо образом сделать так, чтобы одно и то же полное доменное имя указывало на 2 разных IP-адреса.
У меня возникли мысли, что, возможно, мне поможет сделать это максимально чисто: можно как-то настроить перенаправления, хотя я и не уверен, как это будет работать.
Итак, вот подробное объяснение моей проблемы и вопроса.
У этого вопроса была и вторая часть, которую я по ошибке задал, указав неверную информацию, поэтому я задам и ее...
Поскольку VPS-хост содержит как внутренние сайты, так и публичные сайты клиентов, мне было интересно, есть ли способ настроить 2 разных доменных имени, каждое из которых будет соответствовать его функциям...
Пример: На сервере VPS в /etc/hosts были следующие записи (я не включаю записи "localhost"). И вот как это было настроено до сегодняшнего дня. Проблема в том, что теперь, когда я зарегистрировал правильное доменное имя компании, я бы хотел иметь возможность использовать доменное имя systopian-web1.com для всех внутренних сайтов, при этом каким-то образом настроив сайт Public Customer Facing Invoice Ninja для использования домена systopiansoltions.com, однако у меня нет третьего IP-адреса для использования, и, честно говоря, у меня некоторое время не хватает какого-либо операционного бюджета, поэтому я не могу позволить себе добавить третий IP-адрес, который бы решил эту проблему полностью.
207.246.87.29 systopian-web1.com <--Основной IP
45.76.165.28 unms.systopian-web1.com <-- Вторичный IP-адрес добавлен специально для установки этого приложения, поскольку для него требуется выделенный IP-адрес.
Итак, мой вопрос, есть ли возможность использовать 1 IP с 2 разными доменными именами? Или кто-нибудь знает другой способ сделать это?
Я знаю, что в моем apache2/sites-available/invoice-ninja.conf я могу изменить следующие записи: ServerName systopiansolutions.com ServerAlias www.systopiansolutions.com Однако, моей первоначальной мыслью было, что для указания любого из этих двух, Доменное имя должно быть определено в /etc/hosts. Разве это не так? Я не уверен, как еще эти Домены будут разрешены, так как я знаю, что у меня не может быть двух Записей A, где 2 Доменных Имени будут указывать на один и тот же IP-адрес, т. е. stopiansolutions.com разрешаться в 207.246.87.29, а затем иметь мое другое доменное имя на том же VPS-сервере systopian-web1.com, указывающее на тот же IP 207.246.87.29, если только я не смог обновить /etc/hosts, содержащий следующее
207.246.87.29 systopian-web1.com <-- Этот домен будет установлен для внутренних веб-сайтов, которые я использую для предоставления функциональности и услуг моим клиентам, но у общественности нет доступа к этим сайтам
207.246.87.29 stopiansolutions.com <-- Этот домен будет установлен для Invoice Ninja, поскольку это публичный сайт, ориентированный на клиентов, поэтому я хочу, чтобы все публичные сайты, ориентированные на клиентов, использовали этот домен.
45.76.165.28 unms.systopian-web1.com
И просто напомню вам, что вопрос, который я задал ранее, все еще остается открытым, а именно: поскольку домашняя страница моей публичной компании в настоящее время размещена на Site Ground, есть ли способ использовать одно и то же доменное имя на двух совершенно разных серверах, каждый из которых имеет совершенно разный IP-адрес?** Возможно, я решил этот вопрос другим способом, но вопрос все еще остается.
Помимо этого, у меня есть только один вариант, но я объясню его в переписанном моем собственном ответе, если я смогу его изменить, если нет, я добавлю еще один ответ.
У меня есть одна дружеская просьба, особенно когда вы отвечаете кому-то, кто, как вы ясно видите, совсем неопытен в использовании этого сайта. Вместо того, чтобы отвечать так, как некоторые из вас, что, честно говоря, подтолкнуло меня к тому, что я собирался просто покинуть сайт, так как я чувствовал, что ответы демонстрируют полное отсутствие толерантности к новичкам, которые еще не все знают, как здесь обстоят дела, и я был совершенно не осведомлен об ожиданиях, которые некоторые из вас, по-видимому, имели относительно того, как публикуются вопросы и т. д., вместо этого постарайтесь быть приветливыми и либо отправьте им личное сообщение, либо ответьте на их сообщение и поделитесь с ними ссылкой, которой позже поделились со мной, после того как мне стало ясно, что участники Green и их не очень хорошо написанные вопросы совсем не терпимы. Это дало бы мне достаточно стимула потратить время, которое у меня есть сейчас, на то, чтобы переписать вопрос. Иногда люди настолько увлекаются собой, что забывают, как далеко может зайти небольшой жест доброты.
Если бы один из других участников не потратил время на то, чтобы попытаться понять мой вопрос, и не сделал все возможное, чтобы предоставить мне другой способ рассмотрения моей проблемы, я не знаю, что я бы когда-либо вернулся снова, что было бы стыдно, потому что, как и многие из вас, у меня за плечами 2 десятилетия технической поддержки, инженерной поддержки приложений, системного администрирования, веб-сервисов и архитектора по интеграции и миграции иностранных систем. Я совершенно уверен, что в какой-то момент я смог бы поделиться частью своего многолетнего опыта, чтобы помочь другим, у которых нет такого уровня навыков, как у меня во многих областях, и я люблю помогать людям. Поэтому, хотя я и не пытаюсь бить мертвую лошадь, я бы просто попросил вас подходить к новым членам с небольшим прощением и принятием, и вместо того, чтобы портить репутацию первого поста, который они сделали, попытаться указать им правильное направление (как это было сделано снова, много позже), чтобы они могли научиться писать наиболее эффективный пост, а не заставлять их чувствовать себя нежеланными и отчужденными от участников. Надеюсь, мои вопросы и то, что я только что объяснил, окажут влияние, и следующий человек не будет чувствовать себя таким же отвергнутым, как я.
Если у кого-то возникнут вопросы относительно переписанных мною вопросов, пожалуйста, не стесняйтесь задавать их.
Ваше здоровье,
Джон
решение1
Вероятно, вы путаете два понятия:
- the каноническийполное доменное имя, возвращаемое
hostname --fqdn
. Оно используется сервером, чтобы знать, как вызывать себя, например, вHELO
командеSMTP
. - полные доменные имена ваших веб-сайтов.
Для размещения systopiansolutions.com
на вашей территории вам не нужно менять каноническое имя хоста сервера, просто добавьте A
запись DNS, которая указывает на ваш сервер и настройте Apache <VirtualHost>
. Вам не нужно ничего менять ни в том, ни в /etc/hosts
другом, поскольку сервер Apache2 выбирает сайт для обслуживания на основе заголовка клиента Host
, а не IP-адреса входящего интерфейса (на самом деле мне приходится угадывать, что вы пытаетесь сделать с файлом /etc/hosts
, поскольку вы упоминаете его только в заголовке вопроса).
MySQL использует имя хоста для идентификации подключающегося пользователя, но вы, вероятно, используетелокальный хоств любом случае.
Редактировать: После Ваших разъяснений ответ на этот вопрос:
Первоначальный вопрос был примерно таким: без какой-либо настройки балансировщика нагрузки или маршрутизатора, можно ли каким-либо образом сделать так, чтобы одно и то же полное доменное имя указывало на 2 разных IP-адреса.
довольно просто: вы можете иметь столько A
записей DNS для одного домена, сколько захотите, при условии, что все серверы имеют одинаковый контент. Если нет, ваши пользователи будут случайным образом получать одну или другую веб-страницу.
О /etc/hosts
файле, 25 лет назад он содержал ту же информацию, что DNS
и вы могли загрузить с NIC IP-адреса и доменные имена всех хостов Интернета. Очевидно, что сегодня это так не работает. Сегодня вы используете его только для переопределения DNS
(на UNIX-ах это /etc/hosts
проверяется перед запросом DNS): например, обычно (или исторически) каждый хост имеет только свое короткое имя, как webserver1
в /etc/hostname
и строку:
127.0.1.1 webserver1.example.com webserver1
который переопределяет A
запись для webserver1.example.com
, так что внутренняя связь хоста с самим собой использует устройство обратной связи.
решение2
Хотя я не смог найти подходящий ответ на данный момент, и тот факт, что, как представляется, поскольку Site Ground не может перенести публичную домашнюю страницу моей компании в дополнительный домен, добавленный к ним как systopiansolutions.com, у меня на самом деле нет вопросов, касающихся разрешения одного доменного имени на 2 разных IP-адреса. Поэтому мне все еще интересно, как, если это вообще возможно, это можно сделать, или как кто-то с таким уровнем знаний справился бы с той же проблемой, если бы она у него была.
Однако, поскольку теперь у меня есть возможность перенести сам сайт, я решил, что просто создам еще один сайт ner на сервере VPS, и хотя на этом сервере уже есть Invoice Ninja (который является публичным сайтом для клиентов), я, возможно, забуду о попытках иметь доменное имя в нескольких местах с несколькими IP-адресами и просто изменю всю конфигурацию сервера VPS, удалив ссылки на systopian-web1.com в /etc/hosts и заменив все записи для этого доменного имени на systopiansolutions.com. Таким образом, все сайты, публичные или нет, будут указывать на правильное доменное имя моей компании.
Так что я действительно выполнил этот план и не только обновил свой DNS, предоставленный Site Ground.
Я также изменил /etc/hosts, закомментировал запись для systopian-web1.com и добавил запись для systopiansolutions.com.
Я просмотрел site-name.conf каждого из своих веб-сайтов, а также apache2.conf, и изменил все ServerName и ServerAlias на systopiansolutions.com.
Затем я перезагрузил свой хост, чтобы убедиться, что все мои изменения были применены в каждой из областей соответствующим образом.
Сделав это, я смог получить SSL-сертификаты для всех моих сайтов, которые были предоставлены и установлены для всех сайтов с помощью systopiansolutions.com. Поскольку это сервер VPS, мне пришлось создать сертификаты вручную с помощью certbot-auto, который, если я понимаю, как работает эта cli-программа, проверяет ваши доменные имена на основе записей в /etc/hosts, а не DNS.
После установки SSL ВСЕ сайты, как публичные, так и внутренние, работают корректно с новым доменом и с https.
Однако я заметил пару проблем, которые, хотя они мне совсем не мешают, но, надеюсь, кто-нибудь мне поможет, так как я ненавижу лезть во что-либо, когда все работает идеально. Однако, как я понимаю, у вас может быть только одно полное доменное имя в /etc/hostname, а у меня их два. Опять же, ничего не работает и ни одна вещь не жалуется. И хотя я читал, что да, вы можете указать здесь более одной записи полного доменного имени, я прочитал страницы Linux Man, где говорится, что нет, разрешена только одна. Поскольку я не знаю, какие подсистемы на самом деле используют этот файл для своих целей, я не уверен, какое именно доменное имя следует здесь настроить...
root@systopian-web1:/etc# cat /etc/hostname systopian-web1 <==== Это имя локального хоста. systopian-web1.com <==== Это было старое полное доменное имя сервера. И если это возможно, я бы хотел продолжать использовать его в качестве доменного имени для всех сайтов веб-приложений, которые являются просто внутренними сайтами.
Теперь в моем /etc/hosts у нас немного другая история, я поменял Доменное имя на сервер. Однако, если кто-то не знает, как мне настроить оба Доменных имени для использования на этом же хосте, я не уверен, что еще делать. Поскольку Сервер никак не привязан к моей локальной сети, я не могу использовать записи localhost для настройки Внутренних сайтов на использование LocalHost с systopian-web1.com. Так что это тоже не сработает.
root@systopian-web1:/etc# cat /etc/hosts
127.0.0.1 localhost
127.0.1.1 systopian-web1
//207.246.87.29 systopian-web1.com
207.246.87.29 systopiansolutions.com
45.76.165.28 unms.systopian-web1.com
//The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
Другая проблема в том, что я хочу сохранить имя хоста 127.0.1.1 для systopian-web1, чтобы соответствовать моему соглашению об именовании серверов Operations Center. Поэтому
/etc/hosts shows:
127.0.0.1 localhost
127.0.1.1 systopian-web1
Итак, надеюсь, я более подробно объяснил, что я сделал, чтобы обойти беспокойство по поводу наличия двух IP-адресов, указывающих на одно доменное имя, поскольку одна из моих первых мыслей о том, как справиться с этими проблемами, поднятая в моем недавно написанном вопросном сообщении, больше не является проблемой, и поскольку я буду работать над созданием домашней страницы моей компании на VPS-сервере, который теперь настроен с доменным именем systopiansolutions.com, больше нет необходимости (кроме простоты настройки сайта с помощью бесплатного конструктора сайтов с функцией перетаскивания Site Grounds) размещать домашнюю страницу моей компании на Site Ground.