웹 사이트의 서버를 변경하고 있습니다. 기존 서버의 IP를 새 서버로 이동할 수 없습니다. 가동 중지 시간이 없어 다음 작업을 수행 할 계획이라면 누군가 작동하는지 확인하십시오.
- 새 서버를 설정하고 새 IP를 듣습니다.
- 기존 서버는 모든 트래픽을 새로운 IP로 리디렉션
- 새 IP를 가리 키도록 DNS 레코드 변경
내 논리에 따르면 이전 상자에서 새 IP로 리디렉션하면 브라우저에 도메인 이름이 표시되지 않지만 새 IP가 표시됩니다. 사용자가 브라우저에서 도메인 이름을 볼 수 있도록 새 IP로 리디렉션하고 HOSTNAME과 함께 전송하는 방법이 있습니까?
사이트가 지속적으로 사용 중이므로 전파하는 동안 데이터베이스가 새 서버와 기존 서버간에 동기화되지 않으므로 DNS 설정을 변경하는 것만으로는 수행되지 않기 때문에이 작업을 수행하고 있습니다.
답변
나를 위해 일한 방법은 다음과 같습니다.
- 파일 및 데이터베이스를 새 서버와 동기화하십시오.
- 차단 직전에 재 동기화를 수행하십시오.
- 새 서버를 가리 키도록 DNS를 변경하십시오.
- DNS 전파가 완료 될 때까지 이전 IP로 들어오는 요청을 새 서버로 전달하십시오.
4 단계를 수행하는 방법은 다음과 같습니다.
Linux 서버에서 IPTable을 구성하여 포트 80 (기본 웹 서버 포트)으로 들어오는 모든 트래픽을 IP 서버로 리디렉션합니다 122.164.34.240
. 첫 번째 단계는 이러한 종류의 전달이 가능하도록 Linux 상자를 설정하는 것입니다. 터미널 창을 열고 루트 사용자로 로그인 한 후 다음 명령을 실행하십시오.
# echo 1 >/proc/sys/net/ipv4/ip_forward
다음 단계는 트래픽을 새 서버로 리디렉션하도록 IPTables에 지시하는 것입니다.
# iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 122.164.34.240
IPTables 마술이 일어나는 곳입니다. 세 번째이자 마지막 단계에서는 IPTables가 새 서버의 포트 80에 대한 연결 시작을 이전 서버에서 온 것처럼 다시 쓰도록 지시합니다.
# iptables -t nat -A POSTROUTING -p tcp -d 122.164.34.240 --dport 80 -j MASQUERADE
마지막 단계는 새 서버의 웹 서버에 클라이언트 시스템에서 연결이 이루어지고 있다고 알리지 않으면 이전 서버에서 시작된 것으로 생각하기 때문에 필요합니다.
데이터베이스 및 전자 메일 서버 포트에 대해서도이 작업을 반복 할 수 있습니다.
답변
여러 개의 A 레코드를 추가 할 수도 있습니다. 예를 들어 Google은 이것을 사용하여 nslookup 출력을 확인합니다.
Name: google.com
Addresses: 209.85.148.101
209.85.148.102
209.85.148.113
209.85.148.138
209.85.148.100
209.85.148.139
도메인에 여러 개의 A 레코드를 추가하면 방문자는 여러 개의 IP를 받고 순서대로 시도합니다. 하나가 실패하면 클라이언트는 다음 단계로 이동하여 시도합니다.
24 시간 동안 추가 A 레코드로 새 IP를 설정하고 새 서버를 시작하고 이전 서버를 종료하고 IP를 제거하십시오.
답변
다른 옵션은 VIP (가상 IP)를 사용하는 것입니다. 따라서 귀하의 단계는 다음과 같습니다.
- 새 서버를 설정하고 새 IP를 청취하십시오.
- 기존 서버에 VIP를 추가하십시오.
- VIP 레코드를 가리 키도록 DNS 레코드를 변경하십시오. 지금까지 모든 트래픽은 여전히 VIP를 사용하여 기존 서버로 전송됩니다.
- 준비가되면 VIP를 새 서버로 옮깁니다.
- 선택적으로 DNS를 새 서버 IP로 변경하고 DNS에서 VIP를 제거 할 수 있습니다.
답변
데이터베이스 복제에 대해 언급 했으므로 다음을 수행해야합니다.
- 두 서버의 데이터베이스간에 복제를 설정하십시오.
- 컷 오버 동안 새 서버의 DB를 기본 서버로, 기존 서버를 읽기 전용으로 만듭니다.
- 응용 프로그램의 데이터베이스 연결 문자열을 이전 서버와 새 서버의 새 서버를 가리 킵니다. 사이트에서 세션을 사용하는 경우 세션이 DB에서 유지되는지 확인하십시오.
- DNS의 IP 주소를 새 서버로 변경하십시오.
- 최소 48 시간 동안 두 서버를 계속 실행하십시오.
답변
- 새 서버를 설정하고 새 IP를 듣습니다.
- 그런 다음 투명 리디렉션을 구성하십시오. 이전 서버에서 rinetd를 설치하십시오.
rinetd.conf에서 :
OLD_SERVER_IP 80 NEW_SERVER_IP 80
- 새 IP를 가리 키도록 DNS 레코드 변경
답변
웹 서버에서 HA-Proxy를 사용할 수 있습니다.이 중 하나가 유지 관리 모드로 전환되면 보조 서버가 대신합니다.
답변
해야 할 일에 대한 목록은 상당히 합리적입니다.
예를 들어, 아파치를 사용한다고 가정하면, 이전 서버의 아파치에서 이와 같은 작업을 수행 할 때 :
redirect permanent / http://newserver.example.com
사용자는 이전 사이트를 탐색 할 때 브라우저에서 새 도메인을 보게됩니다. 이 경우 브라우저가 실행되는 동안 리디렉션도 영구적입니다.
따라서 다른 변경 사항 외에도 웹 서버에서 일종의 리디렉션을 구현하는 한 괜찮습니다.