Cách tốt nhất để thay đổi địa chỉ IP của trang web - từ góc độ người dùng cuối?


10

Tôi đã đọc một loạt các Q / A có liên quan ở đây nhưng tôi vẫn không chắc câu trả lời tốt nhất là gì.

Tôi đang chuyển một vài trang web từ địa chỉ IP "1.abc" sang "2.def". Tính đến thời điểm hiện tại trong DNS hiện tại, tôi đã đặt tất cả TTL thành 300 giây và tôi có một vùng DNS mới sẵn sàng để sử dụng (trên AWS Route 53), với các máy chủ tên mới và tất cả các TTL ở 60 giây. Vì vậy, tôi tin rằng tôi đã sẵn sàng, từ góc độ DNS. Sau khi di chuyển, sau một vài ngày, tôi sẽ đặt TTL thành các số hợp lý hơn tại Tuyến 53.

Tôi đã cảnh báo tất cả người dùng của mình về việc di chuyển và tôi có một cửa sổ thời gian xác định cho việc di chuyển. Tôi nói với họ rằng một khi quá trình di chuyển hoàn tất và nếu 24 giờ trôi qua mà họ vẫn thấy các trang web cũ (bị khóa), họ nên khởi động lại máy tính của mình để buộc xóa bộ đệm ẩn DNS cục bộ.

Tôi không hiểu trình duyệt (bộ đệm) của người dùng đóng vai trò như thế nào trong việc này. Các thử nghiệm của riêng tôi với tệp máy chủ cục bộ (Win7) cho tôi biết có một điều gì đó về trình duyệt không để địa chỉ IP cũ biến mất - Tôi phải truy cập lịch sử-> xóa mọi thứ để hiển thị vị trí trang web mới lên, ngay cả sauipconfig /flushdns

(EDIT) - Tôi không có quyền truy cập root vào máy chủ cũ, vì vậy tôi không thể thực hiện câu trả lời được chấp nhận cho câu hỏi này .

Câu hỏi: Tôi thực sự không muốn người dùng của mình phải đối phó với điều đó, vậy tôi có thể làm gì để buộc tất cả các trình duyệt ngoài đó phải lưu lại bộ đệm không? Và nếu vậy, tôi để nó bật bao lâu?

Cảm ơn...


My own experiments with a local hosts file (Win7) tell me there is something about the browser that is not letting the old IP address goBạn có thể cung cấp một số thông tin về điều này? Afaik, trình duyệt không lưu các bản ghi DNS trong hơn 1 phút.
Tanmay

Không chắc chắn, nhưng sau nhiều ipconfig / flushdns và "ctrl-F5" (trong Firefox), tôi đã tiếp tục nhận được một hỗn hợp các trang từ cả trang web cũ và trang web mới ... cuối cùng đã phải xóa "mọi thứ" và bắt đầu lại trình duyệt. Tôi không muốn người dùng của mình phải làm điều tương tự ...
CC

JBTW, giải pháp trong liên kết bạn cung cấp cũng có thể hoạt động nếu bạn có quyền truy cập root vào máy chủ mới. Cập nhật các bản ghi DNS và chuyển tiếp tất cả lưu lượng truy cập từ máy chủ mới sang máy chủ cũ, cho đến khi DNS được truyền đúng.
Tanmay

cảm ơn ... nhưng sau đó tôi sẽ phải đồng bộ lại cái cũ với cái mới (cơ sở dữ liệu, v.v.) sau, phải không?
CC

Bạn sẽ phải đồng bộ hóa cơ sở dữ liệu một lần, ngay trước khi tắt chuyển tiếp.
Tanmay

Câu trả lời:


15

Không, bạn không thể. Vấn đề là phản hồi DNS có thể được lưu trữ ở bất cứ đâu giữa người dùng và máy chủ DNS và không có cách nào để vô hiệu hóa chúng.

Tuy nhiên, những gì bạn có thể làm - ngay khi bạn có dữ liệu đồng bộ hóa và trang web thứ hai của bạn đã sẵn sàng, bạn có thể cấu hình lại máy chủ ban đầu để hoạt động như một proxy và chuyển tất cả các yêu cầu đến vị trí mới.

Bằng cách này, bạn có thể đạt được gần 0 giây thời gian chết của trang web của mình.

Cập nhật

Nếu bạn không có quyền truy cập root, có một số tùy chọn:

  • Thực hiện ủy quyền trong PHP

  • Định cấu hình proxy trên máy chủ thứ hai (nếu bạn có quyền truy cập root ở đó), chuyển DNS và khi bạn sẵn sàng đổi proxy sang máy chủ web

  • Phương pháp này có thể là nguồn của sự cố Có 2 địa chỉ (www.domain.tld và www2.domain.tld). Định cấu hình www2 (giống như www) và đặt bản ghi DNS chính xác. Sau đó chuẩn bị phiên bản www của trang web của bạn và thực hiện chuyển đổi DNS. Đặt chuyển hướng của tất cả các yêu cầu trên máy chủ cũ sang tên miền phụ www2.


Bạn có muốn mở rộng một chút về điều này, hoặc với một con trỏ đến một bài viết hoặc Q / A mà tôi có thể đọc? Tôi không có quyền truy cập root vào máy chủ hiện tại vì vậy tôi không thể thao tác trực tiếp các bảng IP ... vì vậy có lẽ có một cách khác?
CC

@CC có lẽ bạn có quyền truy cập để thay thế ứng dụng của mình bằng một ví dụ HAProxy? Hoặc thay thế mã ứng dụng của bạn bằng mã khác hoàn toàn chuyển tiếp yêu cầu đến máy chủ mới?
Jason Martin

@JasonMartin - Tôi có quyền truy cập .htaccess và mã ứng dụng. Vì vậy, vâng, tôi có thể lấy URL được yêu cầu và chuyển đến địa chỉ IP mới - có lẽ tôi nên thử nó?
CC

@CC mà nghe có vẻ hứa hẹn rồi. DNS là một công cụ 'cuối cùng nhất quán' và một số máy chủ DNS đặt sàn trong TTL của họ và sẽ bỏ qua 300 của bạn. Nếu bạn muốn tránh bất kỳ sự gián đoạn nào ở đó, proxy chuyển tiếp là đặt cược tốt nhất.
Jason Martin

4

Về lý thuyết, việc đặt TTL của miền xuống mức thấp và chờ thay đổi đó diễn ra, sau đó thay đổi IP, sẽ dẫn đến việc di chuyển gần như trong suốt. Rốt cuộc, đó là toàn bộ điểm của TTL có thể cấu hình được.

Trong thực tế, mọi người hiểu sai những thứ và công cụ phá vỡ. Đó là lý do tại sao bạn có thể cần cung cấp hướng dẫn cho người dùng của mình để xóa bộ nhớ cache cục bộ của họ nếu mọi thứ không hoạt động đúng.

Bạn không làm gì sai cả.


Tôi có nên chuyển ngay sang DNS AWS Route 53 mới - với địa chỉ IP - sau khi di chuyển xong chỉ cần thay đổi địa chỉ IP thành địa chỉ mới? - hoặc chỉ thay đổi DNS sang cái mới thay đổi IP cùng một lúc?
CC

1
@CC: Tôi không phải là quản trị viên mạng, vì vậy hãy sử dụng một chút muối (và tôi rất vui khi biết cách khác từ các chuyên gia về ServerFault), nhưng cá nhân tôi khuyên bạn không nên thay đổi cả hai cùng một lúc. Nhận DNS của bạn được sắp xếp, sau đó thực hiện thay đổi IP và để DNS mới thực hiện công việc của nó bằng cách giúp bạn với phần cuối cùng đó.
Các cuộc đua nhẹ nhàng trong quỹ đạo

1
Vâng, tôi đã thử một thí nghiệm. Một trang web, tôi đã thay đổi DNS giờ trước, sau đó thay đổi địa chỉ IP bản ghi A sau đó. Làm việc hoàn hảo. Các trang web khác tôi đã thay đổi cả hai cùng một lúc. Nó đã bị đập giữa địa chỉ IP cũ / mới trong nhiều giờ - cuối cùng tôi đã xóa vùng AWS Route 53 và làm lại theo cách tương tự như trang web đầu tiên. Làm việc hoàn hảo. Vì vậy, không có nhúm muối cần thiết - bạn đã vào vị trí!
CC

1

Chắc chắn địa chỉ cũ của bạn sẽ được lưu trữ và sử dụng trong một thời gian dài - chủ yếu là bởi các bot.

Làm thế nào tôi làm điều đó:

  • Tạo một bản ghi A, ví dụ www2.yourdomain.com, trỏ đến IP mới. Hồ sơ này không bao giờ nên được sử dụng trước đây; do đó không bao giờ lưu trữ.
  • Chuyển hướng truy vấn trên máy chủ cũ sang www2.yourdomain.com
  • Giám sát các chuyển hướng và khi lưu lượng truy cập giảm xuống mức chấp nhận được, hãy xóa máy chủ cũ.
  • Và cuối cùng một khi máy chủ cũ bị xóa, hãy chuyển hướng www2.yourdomain.comđến www.yourdomain.com.

Hãy chắc chắn sử dụng chuyển hướng 301 vĩnh viễn. https://en.wikipedia.org/wiki/HTTP_602


Cảm giác ruột của tôi là anh ta không nên sử dụng 301 cho vòng chuyển hướng đầu tiên, mà chỉ cho lần thứ hai. Có bất kỳ lý do cụ thể nào mà anh ta chỉ có thể được biết đến với một người có trí tuệ SEO bí truyền?
Random832

@ Random832 Một vĩnh viễn yêu cầu tác nhân người dùng quên đi url cũ và ví dụ: cập nhật dấu trang để trỏ đến url mới (vì vậy lần sau, họ có thể truy cập trực tiếp url mới). Không có hại trong việc chuyển hướng sau này một lần nữa (hoặc thậm chí quay lại url ban đầu). Mặt khác, một chuyển hướng tạm thời nói với tác nhân người dùng giữ url gốc (bởi vì chuyển hướng có thể xảy ra với một mục tiêu khác hoặc không phải lúc nào cũng vậy). Do đó với các chuyển hướng tạm thời, giám sát chuyển hướng sẽ không bao giờ rơi xuống "mức chấp nhận được".
Hagen von Eitzen

@HagenvonEitzen Nó sẽ giảm xuống mức chấp nhận được khi các trình duyệt ngừng lấy địa chỉ IP của máy chủ cũ cho www.yourdomain.com, đây là một điều DNS và sẽ không bị ảnh hưởng bởi loại chuyển hướng HTTP được sử dụng. Và "bởi vì chuyển hướng có thể xảy ra ... không phải lúc nào cũng vậy" là hoàn toàn chính xác.
Random832

0

Âm thanh như bạn đang dự định thay đổi máy chủ tên của bạn cùng một lúc? Do cách phát hiện máy chủ tên, chúng mất nhiều thời gian để cập nhật hơn so với bản ghi thông thường - thường là khoảng 24 giờ hoặc lâu hơn.

Tôi đặc biệt khuyên bạn nên cập nhật DNS tại nhà cung cấp hiện tại trước khi thay đổi DNS hoặc thay đổi máy chủ tên 7 ngày trước khi bạn thay đổi IP trang web.

Các máy tính và trình duyệt hiện đại khá đáng tin cậy trong việc tuân theo TTL với DNS, nhưng bạn cần hiểu toàn bộ chuỗi để có kết quả tốt nhất.


Cảm ơn, và vâng, điều này phản ánh nhận xét của tôi dưới câu trả lời của Lightness, ở trên. Các trình phân giải đã làm mới máy chủ tên khá nhanh - trong vòng vài phút. Điều quan trọng là phải làm điều đó trước, sau đó đợi vài giờ trước khi thay đổi địa chỉ IP đích. Cả hai cùng một lúc là xấu ... rất xấu.
CC
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.