Activities, Files, Libraries, Mobile 및 Wikis로부터의 파일 다운로드를 관리하도록 IBM® HTTP Server를 구성합니다. 이 방법은 IBM WebSphere® Application Server를 사용하여 파일 다운로드를 관리하는 것보다 더욱 효율적입니다.
시작하기 전에
배치 옵션에서 설명한 대로 Activities, Files, Libraries, Mobile 및 Wikis 데이터는 공유 파일 시스템에 저장되어야 합니다.
Connections Content Manager는 파일 시스템의 선택적 파일 캐시를 사용하여 HTTP Server를 통해 파일을 제공합니다.
배치의 모든 IBM HTTP Server에는 파일에 대한 읽기 액세스 권한이 필요하고 모든 WebSphere Application Server에는 쓰기 액세스 권한이 필요합니다.이 태스크는 IBM HTTP Server를 설치의 일부로 구성하든지 간에 Connections를 설치한 후 필요합니다.
참고
공유 및 원격 네트워크 파일 시스템 요구사항의 경우, 시스템 요구사항에 자세히 설명된 각 지원 운영 체제에 대한 각주를 검토하십시오.
IBM HTTP Server가 파일을 다운로드하도록 구성하지 않으려면 WebSphere Application Server가 비동기식이 아닌 동기식으로 데이터를 전송하도록 구성해야 합니다. 이러한 구성은 너무 많은 메모리 사용으로 인한 오류를 피할 수 있게 합니다. 자세한 정보는 IBM WebSphere Application Server의 과도한 원시 메모리 사용 기술 노트를 참조하십시오.
이 태스크 정보
IBM HTTP Server를 포함한 기본 배치에서, 파일 다운로드 요청이 IBM HTTP Server에서 WebSphere Application Server로 전달됩니다. WebSphere Application Server는 파일 시스템에서 데이터 디렉토리의 파일에 액세스하여 IBM HTTP Server로 파일을 리턴합니다. 이 파일은 브라우저로 전달됩니다.
여러 명의 사용자가 파일을 다운로드하는 경우, 이 배치는 비효율적입니다. 부분적으로는 WebSphere Application Server가 단기 트랜잭션에 맞게 조정된 제한적인 스레드 풀을 가지기 때문 입니다. 또한, WebSphere Application Server는 파일 다운로드가 아닌, Java 플랫폼, Enterprise Edition 애플리케이션에 맞게 최적화되어 있습니다. 이 유형의 배치에서는 특히 전송 속도가 느린 경우 다운로드를 처리할 클러스터를 작성해야 합니다.
대신 IBM HTTP Server가 파일을 다운로드하도록 구성되면 다운로드를 보다 효율적으로 수행할 수 있습니다. IBM HTTP Server는 특히 파일을 지원하도록 설계되었기 때문입니다. 이 구성에서는 WebSphere Application Server가 보안 검사 및 캐시 유효성 검증과 같은 태스크를 수행할 수 있습니다.
이 환경을 구성하려면 IBM HTTP Server에 파일을 다운로드하도록 지시하는 추가 기능 모듈을 설치하십시오. 모듈이 설치된 경우, 다운로드 요청이 IBM HTTP Server에서 WebSphere Application Server로 전달됩니다. 그러나 파일 다운로드로 응답하는 대신 WebSphere Application Server는 응답에 특수 헤더를 추가합니다. 추가 기능 모듈은 헤더를 인식하고 IBM HTTP Server가 파일을 다운로드하도록 지시합니다.
이 구성에서는 Files, Mobile, 및 Wikis 데이터 디렉토리가 별명을 사용하여 IBM HTTP Server에서 사용 가능해야 합니다. (선택적으로, Connections Content Manager에서 컨텐츠 캐시 디렉토리가 사용 가능해야 할 수도 있습니다.) 이 구성은 보안 문제를 일으키므로 IBM HTTP Server 레벨에서 액세스 제어를 구성해야 합니다. 보안을 구성한 후, 특정 변수가 설정되지 않는 한 IBM HTTP Server를 통한 데이터에 대한 액세스가 거부됩니다. 그런 다음 WebSphere Application Server의 애플리케이션에 대한 요청은 변수를 설정하도록 구성됩니다. 즉, WebSphere Application Server를 패스 스루하는 요청만 데이터 디렉토리에 액세스할 수 있으며 WebSphere Application Server는 권한 부여자 역할을 합니다.
추가 기능 모듈을 사용하는 경우, IBM Connections 서비스 간 URL에 IBM HTTP Server 주소를 사용해야 합니다. 상호 서비스 URL 설정에 관한 자세한 정보는 상호 서비스 통신 문제점 해결 주제를 참조하십시오.
파일을 다운로드하도록 IBM HTTP Server를 구성하려면 다음 단계를 완료하십시오.
프로시저
아직 수행하지 않은 경우 파일 다운로드를 위해 구성할 계획인 IBM Connections 애플리케이션(활동, 파일, 라이브러리, 모바일 또는 위키)을 설치하십시오.
IBM Connections를 설치한 서버에서(Deployment Manager에서), connections_root/plugins/ihs/mod_ibm_local_redirect/platform 디렉토리로 이동하여 모듈 파일 (mod_ibm_local_redirect.so)을 찾으십시오. 지원 운영 체제에서 다음 디렉토리를 검색하십시오.
기본적으로, mod_env 모듈은 /modules 디렉토리에 설치됩니다. 이 모듈은 이미 로드되었거나 편집할 수 있는 주석 처리된 행일 수 있습니다.
데이터 디렉토리 루트에 대한 액세스 부여:
AIX 또는 Linux: IBM HTTP Server 사용자에게 데이터 디렉토리 루트에 대한 읽기 및 실행 액세스 권한을 부여합니다.
Microsoft Windows: IBM HTTP Server 사용자에게 데이터 디렉토리 루트에 대한 읽기 액세스 권한을 부여하십시오. 보안 최적화를 위해 사용자에게 쓰기 액세스 권한을 부여하지 마십시오.
참고
files-config.xml 또는 wikis-config.xml 파일에서 "스토리지 rootDirectory"를 검색하여 data_directory_root 경로를 찾을 수 있습니다. 이 속성에는 경로 자체 또는 값이 경로인 WebSphere Application Server 변수가 포함됩니다. files-config.xml 또는 wikis-config.xml 파일 열기에 관한 정보는 구성 특성 값 변경 주제를 참조하십시오. 속성이 변수를 포함하는 경우, 예를 들어, 값이 ${FILES_CONTENT_DIR}이면, WebSphere Application Server 콘솔에서 FILES_CONTENT_DIR 변수를 검사하여 경로를 찾으십시오. WebSphere 변수에 대한 자세한 정보는 WebSphere Application Server 환경 변수 변경 주제를 참조하십시오.
Connections Mobile 서비스가 설치된 경우, IBM HTTP Server에 FileDiff StoragePath에 대한 액세스도 부여해야 합니다. mobile-config.xml 파일의 FileDiff 섹션에서 FileDiff StoragePath 속성을 찾을 수 있습니다. mobile-config.xml 파일 편집에 관한 정보는 구성 특성 값 변경 주제를 참조하십시오. 이 속성은 경로 자체 또는 값이 경로인 WebSphere 변수를 포함합니다. 예를 들어, 변수의 값이 ${MOBILE_CONTENT_DIR}인 경우, WebSphere Application Server 콘솔에서 MOBILE_CONTENT_DIR 변수를 조사하여 경로를 찾으십시오. WebSphere 변수에 대한 자세한 정보는 WebSphere Application Server 환경 변수 변경 주제를 참조하십시오.
IBM Connections Content Manager의 경우, 데이터 디렉토리는 IBM HTTP Server 및 라이브러리 서버(또는 FileNet® Collaboration Services)에서 모두 사용할 수 있는 공유된 캐시 디렉토리입니다. Connections Content Manager의 경우 data_directory_root는 이 캐시 위치를 참조하고 11단계에서 구성됩니다.
일부 상황에서 데이터 디렉토리 루트에서 액세스 권한을 부여해도 사용자에게 적용되지 않을 수 있습니다. 예를 들어, FILES_CONTENT_DIR 값이 \\server\Shared\files\upload인 경우, 사용자에게 읽기 액세스 권한을 부여해도 공유 권한이 없기 때문에 유용하지 않습니다. 대신에 \\server\Shared 공유 위치에서 사용자에게 읽기 액세스 권한을 부여하십시오.
HTTP 서버에 oa-config.xml에 정의된 각 컨텐츠 저장소 루트에 대한 적절한 액세스 레벨을 지정해야 합니다. 컨텐츠 저장소 루트는 각 <store> 요소의 root.directory 특성에 정의되어 있습니다.
예를 들어, Linux 시스템의 파일 데이터 디렉토리 루트가 /opt/IBM/Connections/Data/Files인 경우, 다음 행은 해당 디렉토리에 대해 files_content 별명을 작성합니다.
alias /files_content /opt/IBM/Connections/data/shared/files/upload
라이브러리의 유사한 예:
alias /library_content_cache /opt/IBM/Connections/data/shared/ccmcache
모바일의 유사한 예제:
alias /mobile_content /opt/IBM/Connections/data/shared/mobile
위키의 유사한 예:
alias /wikis_content /opt/IBM/Connections/data/shared/wikis/upload
참고
활동의 경우 각 컨텐츠 저장소 루트에 대한 개별 별명을 정의해야 합니다. 예를 들어 다음과 같습니다.
alias /activities_content /opt/IBM/Connections/activities/content
이 단계에서 사용된 디렉토리를 작성해야 합니다.
참고
애플리케이션 컨텍스트 루트(/connections/filediff, /dm, /files, /mobile 또는 /wikis)를 별명 일부로 사용하지 마십시오. 다른 값을 사용할 수 있습니다. 예를 들어 /files/content가 아닌 /files_content를 사용하십시오. 애플리케이션 컨텍스트 루트는 애플리케이션 URL의 경로 파트입니다. 예를 들어, URL이 www.my.example.com/files인 Files 애플리케이션의 컨텍스트 루트는 /files입니다. 이 값은 LotusConnections-config.xml 파일의 files.href.prefix 특성에 나타납니다. 구성 파일 열기에 대한 정보는 공통 구성 특성 값 변경 주제를 참조하십시오.
Windows 시스템의 파일 경로는 따옴표로 묶고 항상 슬래시를 사용하십시오(예: "C:/Program Files/IBM/Connections/Data/Files").
예제에서는 HTTP 서버가 IBM Connections와 동일한 시스템에 있다고 가정합니다. HTTP 서버가 다른 시스템에 있는 경우, 환경에 적합한 네트워크 공유 경로를 사용하여 데이터 디렉토리를 지정하십시오. 예를 들어, UNC 네트워크 공유 형식(예: alias /files_content "//server/sharename/Files")을 사용하십시오.
별명 보안을 강화하려면, 다음 행을 7단계에서 추가한 행 뒤에 추가하여 httpd.conf 파일에 추가하십시오.
<Directory "data_directory_root">
Order Deny,Allow
Deny from all
Allow from env=REDIRECT_FILES_CONTENT or REDIRECT_LIBRARIES_CONTENT or REDIRECT_MOBILE_CONTENT or REDIRECT_WIKIS_CONTENT</Directory>
예를 들면 다음과 같습니다.
<Directory "/opt/IBM/Connections/activities/content">
Order Deny,Allow
Deny from all
Allow from env=REDIRECT_ACTIVITIES_CONTENT
</directory>
<Directory "/opt/IBM/Connections/data/shared/files">
Order Deny,Allow
Deny from all
Allow from env=REDIRECT_FILES_CONTENT
</Directory>
<Directory "/opt/IBM/Connections/data/shared/ccmcache">
Order Deny,Allow
Deny from all
Allow from env=REDIRECT_LIBRARIES_CONTENT
</Directory>
<Directory "/opt/IBM/Connections/data/shared/mobile">
Order Deny,Allow
Deny from all
Allow from env=REDIRECT_MOBILE_CONTENT
</Directory>
<Directory "/opt/IBM/Connections/data/shared/wikis">
Order Deny,Allow
Deny from all
Allow from env=REDIRECT_WIKIS_CONTENT
</Directory>
참고
이 정의는 REDIRECT_FILES_CONTENT 또는 REDIRECT_LIBRARIES_CONTENT 또는 REDIRECT_MOBILE_CONTENT 또는 REDIRECT_WIKIS_CONTENT이 지정된 요청만을 허용하여 데이터를 보호합니다. 원하는 환경 변수는 IBM HTTP Server 환경에 아직 없는 경우에만 사용하십시오.
IBM HTTP Server가 IBM Connections와 동일한 시스템에 있다고 가정합니다. IBM HTTP 서버가 다른 시스템에 있는 경우, 환경에 적합한 네트워크 공유 경로를 사용하여 데이터 디렉토리를 지정하십시오. 예를 들어, UNC 네트워크 공유 형식(예: <Directory "//server/sharename/Files">)을 사용하십시오.
활동의 경우 각 컨텐츠 저장소 루트에 대해 별도의 Directory 요소를 정의해야 합니다.
Activities, Files, Mobile 및 Wikis에 모듈을 사용하려면, 다음 행을 8단계에서 추가한 행 뒤에 추가하여 httpd.conf 파일에 추가하십시오.
<Location application_context_root>
IBMLocalRedirect On
IBMLocalRedirectKeepHeaders X-LConn-Auth,Cache-Control,Content-Type,Content-Disposition,
Last-Modified,ETag,Content-Language,Set-Cookie,Title,X-UA-Compatible
SetEnv FILES_CONTENT or LIBRARIES_CONTENT or MOBILE_CONTENT or WIKIS_CONTENTtrue
</Location>
application_context_root 값은 애플리케이션 URL의 마지막 파트입니다. 예를 들어, URL이 www.my.example.com/files인 Files 애플리케이션의 애플리케이션 컨텍스트 루트는 /files입니다. 이 루트는 기본값이 /files, /wikis 또는 /dm이지만 설치 후 단계에서 변경할 수 있습니다. LotusConnections-config.xml 파일의 files.href.prefix 특성에서 값을 볼 수 있습니다. 구성 파일 열기에 대한 정보는 공통 구성 특성 값 변경 주제를 참조하십시오.
모바일의 경우, application_context_root가 FileDiff 컨텍스트 루트입니다. 기본적으로 이 루트는 /connections/filediff입니다.
/connections/filediff의 위치는 X-Content-Length 헤더를 포함해야 합니다.
IBMLocalRedirectKeepHeaders를 지정하면 플러그인이 애플리케이션 서버로부터 지정된 헤더를 다시 계산하지 않고 보존합니다. 이 스펙은 애플리케이션이 해당 지시문을 IBM HTTP Server가 인식하지 못하는 content-type 및 content-disposition으로 설정한다는 점에서 매우 중요합니다.
환경에 추가 헤더가 필요한 경우(예를 들어, 프록시 캐시에 대해) 쉼표로 구분된 IBMLocalRedirectKeepHeaders 목록에 헤더를 추가할 수 있습니다. 이러한 추가는 리디렉션 동안 모듈이 추가 헤더를 보유하도록 보장합니다.
헤더 이름은 쉼표로 구분되어야 하며 쉼표 앞뒤에 공백이 없어야 합니다. 또한 모든 헤더 이름은 수에 관계 없이 한 행에 있어야 합니다.
SetEnv 값은 데이터 디렉토리에 액세스하기 위해 필요한 토큰을 설정합니다. 이 값은 8단계에서 Allow from env=에 설정한 REDIRECT_ 뒤의 값과 일치해야 합니다. 예를 들어, 7단계에서 REDIRECT_FILES_CONTENT를 설정한 경우 이 값은 SetEnv FILES_CONTENT true여야 합니다.
이러한 설정을 잠금 및 키 메커니즘으로 이해할 수 있습니다. Files, Library, Mobile 또는 Wikis 애플리케이션을 통해 전달되는 요청만 키를 갖고 애플리케이션은 권한이 부여된 사용자만 특정 파일을 잠금 해제할 수 있는지 확인합니다.
다음을 수행하여 IBM HTTP Server가 올바르게 안전하게 구성되었는지 테스트하십시오.
IBM HTTP Server를 다시 시작하십시오. 서버가 올바르게 로드되고 모듈 또는 구성 로드에 대한 로그 오류가 없는지 확인하십시오. 문제점이 있는 경우, 로드 모듈 및 구성 지시문에 오타가 없는지 확인하십시오.
http/https:host/alias에서 직접 별명 디렉토리에 액세스하고 허용이 거부되었는지 확인하십시오. 디렉토리에 액세스할 수 있는 경우, 8단계의 Order Deny, Allow; Deny from All; Allow from env가 모두 있는지 확인하십시오.
애플리케이션에 액세스하고 파일을 다운로드하여 실행되는지 확인하십시오. 모듈은 아직 사용 설정되지 않았습니다.
구성 파일 편집 주제의 단계를 사용하고 다음 특성 속성을 지정하여 files-config.xml, mobile-config.xml, oa-config.xml 또는 wikis-config.xml 파일을 체크아웃하십시오.
LIBRARIES_CONTENT가 cdhc_guardHeader에 대해 지정된 이름인 httpd.conf 파일에서 RequestHeader append LIBRARIES_CONTENT true를 지정하십시오.
다음 명령문을 추가하여 적절한 모듈을 로드하십시오.
LoadModule headers_module modules/mod_headers.so
구성하는 애플리케이션에 따라서 Activities, Files, Libraries, Mobile 또는 Wikis를 다시 시작하십시오.
파일을 다운로드하여 새 구성이 동작하는지 확인하십시오.
IBM HTTP Server가 파일을 다운로드하는지 테스트하십시오.
httpd.conf 파일을 열고 # 문자를 추가하여 <Directory> 요소에서 마지막 행을 주석 처리하십시오.
예를 들면 다음과 같습니다.
<Directory "data_directory_root">
Order Deny,Allow
Deny from all
#Allow from env=REDIRECT_FILES_CONTENT or REDIRECT_LIBRARIES_CONTENT or REDIRECT_MOBILE_CONTENT or REDIRECT_WIKIS_CONTENT
</Directory>
예를 들면 다음과 같습니다.
<Directory "/opt/IBM/Connections/data/shared/files">
Order Deny,Allow
Deny from all
#Allow from env=REDIRECT_FILES_CONTENT
</Directory>
<Directory "/opt/IBM/Connections/data/shared/ccmcache">
Order Deny,Allow
Deny from all
#Allow from env=REDIRECT_LIBRARIES_CONTENT
</Directory>
<Directory "/opt/IBM/Connections/data/shared/mobile">
Order Deny,Allow
Deny from all
#Allow from env=REDIRECT_MOBILE_CONTENT
</Directory>
<Directory "/opt/IBM/Connections/data/shared/wikis">
Order Deny,Allow
Deny from all
#Allow from env=REDIRECT_WIKIS_CONTENT
</Directory>
파일을 저장하십시오.
Files, Mobile 앱 또는 Wikis에서 파일을 다운로드해 보십시오. 새 구성이 올바르면 다운로드가 거부됩니다. HTTP 및 HTTPS 프로토콜에서 테스트하십시오(HTTPS가 사용된 경우).
httpd.conf 파일을 열고 a 단계에서 지정한 마지막 행에서 # 문자를 제거하십시오.
표준 IBM HTTP Server 오류 및 요청 로그에 문제점이 없는지 확인하십시오.
다음을 수행하여 Activities가 HTTP 서버에서 파일을 다운로드하는지 확인하십시오.
다음 추적을 사용으로 설정하십시오. com.ibm.openactivities.web.coreui.actions.superclass.*=all
활동에서 파일을 다운로드하거나 활동 목표 또는 항목/작업 설명에서 추가를 클릭하십시오.
trace.log 파일에서 다음과 유사한 행을 볼 수 있습니다. [2/5/13 16:16:18:134 EST] 00000090 OaDownloadAct 1 sun.reflect.GeneratedMethodAccessor86 invoke OaDownloadAction setting X-IBM-Local-Redirect header to : /activities_content/122/110/69aed142-0b89-4a7a-985a-cfd99cca1292
추가를 클릭할 때 확장된 설명이 표시되고 다운로드된 파일이 0바이트가 아닌지 확인하십시오. 확장된 설명을 볼 수 없고 다운로드한 파일의 길이가 0인 경우 구성이 올바르게 완료되지 않은 것입니다.