Как сделать редирект с одного сервера на другой в рамках одного домена?
Здравствуйте! Запланировал переезд на другой сервер. Сделал все настройки, перенес все сайты. Теперь нужно обновить DNS записи и ждать когда весь трафик пойдет на новый сервер, после этого старый можно будет отключить. Однако возник вопрос, можно ли как-то с помощью nginx сразу перенаправлять пользователей на новый сервер и если да, то как? Т.е. пришел запрос на старый сервер, и nginx перенаправил пользователя на новый на ту же самую страницу. Что нужно добавить в конфиг для этого? Так же прошу помочь понять насколько верное это решение, понимаю что появятся задержки, но так ли это будет критично? Старый VPS располагается в дата-центре Амстердама, новый в Москве.
Евгений Безымянников: сталкиваюсь с настройкой сервера очень редко, поэтому опыта недостаточно. Не могли бы вы чуть подробнее написать в ответе к вопросу как это сделать?
Глупость какая-то.
Перенесите сайты, перепишите DNS.
Как только подхватится, новые пользователи пойдут на новый сервер.
Потом подождать дня 3, для сброса DNS кэше и можно закрывать старый.
Если используется база данных, то на старом сервере нужно также прописать обращение к новой БД.
Вместо обычного сервера localhost, пишите IP нового сервера, и сливаете базы.
Таким образом у вас оба сервера будут использовать одну (новую) БД.
На новом сервере нужно также разрешить удаленное подключение.
Зачем какие-то nginx-редиректы еще?
Допустим пользователь заходит на сайт, попадает на старый сервер, регистрируется и оставляет комментарий. После трех дней весь трафик идет на новый сервер, однако тот аккаунт который регистрировал пользователь и комментарий, который он добавил на новом сервере отсутствует. Сложность в том, что у кого-то DNS обновится раньше, у кого-то позже. Соответственно кто-то будет комментировать на новом сервере, кто-то на старом. На разных серверах будет разная информация в БД.
TraiDeR: Ну, перенесите сайт, и сделайте со старого удаленное обращение к БД, чтобы все пользователи и комменты сразу падали на новый сервер. Он же у вас доступен уже.
TraiDeR: Вместо подключения к БД localhost, как это обычно делается. Пишите xxx.xxx.xxx.xxx IP нового сервера базы данных, и на новом сервере нужно разрешить удаленное подклюение.
Sergey Goryachev: Спасибо, за подсказку, об этом даже не подумал. Однако открывать доступ к базе из вне это безопасно? И еще не могли бы пояснить, почему решение с редиректом глупость? Что делать в случае, если меняется не только база, но и файлы. Например загрузка картинок, файлов и т. п.
TraiDeR: Вы же откроете доступ только временно. Можно ограничить IP для которых открывается доступ, только на IP старого сервера. Ну, просто не нужен тут редирект. Можно извратиться, написать скрипт, который будет синхронизировать данные по FTP, но это честно говоря извращение. Я уверен, что достаточно просто слить потом нужные картинки после полного перехода.
За последние пару месяцев вы уже третий здесь с таким вопросом. Есть куча методов как это сделать.
Но я не буду вам рассказывать - воспользуйтесь поиском, там все хорошо разжевали в тех ответах.
Извините, мне не удалось найти ответ на свой вопрос. За последние пару месяцев находятся только ответы про редиректы с одного домена на другой. Может быть вы подскажите какие методы существуют, я бы подробнее про них почитал?
Переезжаю с одного VPS на другой. Дело в том, что DNS обновляется не сразу у всех пользователей, есть вероятность что часть трафика пойдет на старый, а часть на новый. Если сайт динамический, регистрируются, загружают файлы, то это не очень хорошо. Выше уже посоветовали на старом сервере сделать удаленное подключение к БД нового сервера.