질문/조언질답게시판

A서버의 회원들이 업로드한 이미지들(2015년~2019년)의 경로를 

 

B서버의 콜드 스토리지 경로로 바꾸려고 하는데요

 

어떻게 해야 대량의 이미지 경로들을 최대한 한 번에 바꿀 수 있을까요?

 

A서버 이미지 경로 -> B서버 이미지 경로로 오래된 이미지들만 마이그레이션

 

B서버로 경로를 옮긴 후에 경로만 바뀌고, 홈페이지의 이미지들은 계속 보여져야 합니다.

 

B서버는 이미지들만 있는 이미지 서버 입니다.

 

centos + nginx + mysql 조합입니다.

  • profile

    DB는 그대로 두고, nginx에서 B서버 주소로 301 redirect 설정하는 것이 가장 간단할 것 같습니다.

     

    단, 옮길 파일들의 주소와 그대로 남아있는 파일들의 주소가 명확하게 구분되어야 깔끔한 redirect 규칙을 작성할 수 있습니다. 예를 들어 XE는 첨부파일들이 날짜별로 구분된 폴더에 저장되지 않고 마구잡이로 섞여 있지요. 이런 경우에는 nginx에서 try_files 구문을 사용하여 "A서버에 파일이 존재하지 않는 경우에만 B서버로 301 redirect" 설정하는 방법도 있습니다.

     

    흔히 DB에서 치환하는 방법을 제일 먼저 떠올릴 텐데, 옮길 파일들과 DB에서 치환할 내용이 100% 일치하지 않으면 엑박이 발생합니다. HTML에서 파일명을 인코딩하는 방식도 여러 가지가 있으므로 100% 맞추기가 쉽지 않습니다. 용량이 부족해서 다른 서버로 옮긴 것 뿐이라면 301 redirect가 훨씬 편하지요.