Как я гладко перемещаю DNS веб-сервера от одного IP-адреса до другого?

Действительно ли Tomcat6 является требованием? Какая версия Centos? (Я принимаю "Tomcat какой-то" и "текущий Centos", который был бы 5.3 с этой записи),

Вам не нужен jpackage repo, если Вы не хотите Tomcat 6. Кроме того, Centos 5.3 поставлется с openjdk 1.6.0, который передал Java SE 6 TCK.

Просто "конфетка устанавливает tomcat5", должен вытянуть во всех зависимостях, в которых Вы нуждались бы (включая openjdk), многие из которых будут базироваться от jpackage источников. После того как это установлено, все, в чем Вы нуждаетесь, "сервис tomcat5, начинают" запускать его.Примечание: При выполнении веб-контейнера, поскольку корень очень, очень плохо потому что это - значительная угроза безопасности. tomcat5 сервис, установленный версией репозитория, отбросит свои полномочия пользователю 'кота' с более ограниченными полномочиями. Чтобы иметь кота запускаются автоматически, когда начальные загрузки системы, используйте "chkconfig tomcat5 на".

В Вашем случае выше, порт 8080, вероятно, заблокирован брандмауэром по умолчанию. Можно выключить брандмауэр (рекомендуемый только для тестирования возможности соединения, не работайте без брандмауэра в производстве) с "сервисом iptables остановка". Centos обеспечивает и GUI и текстовый инструмент UI (system-config-securitylevel и system-config-securitylevel-tui соответственно) для изменения брандмауэра, или можно использовать iptables непосредственно (см. 'человека iptables').

8
задан 17 September 2009 в 16:30
5 ответов

Можно использовать Обратный Прокси на старом веб-сервере. Это могло бы быть немного работы для установки, но, пока ЕЕ DNS актуален, Вы будете в порядке.

То, что произойдет:

  1. Старый веб-сервер настроен, чтобы быть Обратным Прокси
  2. Переключение DNS
  3. Новый веб-сервер служит хитам из актуальных записей DNS
  4. Старая сеть, когда это получает хит, передает запрос к корректному DNS и затем производит содержание дословно.

Если Вы выполняете Apache, изучаете mod_proxy. Если Вы выполняете IIS, изучаете ISAPI, Переписывают для получения этого вида функциональности.

(обратите внимание, что DNS на старом веб-сервере должен быть актуальным, если Вы хотите проксировать использование доменного имени. Иначе проксируйте его непосредственно к IP-адресу и удостоверьтесь, что хост слушает на IP без имени хоста),

5
ответ дан 2 December 2019 в 22:43

Я использую iptables для этого, когда я должен сделать это; быстрый бит DNAT/SNAT и всего Вашего трафика волшебно вновь появляется, где это должно быть. Если у Вас есть реальная потребность поддержать исходные IP-адреса, обратный прокси может помочь путем установки соответствующих заголовков, но это требует, чтобы много faffing вокруг в обоих концах удостоверилось, что все это совпадает, таким образом, я обычно не волнуюсь об этом для чего-то как миграция, поскольку это является переходным, и понижающий TTLs обрабатывает большую часть из него.

3
ответ дан 2 December 2019 в 22:43

Моя компания просто сделала это с несколькими великоватыми веб-сайтами. Основная процедура, которую мы выполнили, была:

  1. Понизьте TTL домена как можно больше. Сделайте это заранее, по крайней мере, таким же количеством времени как текущий TTL.
  2. Запустите веб-сайт на новом сервере точно, как Вы хотите, чтобы "конечный продукт" был
  3. Добавьте искаженное имя к сайту на новом сервере, таком как www2.domain.com или www-new.domain.com. С Apache Вы использовали бы директиву ServerAlias. Если сайт имеет какой-либо динамический код вообще (PHP, mod_perl, RubyOnRails, и т.д.), удостоверьтесь, что сайт будет вести себя и отвечать правильно этим новым именем.
  4. В cutover время, настроенное перенаправление на старом сервере, указывающем на новый сервер
  5. Измените DNS для www для движения в новый IP.

Для Apache необходимо, вероятно, использовать mod_rewrite для перенаправления, таким образом, можно сохранить URIs, который требует клиент. Простая реализация была бы:

# old server
<VirtualHost 1.1.1.1:80>
    ServerName www.domain.com
    RewriteEngine on
    RewriteRule ^(.*)$ http://www-new.domain.com$1 [L]
</VirtualHost>

# new server
<VirtualHost 1.1.1.2:80>
    ServerName www.domain.com
    ServerAlias www-new.domain.com
</VirtualHost>

Это сделает 302 временных перенаправления для www.domain.com/anything на www-new.domain.com/anything. Вы хотите, чтобы это было временным, потому что Вы, вероятно, хотите, чтобы поисковые системы только индексировали www.domain.com, не www-new.domain.com.

После того как изменение DNS для www.domain.com распространило к Вашей удовлетворенности, можно или вывести www-новый в целом или мягко упростить любого использующего его назад для www с другим перенаправлением. Это - почти тот же процесс как выше; настройте старый сервер, чтобы обработать www-новый, изменить DNS для www-нового, чтобы указать на старый сервер и настроить перенаправление на старом сервере, отправляющем www-новый трафик в www:

# old server
<VirtualHost 1.1.1.1:80>
   ServerName www-new.domain.com
   RewriteEngine on
   RewriteRule ^(.*)$ http://www.domain.com$1 [R=301,L]
</VirtualHost>

# new server
<VirtualHost 1.1.1.2:80>
    ServerName www.domain.com
    # ServerAlias removed, no longer needed
</VirtualHost>

На этот раз Вы хотите сделать постоянное 301 перенаправление, снова к подсказке в поисковых роботах поисковой системы, что www.domain.com является сайтом, который Вы хотите, чтобы они индексировали.

11
ответ дан 2 December 2019 в 22:43

Хорошо, на основе того, какой рекомендуемый @Farseeker, я настроил следующую конфигурацию на старом сервере Apache для передачи запросов на новый сервер:

<VirtualHost *>
  UseCanonicalName Off
  ServerAdmin  me@domain.com
  ServerName domain.com
  DocumentRoot /var/www/

  ProxyRequests Off

  <Proxy *>
    Order deny,allow
    Allow from all
  </Proxy>

  ProxyPass / http://domain.com/
  ProxyPassReverse / http://domain.com/
</VirtualHost>

Для проверки старый сервер имел корректный адрес, я вставил запись /etc/hosts:

1.2.3.4 domain.com

Я также должен был включить Apache mod_proxy и mod_proxy_http модули и перезагрузка конфигурация:

a2enmod proxy
a2enmod proxy_http
/etc/init.d/apache force-reload
3
ответ дан 2 December 2019 в 22:43

It's an old thread but maybe it will help someone:

In addition to answers of Mark Henderson (mod_proxy) OR James Sneeringer (302,301 redirect to new subdomains), one more thing could be added regarding database sync when moving big applications.

If your web project uses a database (ex. MySQL), before switching the DNS, make sure the applications (ex. PHP) from both servers are connecting to the same database. So that the read and writes are going to the same place and you don't have to deal with different DB sync tools afterward.

This would (most probably) affect the loading time on one server but for the switch period this can be accepted.

In case the DB server is not accessible from outside, you could setup also the mysql_proxy on the web server which has access to it and is accessible from external IPs.

4
ответ дан 2 December 2019 в 22:43

Теги

Похожие вопросы