| Sun ONE Portal Server 6.2 관리자 설명서 |
9장
검색 엔진 로봇의 관리이 장에서는 Sun™ ONE Portal Server 검색 엔진 로봇과 해당 구성 파일에 대해 설명합니다. 다음 주제를 논의합니다.
검색 엔진 로봇 개요검색 엔진 로봇은 해당 도메인에서 자원을 확인하고 이에 대해 보고하는 에이전트입니다. 열거자 필터와 생성기 필터의 두 가지 필터를 사용하여 이를 수행합니다.
열거자 필터는 네트워크 프로토콜을 사용하여 자원의 위치를 찾습니다. 이 필터는 각 자원을 테스트하고 적절한 조건이 만족되면 표시합니다. 예를 들어, 열거자 필터는 HTML 파일에서 하이퍼텍스트 링크를 추출하고 이 링크를 사용하여 추가 자원을 찾을 수 있습니다.
생성기 필터는 자원 설명(RD)을 만들어야 하는지 여부를 결정하기 위해 각 자원을 테스트합니다. 자원이 테스트에 통과하면 생성기가 검색 엔진 데이터베이스에 저장되는 RD를 만듭니다.
로봇의 작동 방식
그림 9-1은 검색 엔진 로봇이 어떻게 작동하는지 보여줍니다. 그림 9-1에서 로봇은 URL 및 그와 연관된 네트워크 자원을 점검합니다. 열거자와 생성기가 각 자원을 테스트합니다. 자원이 열거 테스트에 통과하면 로봇이 여기에 추가 URL이 있는지 점검합니다. 자원이 생성기 테스트에 통과하면 로봇이 검색 엔진 데이터베이스에 저장되는 자원 설명을 생성합니다.
그림 9-1 로봇의 작동 방식
로봇 구성 파일
로봇 구성 파일이 검색 엔진 로봇의 작동을 정의합니다. 이 파일은 /var/opt/SUNWps/http-hostname-domain/portal/config 디렉토리에 있습니다. 표 9-1은 각 로봇 구성 파일에 대한 설명입니다. 이 표에는 2개의 열이 있습니다. 첫 번째 열에는 구성 파일이 있고 두 번째 열은 파일의 내용을 설명합니다.
참고
검색 서비스는 기타 두 가지 구성 파일을 사용합니다.convert.conf 및 import.conf. 이들 파일은 검색 서버에서 생성되며 일반적으로 직접 편집해서는 안됩니다.
검색 엔진 관리 인터페이스를 사용하여 대부분의 매개 변수를 설정할 수 있기 때문에 대개는 robot.conf 파일을 편집할 필요가 없습니다.
그러나 고급 사용자는 인터페이스를 통해 설정할 수 없는 매개 변수를 설정하기 위해 이 파일을 직접 편집할 수 있습니다.
로봇 프로세스 매개 변수 설정robot.conf 파일은 로봇에게 filter.conf의 적합한 필터를 가리켜주는 등 로봇에 대한 많은 옵션을 정의합니다. (이전 버전과의 역 호환성을 위해 robot.conf는 씨드 URL도 포함할 수 있습니다.)
robot.conf 파일을 편집할 때 iPlanet Directory Server Access Management Edition 관리 콘솔을 사용합니다. 직접 수동으로 편집할 수 있는 몇 가지 매개 변수를 "사용자 수정 가능한 매개 변수" 부분에서 자세히 설명합니다.
가장 중요한 매개 변수는 enumeration-filter 및 generation-filter로서 로봇이 열거와 생성을 위해 사용하는 필터를 결정합니다. 이들 매개 변수에 대한 기본값은 enumeration-default 및 generation-default로서 filter.conf 파일에서 기본적으로 제공되는 필터 이름입니다.
모든 필터는 filter.conf 파일에서 정의해야 합니다. filter.conf에서 고유 필터를 정의하는 경우, robot.conf에 필요한 모든 매개 변수를 추가해야 합니다.
예를 들어, my-enumerator라고 하는 새 열거 필터를 정의하는 경우 robot.conf에 다음 매개 변수를 추가해야 합니다.
enumeration-filter=my-enumerator
필터링 프로세스로봇은 필터를 사용하여 어떤 자원을 처리할지 그리고 이를 어떻게 처리할지를 결정합니다. 로봇이 자원에 대한 참조와 참조 자체를 찾으면 각 자원에 필터를 적용하여 이를 열거하고 검색 엔진 데이터베이스에 저장할 자원 설명을 생성할지 여부를 결정합니다.
로봇은 하나 또는 여러 씨드 URL을 검사하고 필터를 적용한 다음 씨드 URL을 열거하여 파생된 URL에 필터를 적용하는 식으로 작동합니다. 씨드 URL은 filterrules.conf 파일에서 정의됩니다.
필터는 필요한 초기화 작업을 수행하고 현재 자원에 비교 테스트를 적용합니다. 각 테스트의 목적은 자원을 허용하거나 거부하려는 것입니다. 필터에는 종료 단계도 있어서 이 때에 필요한 정리 작업을 수행합니다.
자원이 허용되면 이 자원은 필터를 거쳐 프로세스를 계속 진행할 수 있습니다. 자원이 거부되면 이 자원은 받아들여지지 않습니다. 거부된 자원은 필터에서 더 이상 처리되지 않습니다. 자원이 거부되지 않으면 로봇이 결과적으로 이를 열거하여 추가 자원을 찾으려고 시도합니다. 생성기도 자원에 대한 자원 설명을 만들 수 있습니다.
이러한 작업이 반드시 연결되는 것은 아닙니다. 어떤 자원은 열거되고 어떤 자원은 RD 생성으로 이어집니다. 많은 자원은 열거와 함께 RD 생성으로도 이어집니다. 예를 들어, 자원이 FTP 디렉토리라면 이 자원에는 일반적으로 그에 대한 RD가 생성되지 않습니다. 그러나, 로봇은 FTP 디렉토리의 개별 파일을 열거할 수 있습니다. 다른 문서에 대한 링크가 있는 HTML 문서는 RD를 받으면서 링크된 문서의 열거로도 이어질 수 있습니다.
다음 부분에서 필터 프로세스에 대해 자세히 다룹니다.
필터 프로세스의 단계
열거자 및 생성기 필터의 필터링 프로세스에는 5단계가 있습니다. 4개의 단계는 공통됩니다. 설정—초기화 작업을 수행합니다. 로봇의 사용 중에 한 번만 이루어집니다. 메타데이터—자원에 대해 사용할 수 있는 메타데이터를 바탕으로 자원을 필터링합니다. 메타데이터 필터링은 자원이 네트워크에서 검색되기 전에 자원 당 한번 이루어집니다. 표 9-2는 일반적인 메타데이터 유형의 예입니다. 이 표에는 3개의 열이 있습니다. 첫 번째 열은 메타데이터 유형이고 두 번째 열은 설명이며 세 번째 열은 예입니다.데이터—데이터를 기준으로 자원을 필터링합니다. 데이터 필터링은 네트워크에서 자원을 검색한 후에 자원 당 한 번 이루어집니다. 필터링에 사용할 수 있는 데이터로 다음이 있습니다. 및 종료—필요한 종료 작업을 수행합니다. 로봇의 사용 중 한 번만 이루어집니다. 자원이 데이터 단계를 통과하면 필터가 열거자인지 생성기인지에 따라 열거—검사할 다른 자원을 가리키는지 확인하기 위해 현재 자원을 열거합니다. 또는 생성—자원에 대한 자원 설명(RD)을 생성하고 이를 검색 엔진 데이터베이스에 저장합니다. 단계에 있게 됩니다.
단계는 다음과 같습니다.
- 설정—초기화 작업을 수행합니다. 로봇의 사용 중에 한 번만 이루어집니다.
- 메타데이터—자원에 대해 사용할 수 있는 메타데이터를 바탕으로 자원을 필터링합니다. 메타데이터 필터링은 자원이 네트워크에서 검색되기 전에 자원 당 한번 이루어집니다. 표 9-2는 일반적인 메타데이터 유형의 예입니다. 이 표에는 3개의 열이 있습니다. 첫 번째 열은 메타데이터 유형이고 두 번째 열은 설명이며 세 번째 열은 예입니다.
- 데이터—데이터를 기준으로 자원을 필터링합니다. 데이터 필터링은 네트워크에서 자원을 검색한 후에 자원 당 한 번 이루어집니다. 필터링에 사용할 수 있는 데이터로 다음이 있습니다.
- 열거—검사할 다른 자원을 가리키는지 확인하기 위해 현재 자원을 열거합니다.
- 생성—자원에 대한 자원 설명(RD)을 생성하고 이를 검색 엔진 데이터베이스에 저장합니다.
- 종료—필요한 종료 작업을 수행합니다. 로봇의 사용 중 한 번만 이루어집니다.
필터 구문
filter.conf 파일에 열거와 생성 필터에 대한 정의가 들어 있습니다. 이 파일에는 열거와 생성 모두에 대한 다수의 필터가 있을 수 있습니다. robot.conf 파일의 enumeration-filter 및 generation-filter 매개 변수에 의해 어떤 필터를 사용할지 지정되기 때문에 로봇이 이를 확인할 수 있습니다.
필터 정의는 제목, 본문 및 마지막의 잘 정의된 구조를 갖습니다. 제목은 필터의 시작을 확인하고 그 이름을 선언합니다. 예:
<Filter name="myFilter">
본문은 설정, 테스트, 열거 또는 생성 그리고 종료 중에 필터의 작동을 정의하는 일련의 필터 지시문으로 이루어집니다. 각 지시문은 함수 및 해당하는 경우 함수에 대한 매개 변수를 지정합니다.
마지막은 </Filter>로 표시됩니다.
코드 예제 9-1은 enumeration1이라는 필터를 보여줍니다.
코드 예제 9-1 열거 파일 구문
필터 지시문
필터 지시문은 RAF (Robot Application Function)를 사용하여 작업을 수행합니다. 그 실행 방법과 흐름은 obj.conf 파일의 NSAPI 지시문 및 SAF (Server Application Function)에 대한 것과 유사합니다. NSAPI 및 SAF와 마찬가지로 데이터는 pblocks라고도 하는 매개 변수 블록을 사용하여 저장 및 전송됩니다.
"필터링 프로세스"에 나열한 필터링 단계와 작업에 해당하는 6가지 지시문 또는 RAF 클래스가 있습니다.
각 지시문에는 고유한 RAF가 있습니다. 예를 들어, 메타데이터와 데이터 지시문에는 필터링 함수, 열거 지시문에는 열거 함수, 생성 지시문에는 생성 함수를 사용합니다.
내장 RAF와 고유 RAF를 작성하기 위한 지침은 Sun ONE Portal Server 6.1 Developer's Guide 에서 설명합니다.
필터 작성 또는 수정
대부분의 경우 필터를 처음부터 작성할 필요가 없습니다. 관리 콘솔을 사용하여 대부분의 필터를 만들 수 있습니다. 그런 다음 filter.conf 및 filterrules.conf 파일을 수정하여 필요에 따라 변경합니다. 이들 파일은 /var/opt/SUNWps/http-hostname-domain/portal 디렉토리에 있습니다.
그러나 더 복잡한 매개 변수 집합을 만들어야 하는 경우, 로봇이 사용하는 구성 파일을 편집해야 합니다.
필터를 작성하거나 수정할 때 다음 사항에 유념하십시오.
robot.conf 파일에서 수정할 수 있는 매개 변수, filter.conf 파일에서 사용할 수 있는 RAF 및 고유 RAF를 만드는 방법에 대해서는 Sun ONE Portal Server 6.1 Developer's Guide 를 참조하십시오.
사용자 수정 가능한 매개 변수robot.conf 파일은 로봇에게 filter.conf의 적합한 필터를 가리켜주는 등 로봇에 대한 많은 옵션을 정의합니다. 이전 버전과의 역 호환성을 위해 robot.conf는 씨드 URL도 포함할 수 있습니다.
관리 콘솔을 사용하여 대부분의 매개 변수를 설정할 수 있기 때문에 대개는 robot.conf 파일을 편집할 필요가 없습니다. 그러나 고급 사용자는 관리 콘솔을 통해 설정할 수 없는 매개 변수를 설정하기 위해 이 파일을 직접 편집할 수 있습니다. 이 파일의 예를 보려면 "예제 robot.conf 파일"을 참조하십시오.
표 9-3은 robot.conf 파일에서 사용자 수정 가능한 매개 변수 목록입니다. 이 표의 첫 번째 열은 매개 변수이고 두 번째 열은 매개 변수의 설명이며 세 번째 열은 예입니다.
표 9-3 사용자 수정 가능한 매개 변수
매개 변수
설명
예
auto-proxy
로봇에 대한 프락시 설정을 지정합니다. 프락시를 자동으로 구성하기 위한 JavaScript 파일이나 프락시 서버가 될 수 있습니다. 자세한 내용은 Sun ONE Portal Server 6.2 Administrator's Guide 를 참조하십시오.
auto-proxy="http://proxy_server/proxy.pac"
bindir
로봇이 PATH 환경에 바인딩 디렉토리를 추가할지 여부를 지정합니다. 이는 cmd-hook 매개 변수로 지정되는 것과 같이 사용자가 로봇에서 외부 프로그램을 실행하기 위한 추가 PATH입니다.
bindir=path
cmd-hook
로봇이 한 번의 실행을 완료한 후 실행할 외부 완료 스크립트를 지정합니다. 이는 명령 이름에 대한 완전한 경로여야 합니다. 로봇은 /var/opt/SUNWps/ 디렉토리에서 이 스크립트를 실행합니다.
기본값은 없습니다.
실행할 명령에 등록된 최소 하나의 RD가 있어야 합니다.
완료 스크립트의 작성에 대한 내용은 Sun ONE Portal Server 6.1 Developer's Guide 를 참조하십시오.
cmd-hook="command-string"
기본값은 없습니다.
command-port
관리 인터페이스나 로봇 제어 패널과 같이 다른 프로그램에서 명령을 받기 위해 로봇이 수신하는 소켓을 지정합니다.
보안상의 이유로 remote-access가 yes로 설정된 경우가 아니면 로봇은 로컬 호스트에서만 명령을 받습니다.
command-port=port_number
connect-timeout
네트워크가 연결 요청에 응답할 수 있는 최대 허용 시간을 지정합니다.
기본값은 120초입니다.
command-timeout=seconds
convert-timeout
문서 변환에 허용된 최대 시간을 지정합니다.
기본값은 600초입니다.
convert-timeout=seconds
depth
로봇이 점검할 씨드 URL(또는 시작 위치)의 링크 수를 지정합니다. 이 매개 변수는 깊이를 지정하지 않는 모든 씨드 URL에 대해 기본값을 설정합니다.
기본값은 10입니다.
-1의 값(depth=-1)은 링크 깊이가 무한대라는 것을 나타냅니다.
depth=integer
로봇을 실행하는 사람의 전자 메일 주소를 지정합니다.
웹 관리자가 해당 사이트에서 로봇을 실행하는 사람에게 연락할 수 있도록 이 전자 메일 주소는 HTTP 요청 헤더에서 사용자 에이전트와 함께 전송됩니다.
기본값은 user@domain입니다.
email=user@hostname
enable-ip
만들어지는 각 RD에 대한 URL의 IP 주소를 생성합니다.
기본값은 true입니다.
enable-ip=[true | yes | false | no]
enable-rdm-probe
서버가 RDM을 지원하는지를 결정하고 로봇이 이 매개 변수를 사용하여 마주치게 되는 각 서버에 쿼리를 보낼지 여부를 결정합니다. 서버가 RDM을 지원하면 이 서버가 고유 자원 설명 서버로 작용할 수 있기 때문에 로봇이 이 서버의 자원을 열거하지 않습니다.
기본값은 false입니다.
enable-rdm-probe=[true | false | yes | no]
enable-robots-txt
로봇이 방문하는 각 사이트에서 robots.txt 파일을 점검해야 하는지 여부를 지정합니다.
기본값은 yes입니다.
enable-robots-txt=[true | false | yes | no]
engine-concurrent
로봇이 사용할 사전 생성된 스레드 수를 지정합니다.
기본값은 10입니다.
이 매개 변수는 관리 콘솔에서 대화 방식으로 설정할 수 없습니다.
engine-concurrent=[1..100]
enumeration-filter
자원을 열거해야 하는지 결정하기 위해 로봇이 사용하는 열거 필터를 지정합니다. 이 값은 filter.conf 파일에서 정의된 필터의 이름이어야 합니다.
기본값은 enumeration-default입니다.
이 매개 변수는 관리 콘솔에서 대화 방식으로 설정할 수 없습니다.
enumeration-filter=enumfiltername
generation-filter
자원에 대한 자원 설명을 생성해야 하는지 결정하기 위해 로봇이 사용하는 생성 필터를 지정합니다. 이 값은 filter.conf 파일에서 정의된 필터의 이름이어야 합니다.
기본값은 generation-default입니다.
이 매개 변수는 관리 콘솔에서 대화 방식으로 설정할 수 없습니다.
generation-filter=genfiltername
index-after-ngenerated
검색 엔진을 위해 RD를 일괄 처리하기 전에 로봇이 이를 수집해야 하는 시간(분)을 지정합니다.
이 매개 변수를 지정하지 않으면 값이 256분으로 설정됩니다.
index-after-ngenerated=30
loglevel
로깅 수준을 지정합니다. loglevel 값은 다음과 같습니다.
기본값은 1입니다.
loglevel=[0...100]
max-connections
로봇이 수행할 수 있는 최대 동시 검색 수를 지정합니다.
기본값은 8입니다.
max-connections=[1..100]
max-filesize-kb
로봇이 검색하는 파일의 최대 파일 크기(kB)를 지정합니다.
max-filesize-kb=1024
max-memory-per-url / max-memory
각 URL에 의해 사용되는 최대 메모리(바이트)를 지정합니다. URL에 추가 메모리가 필요한 경우 RD가 디스크에 저장됩니다.
기본값은 1입니다.
이 매개 변수는 관리 콘솔에서 대화 방식으로 설정할 수 없습니다.
max-memory-per-url=n_bytes
max-working
로봇이 한 번에 작업할 수 있는 최대 URL 수인 로봇의 작업 집합 크기를 지정합니다.
이 매개 변수는 관리 콘솔에서 대화 방식으로 설정할 수 없습니다.
max-working=1024
onCompletion
실행을 완료한 후에 로봇의 작동을 결정합니다. 로봇은 유휴 모드로 들어가거나 루프백하여 다시 시작하거나 종료될 수 있습니다.
기본값은 idle입니다.
이 매개 변수는 cmd-hook 매개 변수와 함께 작동합니다. 로봇이 완료되면 onCompletion 작업을 수행한 다음 cmd-hook 프로그램을 실행합니다.
OnCompletion=[idle | loop | quit]
password
httpd 인증과 ftp 연결에 password가 사용된다는 것을 지정합니다.
password=string
referer
웹 페이지에 액세스할 때 로봇을 참조자로 확인하도록 설정된 경우 HTTP 요청에서 전송된 매개 변수를 지정합니다.
referer=string
register-user 및 register-password
검색 엔진 데이터베이스에 RD를 등록할 때 사용되는 사용자 이름을 지정합니다.
이 매개 변수는 검색 엔진 관리 인터페이스를 통해 대화 방식으로 설정할 수 없습니다.
register-user=string
register-password
검색 엔진 데이터베이스에 RD를 등록할 때 사용되는 비밀번호를 지정합니다.
이 매개 변수는 관리 콘솔에서 대화 방식으로 설정할 수 없습니다.
register-password=string
remote-access
이 매개 변수는 로봇이 원격 호스트로부터 명령을 받아들일 수 있는지를 결정합니다.
기본값은 false입니다.
remote-access=[true | false | yes | no]
robot-state-dir
로봇이 그 상태를 저장하는 디렉토리를 지정합니다. 이 작업 디렉토리에서 로봇은 수집된 RD의 수를 기록할 수 있습니다.
robot-state-dir="/var/opt/SUNWps/instance/portal/robot"
server-delay
로봇이 같은 사이트에 너무 자주 액세스하지 않도록 동일 웹 사이트에 대한 두 방문 사이의 기간을 지정합니다.
server-delay=delay_in_seconds
site-max-connections
로봇이 어떤 한 사이트에 수행할 수 있는 최대 동시 연결 수를 나타냅니다.
기본값은 2입니다.
site-max-connections=[1..100]
smart-host-heuristics
DNS 정식 호스트 이름을 순환시키는 사이트를 로봇이 변경할 수 있도록 합니다. 예를 들어, www123.siroe.com은 www.siroe.com으로 변경됩니다.
기본값은 false입니다.
smart-host-heuristics=[true | false]
tmpdir
로봇이 임시 파일을 만들 위치를 지정합니다.
이 값을 사용하여 환경 변수 TMPDIR을 설정합니다.
tmpdir=path
user-agent
서버에 대한 http-request에서 전자 메일 주소와 함께 전송된 매개 변수를 지정합니다.
user-agent=iPlanetRobot/4.0
username
로봇을 실행하는 사용자의 사용자 이름을 지정하고 httpd 인증과 ftp 연결에 사용됩니다.
기본값은 anonymous입니다.
username=string
예제 robot.conf 파일이 부분에서는 예제 robot.conf 파일을 설명합니다. 예제에서 언급된 매개 변수에는 나타낸 기본값이 사용됩니다. 첫 번째 매개 변수 csid는 이 파일을 사용하는 검색 엔진 인스턴스를 나타냅니다. 이 매개 변수의 값을 변경하지 마십시오. 이 파일에 있는 매개 변수의 정의에 대해서는 "사용자 수정 가능한 매개 변수"를 참조하십시오.
<Process csid="x-catalog://budgie.siroe.com:80/jack" \
auto-proxy="http://sesta.varrius.com:80/"
auto_serv="http://sesta.varrius.com:80/"
command-port=21445
convert-timeout=600
depth="-1"
# email="user@domain"
enable-ip=true
enumeration-filter="enumeration-default"
generation-filter="generation-default"
index-after-ngenerated=30
loglevel=2
max-concurrent=8
site-max-concurrent=2
onCompletion=idle
password=boots
proxy-loc=server
proxy-type=auto
robot-state-dir="/var/opt/SUNWps/https-budgie.siroe.com/ \
ps/robot"
server-delay=1
smart-host-heuristics=true
tmpdir="/var/opt/SUNWps/https-budgie.siroe.com/ps/tmp"
user-agent="iPlanetRobot/4.0"
username=jack
</Process>