본문 바로가기

IT기반지식/Windows

IIS에서 다른서버의 디스크/디렉토리를 가상 드라이브로 잡기


컨텐츠 서비스를 하는 중에 서버 용량이 초과되어 다른 서버를 증설하여 새로운 컨텐츠가 새 서버에 담기는 경우
기존 서버를 이용하여 새로운 서버로 접근하기 위한 간단한 방법이 필요하다. 물론 기존 서버에 ISAPI 필터를 프로그래밍 하여
처리하면 되지만. 귀찮으면 다음 방법을 쓰는 것도 미친 짓은 아닌것 같다.

1. 이렇게 하면 안되는 것
  - 다른 서버를 네트워크 드라이브로(L: 등) 잡아놓고 IIS에서 가상 디렉토리 설정하면 절대로 설정 되지 않는다.. "확인" 버튼이 활성화 되지 않음

2. 이렇게 하면 된다.(UNC 이용 - 범용명명규칙)
  * UNC : \\servername\sharename\path\filename  이런 방식으로 네트워크에 있는 파일을 엑세스 하는 방식

  - 가상 드라이브를 설정하는 화면에서 다른 서버/경로를 직접 지정하면 간단히 설정할 수 있다.
 
   - 물론 해당 지정된 서버에 Media라는 공유 디렉토리가 설정 되어 있어야 하겠지요..


3. 네트워크 드라이브이기 때문 페이지를 볼 권한이 없어서 보이지 않을 수 있습니다
   이때는 ACL을 설정해 주어야 하는데 다음을 참고하여 권한을 설정한다
 Cacls
파일의 액세스 제어 목록(ACL)을 표시하거나 수정합니다. 

cacls 파일이름 [/t] [/e] [/c] [/g 사용자:perm] [/r 사용자 [...]] [/p 사용자:perm [...]] [/d 사용자 [...]]

매개 변수 

파일 이름

지정된 파일의 ACL을 표시합니다.

/t

현재 디렉터리와 모든 하위 디렉터리에서 지정된 파일의 ACL을 변경합니다.

/e 

ACL을 바꾸지 않고 편집합니다.

/c

오류를 무시하고 ACL을 계속 변경합니다.

/g 사용자:perm

지정된 사용자 액세스 권한을 부여합니다. Perm은 아래와 같습니다. 

n 없음 

r 읽기

c 바꾸기(쓰기)

f 모든 권한

/r 사용자

지정된 사용자 액세스 권한을 실행합니다.

/p 사용자:perm

지정된 사용자 액세스 권한을 바꿉니다. Perm은 아래와 같습니다. 

n 없음 

r 읽기

c 바꾸기(쓰기)

f 모든 권한

/d 사용자

지정된 사용자 액세스를 거부합니다.

한 명령에서 여러 개의 파일이나 여러 명의 사용자를 지정할 수 있습니다. 

4. 위에 "Cacls"를 사용하지 않고도 다음 사항을 주의 하면 네트 공유가 잘 된다.

  - 현재 IIS를 운용하는 서버와 네트워크로 가상 디렉토리로 연결하고자 하는 서버와의 접근 아이디 및 비번이 동일해야 한다
    . administrator를 사용할 경우에 양 서버의 비번이 동일해야만 접근이 되고, 다를 경우에는 ACL 인증 권한 문제 오류(403) 오류가 발생하니 주의 해야함. (이문제로 오랜 시간을 허비 했다네)

  - 네트워크 가상 디렉토리 설정 단계 또는 설정후 해당 가상디렉토리 "속성" 창을 열어 연결 정보를 수정한다


  - "연결계정"을 클릭하여 가상 디렉토리를 이용할 서버에 접근하기 위한 로그인 정보를 지정한다