en de fr es ja it pt

8 мая 2011 г.

Перенос сайта на другой сервер без простоя

Один из моих проектов собрался переезжать с VDS на выделенный сервер.
Когда-то я уже переносил его от одного хостера к другому (VDS -> VDS) и тогда возникла следующая проблема: у некоторых пользователей их DNS отдавал старый IP даже более чем через двое суток, приходилось просить их прописать новый IP в hosts до обновления кэша dns-серверов.
Повторять такое не очень хотелось, поэтому вот что было сделанно:

- Полностью все настроенно на новом сервере
- Остановленна база MySQL на старом и дамп перенесен на новый
- На старом VDS остановлен web-сервер и поднят nginx со следующим конфигом, где 1.2.3.4 - IP нового сервера:


worker_processes 1;
events {
worker_connections 1024;
}

http {
include mime.types;
default_type application/octet-stream;

log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';

access_log logs/access.log main;

sendfile on;
keepalive_timeout 65;

server {
listen 80;
server_name myserver.org;
location / {
proxy_pass http://1.2.3.4:80;
proxy_set_header Host $host;
}
}
}

- изменены IP в настройках DNS домена на новый сервер.
Всё.

Теперь те, у кого DNS обновились - сразу идут на новый сервер, а у кого еще нет - на VDS, где nginx их прозрачно проксирует на новый сервер.

Стоит отметить, что при этом конфиге в логах нового сервера все проксированные пользователи будуту записаны под IP VDS'a, мне это ни сколько не мешает, но если вас это не устраивает - почитайте практически любое руководство по поднятию nginx как фронтенда.

Комментариев нет:

Отправить комментарий