
Я не уверен, что это можно сделать красиво, но, возможно, у кого-то есть идея.
Ниже представлен макет моей установки.
У меня есть два сайта (в смысле «центров обработки данных»), расположенных на расстоянии многих миль друг от друга. «локальный» сайт, названный на схеме «место назначения», и удаленный сайт, названный на схеме «источник».
На моем «локальном» сайте у меня есть 2 физических сервера esxi, на которых размещено множество всего (гораздо больше, чем изображено на картинке, изображено только то, что имеет отношение к делу)
На моем «удаленном» сайте у меня есть два физических сервера под управлением CentOS 5, но они слишком старые для чего-либо и слишком дороги, чтобы устанавливать новый сервер, поэтому я решил перенести часть ресурсов оттуда на свой локальный сайт.
Оба сервера apache размещают 1 wordpress multisite и несколько других php и не php веб-сайтов. И они оба находятся за сервером nginx.
Я успешно перенес sourceA.com на адрес sourceA.com (DNS по-прежнему указывает на старый сайт, а nginx проксирует мой «локальный» nginex, который проксирует Apache)
На данный момент все работает так, как и ожидалось от внешнего мира.
Другие веб-сайты и сервисы на источнике также работают нормально.
Моя проблема в том, что я хотел бы провести некоторое техническое обслуживание на siteA из моей локальной сети, не переходя на source.com и не подключаясь через прокси-сервер...
Я думаю, это разумная просьба :)
Теперь я могу настроить либо мой локальный dnsmasq, либо файл hosts на моем ПК так, чтобы при доступе к «siteA.com» из веб-браузера он делал то, что мне нужно.
Но теперь я не могу получить доступ к своей электронной почте на siteA.com, потому что IP-адрес больше не указывает на «исходный» сервер, а указывает на мой сервер apache или nginx в локальной сети.
То же самое происходит и при подключении по SSH к другой стороне.
(да, я могу попробовать использовать один из других доменов и изменить свои скрипты и все такое, но я действительно не хочу вникать в изменение настроек и скриптов, которые я установил много лет назад. Если что-то не сломалось, не чините это. Они работают нормально, поэтому мне нужно что-то, что потенциально ничего не сломает)
Я попытался настроить локальный псевдоним мультисайта для этого домена (siteA). Но поскольку мультисайт настроен с псевдонимом "default" на "siteA.com", в тот момент, когда браузер обращается к WP с "siteA.local", он получает 302 на "siteA.com" и переходит на исходный сервер и проксируется.
Думаю, следующим шагом будет взломать WP и сделать так, чтобы он не перенаправлял на локальные псевдонимы, но тогда мне придется делать это изменение каждый раз, когда WP обновляется. Я не смог найти плагин, который отключает это или как-то позволяет настраивать фильтрацию того, что перенаправляется.
У кого-нибудь есть идея получше?
решение1
В конфигурации WordPress естьдве переменныедля настройки URL сайта.
Здравый смысл подсказывает, что для этих значений используется полный URL. Однако на моем односайтовом WordPress я не указываю схему или имя хоста. Это означает, что сайт перенаправляет с помощью относительного URL (с ведущим, /
но без схемы или имени хоста).
Это может работать с многосайтовым WordPress (я не знаю), но это означает, что к сайту можно будет получить доступ, используя более одного доменного имени.