한 서버에서 다른 서버로 코드 전송

한 서버에서 다른 서버로 코드 전송

새 코드를 새 프로덕션 서버로 전송하고 싶었습니다.

개발 서버에 코드 파일이 있습니다.

내 로컬 컴퓨터에서 FTP를 사용하여 파일을 업로드하는 대신 한 서버에서 다른 서버로 코드를 전송하는 다른 방법이 있습니다.

내가 생각하는 것은 전체 코드의 zip 파일을 만들어서 웹루트에 넣을 것입니다. 링크를 통해 인터넷에서 액세스할 수 있도록http://www.mydomain.com/code.tar.gz 이제 다른 서버에서 명령을 실행하겠습니다.

wget http://www.mydomain.com/code.tar.gz 

이 전송이 몇 초 안에 완료됩니까...? 이 올바른 접근 방식이 무엇인지 알 수 있습니까?

답변1

가장 먼저 주목해야 할 점은 FTP가 좋은 생각이 아니라는 것입니다. 반드시 SCP를 사용해야 합니다.

다음으로 파일을 생성할 때 올바른 권한을 사용하여 파일을 생성해야 한다는 것입니다. 이를 수행하는 가장 쉬운 방법은 루트 사용자로 로그인하는 것입니다(그러면 원하는 사용자로 파일을 생성할 수 있습니다). 그러나 루트 scp/ftp 액세스를 허용하고 싶지는 않습니다. 즉, 파일을 푸시하는 것이 아니라 서버로 파일을 끌어오는 것입니다.

개발 시스템에 릴리스를 구축한 다음(올바르게 배포되었는지 확인할 수 있도록) rsync를 사용하여 이미지를 서버에 복제하는 것이 좋습니다.

scp를 사용하여 백업 이미지를 이동할 수 있지만 올바르게 압축을 풀려면 루트 권한이 필요할 수 있습니다. 그러나 문제가 발생하는 경우 유일한 방법은 전체 프로세스를 다시 반복하는 것입니다. rsync는 변경된 파일만 복사합니다.

답변2

실제로 가장 좋은 방법은 ANT 또는 빌드 스크립트를 사용하여 CVS/SVN/GIT 등에서 특정 태그를 사용하여 내보내는 것입니다. 그러면 다음에 코드를 업그레이드할 때 문제가 발생하면 언제든지 원래 코드베이스로 돌아갑니다.

실패하면 깨끗한 개발 환경에서 rsync를 사용하세요. 코드가 동일한 사용자에 의해 소유되고 실행되고 있는지 확인한 후 다음을 수행하십시오.

ssh devserver cd /path/to/webroot rsync -e ssh -avzP * prodserver:/path/to/webroot/

답변3

새 프로덕션 서버의 첫 번째 깔끔한 배포로 SSH 액세스 권한이 있는 경우 RSYNC 또는 SCP를 사용하십시오. 이것 좀 봐:Rsync 및 SSH 사용

Glen이 말했듯이 가장 좋은 배포 계획은 ANT를 사용하거나 자체 스크립트를 작성하여 코드를 내보내는 것입니다. 배포 중에 문제가 발생하면 롤백할 수 있습니다.

관련 정보