IIS 7 사이트를 다른 서버로 어떻게 마이그레이션합니까?


105

웹 사이트를 다른 서버로 이동하는 가장 좋은 방법이 무엇인지 궁금합니다 (모든 설정 포함).

  • 새 서버에서 사이트를 수동으로 다시 만듭니다 (명백한 이유로 유지 관리 할 수 ​​없음)
  • applicationHost.config 설정 파일 복사
  • appcmd를 사용하여 백업 및 복원 만들기
  • MSDeploy를 사용하여 새 컴퓨터에 사이트 게시
  • 타사 도구 사용

다른 사람들의 경험이 무엇인지 궁금합니다.


Microsoft는 웹 배포 (이 도구를 만든 후) 만 권장하므로 아래 답변을 읽기 전에 자신이 어떤 위험을 감수하고 있는지 확인하십시오.
Lex Li

답변:


134

IIS 관리자에서 서버 구성을 내 보냅니다.

  1. IIS 관리자에서 서버 노드를 클릭합니다.
  2. "관리"에서 공유 구성으로 이동합니다.
  3. "구성 내보내기"를 클릭합니다. (인터넷으로 전송하는 경우 암호를 사용할 수 있으며 USB 키를 통해 이동하려는 경우 땀을 흘리지 마십시오.)
  4. 이 파일을 새 서버로 이동

    administration.config
    applicationHost.config
    configEncKey.key 
    
  5. 새 서버에서 "공유 구성"섹션으로 돌아가 "공유 구성 활성화"를 선택합니다. 이러한 파일의 실제 경로에 위치를 입력하고 적용하십시오.

  6. 암호화 암호 (설정 한 경우)를 입력하고 IIS를 재설정해야합니다.

BAM! 가서 맥주 마셔!


8
파일을 복사하는 대신 서버 또는 사이트 패키지 가져 오기를 사용해야하지만이 역시 테스트하지는 않았습니다. 그러나 새 서버에 반드시 존재하지 않는 applicationHost.config에 파일 경로가 있다는 것을 알고 있습니다. 또한 현재 IIS에 사이트가있을 수 없으므로이 프로세스가 현재 실행중인 구성을 방해하지 않는다는 점을 언급해야합니다.
frogstarr78

16
마지막 단계는 아무리 강조해도 지나치지 않습니다. 매우 중요합니다.

7
최신 버전의 IIS로 마이그레이션하는 경우 좋은 생각이 아닙니다. 그렇지 않으면,이 입니다 그것을 할 수있는 방법은.
Roy Tinker 2015

1
나는 그것 때문에 안, 그것은 일할 수있는 궁금 : docs.microsoft.com/en-us/iis/manage/...
vaso123

1
IIS 공유 구성은 컴퓨터간에 설정을 마이그레이션하는 방법으로 설계되지 않았으므로이 답변에 따라 문제가 발생하더라도 다른 사람을 비난하지 마십시오.
Lex Li

25

MSDeploy는 IIS 팀이 권장하는 모든 콘텐츠, 구성 등을 마이그레이션 할 수 있습니다. http://www.iis.net/extensions/WebDeploymentTool

패키지를 만들려면 다음 명령을 실행합니다 (기본 웹 사이트를 웹 사이트 이름으로 대체).

msdeploy.exe -verb:sync -source:apphostconfig="Default Web Site" -dest:package=c:\dws.zip > DWSpackage7.log

패키지를 복원하려면 다음 명령을 실행하십시오.

msdeploy.exe -verb:sync -source:package=c:\dws.zip -dest:apphostconfig="Default Web Site" > DWSpackage7.log

1
감사합니다 Bill-도구를 보았지만 아직 베타 버전이기 때문에 조심했습니다.
Kalid

1
2016 년에도 여전히 '최첨단'이지만 MSDEPLOY 3.6은 작업하기가 정말 어렵습니다. 나는 그들이 언젠가 새로운 것을 만들기를 바랍니다.
Warren P

MSDeploy는 사이트를 올바르게 전송하지 않았습니다. 우리는 각 사이트의 애플리케이션을 포함하는 하나의 사이트로 끝났으므로 전체 구조가 잘못되었습니다.
brianary dec. 05

확실히 권장되는 방법이며 docs.microsoft.com/en-us/iis/publish/using-web-deploy/…docs.microsoft.com/en-us/iis/publish/using-web- 과 같은 설명서입니다. 배포 /… 는 사용자가주의해야 할 필수 단계와 핵심 사항을 마스터하는 데 매우 중요합니다. 인터넷에 관한 대부분의 문제는 이미 기사에서 답변되었습니다. 사람들이 이러한 작업에 충분한 시간을 할애한다면 Web Deploy는 사용하기 "어려운"도구가 아닙니다.
Lex Li

18

다음은 appcmd를 사용하여 사이트 구성을 내보내거나 가져 오는 방법에 대한 유용한 웹 사이트입니다. http://www.microsoftpro.nl/2011/01/27/exporting-and-importing-sites-and-app-pools-from-iis-7-and-7-5/


링크 주셔서 감사합니다. 이를 통해 사이트 ID와 다른 모든 것을 수정할 수 있었고 10 개의 서로 다른 응용 프로그램과 30 개의 서로 다른 가상 디렉터리를 설정할 필요가 없었습니다. 큰 시간 절약
2GDave 2014-08-28

이 접근 방식은 기본 종속성 (IIS 모듈 등)을 처리하지 않으므로 위험을 감수하고 사용하십시오.
Lex Li

12

Microsoft Web Deploy v3 는 모든 파일, 구성 설정 등을 내보내고 가져올 수 있습니다. 모든 파일을 새 서버로 가져올 준비가 된 zip 아카이브에 저장합니다. 최신 버전의 IIS (v7-v8)로 업그레이드 할 수도 있습니다.

http://www.iis.net/extensions/WebDeploymentTool

도구 설치 후 : IIS 관리 콘솔에서 서버 또는 웹 사이트를 마우스 오른쪽 버튼으로 클릭하고 '배포', '애플리케이션 내보내기 ...'를 선택하고 내보내기를 실행합니다.

새 서버에서 동일한 방법으로 내 보낸 zip 아카이브를 가져옵니다.


하지만 모든 파일이 필요합니다. 파일 가져 오기를 건너 뛰는 방법이 있습니까? 예를 들어 FTP 서버를 마이그레이션하는 경우 모든 파일을 선택하여 압축하려고합니다.
RayofCommand

2
@RayofCommand-배포 옵션을 선택할 때 "콘텐츠"목록을 지울 수 있습니다. 그러면 패키지에 모든 파일이 포함되지는 않습니다.
Zhaph-Ben Duguid

1
그러나 전체 서버 이동이 아니라 사이트별로 배포 할 때만 가능합니다.
Ethan Allen

1
대상 서버 (IIS8)에 MS 웹 배포를 설치 한 후 IIS 관리 콘솔에 웹 배포 옵션이 포함되지 않습니다.
brianary

1
패키지를 설치 한 후 "배포"메뉴도 없습니다.
Devil 's Advocate

3

appcmd를 사용하여 하나 또는 모든 사이트를 내 보낸 다음 새 서버로 다시 가져옵니다. iis7.0 또는 7.5 일 수 있습니다. appcmd를 사용하여 내보낼 때 암호가 해독 된 다음 다시 가져 와서 다시 암호화됩니다.


3

담당자 부족으로 댓글을 달 수 없습니다. 또 다른 제안자는 IIS의 하위 버전에서 상위 버전으로 마이그레이션 할 수 없다고 말했습니다. 일부 파일을 병합하지 않은 경우에도 해당되지만, chews가 게시 한 답변을 사용하여 IIS 7.5 사이트를 IIS 8.0으로 마이그레이션 한 것처럼 가능합니다.

내보내기가 생성되면 (II7.5) IIS7.5 서버의 리소스에 대한 참조가있는 두 개의 키 파일 (administration.config 및 applicationHost.config)이 있습니다. 예를 들어 DLL은 7.5에 특정한 공개 키 및 버전으로 참조됩니다. IIS8 서버에서는 동일하지 않습니다. 기능 구성도 다를 수 있습니다 (내가 동일하다는 것을 확인했습니다). 8에는 7.5에는 존재하지 않을 몇 가지 새로운 기능이 있습니다.

두 파일을 병합 할 정도로 용감하다면 작동합니다. IIS를 망쳐 서 한 번 제거해야했지만 두 번째로 설치했습니다.

나는 병합 도구 (비교를 넘어서)를 사용했고 동등한 것이 없으면 거대한 PITA가 될 것이지만 좋은 비교 도구 (5 분)를 사용하면 꽤 쉬웠습니다.

병합을 수행하려면 가져 오기를 시도하기 전에 8.0 파일을 내 보낸 7.5 파일과 비교해야합니다. 대부분의 경우 8.0 파일은 내 보낸 7.5 파일의 서버 관련 항목을 덮어 쓰고 사이트 / 앱 풀 관련 항목은 그대로 두어야합니다.

Administration.config가 거의 동일하고 많은 항목의 버전 정보가 없다는 것을 알았습니다. 이것은 쉬웠습니다.

applicationHost.config에는 훨씬 더 많은 차이점이 있습니다. 일부 항목은 순서가 다르지만 그렇지 않으면 동일하므로 각 차이점을 골라서 파악해야합니다.

병합하기 전에 7.5 내보내기 파일을 System32 \ inetsrv \ config \ Export 폴더에 넣었습니다.

위에서 언급 한 두 파일 모두에서 System32 \ inetsrv \ config 폴더를 System32 \ inetsrv \ config \ Export 폴더로 병합했습니다. 사이트 별 태그 / 요소 (예 : applicationPools, customMetadata, 사이트, 인증)를 제외한 FROM 파일의 모든 항목을 푸시했습니다. 특히, 내가 유지해야하는 사이트 별 "위치"태그 블록도 많았지 만 새 서버에는 유지해야하는 서버 별 기본값이있는 자체 "위치"태그 블록이있었습니다.

마지막으로, 서비스 계정을 사용하는 경우 이러한 캐시 된 암호는 정크이므로 앱 풀에 다시 입력해야합니다. 내 사이트 중 어느 것도 처음에는 작동하지 않았지만 필요한 것은 모든 앱 풀에 대한 암호를 다시 입력하는 것이었고 실행 중이었습니다.

댓글을 달 수있는 사람이이 게시물을 쓰레드 아래로 언급하면 ​​복잡한 구성으로 하나의 서버에 많은 사이트를 보유한 저와 같은 다른 사람에게 도움이 될 것입니다.

문안 인사,

스튜어트


실제로 병합 마이그레이션에 Stuart의 답변을 사용했지만 여전히 MS Web Deploy가 마음에 들지 않습니다.

1

제 경우에는 파일이 이미 복사되었으므로이 가이드의 단계를 따르는 가장 쉬운 방법을 찾았습니다. https://www.ryadel.com/en/exporting-importing-app-pools-and-websites-configuration-between -다중 IIS 인스턴스 /

AppPools / Websites를 내보내고 xml 파일을 대상 서버에 복사하고 AppPools를 가져온 다음 웹 사이트를 가져 왔습니다. 아주 잘 작동했습니다. 이것은 또한이 질문에 대한 또 다른 훌륭한 옵션입니다.


이것은 기본 앱 풀과 기본 웹 사이트를 덮어 쓸 수 없다는 오류를 표시했습니다.
devlin carnate

기본값의 이름을 다른 것으로 바꾸시겠습니까? 위에서 설명한 프로세스로 생성되었는지 확인하십시오.
Ralph

이것은 IIS7.5 (2008)에서 IIS10 (2019)으로가는 저에게 효과적이었습니다. Appcmd는 처음에 이미 존재하는 '기본 웹 사이트'에서 오류를 표시했습니다. 이름 변경이 작동하지 않아 기본 웹 사이트를 삭제했습니다. 그런 다음 가져 오기가 오류없이 실행되었습니다.
MTAdmin
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.