템플리트를 사용하면 URL을 함께 그룹화하여 프록시가 해당 URL을 처리하는 방법을 구성할 수 있습니다. 클라이언트가 검색하려는 URL에 따라 프록시가 다르게 동작하도록 구성할 수 있습니다. 예를 들어, 클라이언트가 특정 도메인의 URL에 액세스할 때 사용자 이름 및 비밀번호를 반드시 입력하도록 요구할 수 있습니다. 또는 이미지 파일을 가리키는 URL에 대한 액세스를 거부할 수 있습니다. 파일 유형에 따라 서로 다른 캐시 새로 고침 설정을 구성할 수 있습니다.
이 장은 다음 내용으로 구성되어 있습니다.
템플리트는 URL의 모음이며 자원이라고 합니다. 자원은 단일 URL, 공통 사항이 있는 URL의 그룹 또는 전체 프로토콜일 수 있습니다. 템플리트의 이름을 지정하고 만든 다음 정규 표현식을 사용하여 해당 템플리트에 URL을 할당합니다. 이러한 방법으로 다양한 URL 요청을 서로 다르게 처리하도록 프록시 서버를 구성할 수 있습니다. 정규 표현식으로 만들 수 있는 모든 URL 패턴은 템플리트에 포함할 수 있습니다. 다음 표에서는 기본 자원을 나열하고 다른 템플리트에 대한 몇 가지 아이디어를 제공합니다.
표 16–1 자원 정규 표현식 와일드카드 패턴
정규 표현식 패턴 |
구성 대상 |
---|---|
ftp://.* |
모든 FTP 요청 |
http://.* |
모든 HTTP 요청 |
https://.* |
모든 보안 HTTP 요청 |
gopher://.* |
모든 Gopher 요청 |
connect://.*:443 |
HTTPS 포트에 대한 모든 SSL(보안) 트랜잭션 |
http://home\.example\.com.* |
home.example.com 웹 사이트의 모든 문서 |
.*\.gif.* |
.gif 문자열을 포함하는 모든 URL |
.*\.edu.* |
.edu 문자열을 포함하는 모든 URL |
http://.*\.edu.* |
.edu 도메인의 컴퓨터로 이동하는 모든 URL |
Proxy Server에서는 정규 표현식을 사용하여 자원을 식별할 수 있습니다. 정규 표현식은 문자열의 패턴을 지정합니다. 프록시 서버에서 정규 표현식은 URL에서 일치하는 패턴을 찾는 데 사용됩니다.
다음은 정규 표현식의 예입니다.
[a-z]*://[^:/]*\.abc\.com.*
이 정규 표현식은 .abc.com 도메인의 모든 문서와 일치합니다. 문서는 모든 프로토콜일 수 있으며 파일 확장자에 제한이 없습니다.
다음 표에서는 정규 표현식 및 해당 의미를 나열합니다.
표 16–2 정규 표현식 및 의미
표현식 |
의미 |
---|---|
. |
새 행을 제외하고 모든 단일 문자가 일치합니다. |
x? |
정규 표현식 x가 0 또는 1회 일치합니다. |
x* |
정규 표현식 x가 0회 이상 일치합니다. |
x+ |
정규 표현식 x가 1회 이상 일치합니다. |
x{n,m} |
x 문자가 일치합니다. 여기서 x는 최소 n회 이상 m회 이하 발생합니다. |
x{n,} |
x 문자가 일치합니다. 여기서 x는 최소 n회 발생합니다. |
x{n} |
x 문자가 일치합니다. 여기서 x는 정확하게 n회 발생합니다. |
[abc] |
대괄호 안의 모든 문자가 일치합니다. |
[^abc] |
대괄호 밖의 모든 문자가 일치합니다. |
[a-z] |
대괄호의 범위 내에 있는 모든 문자가 일치합니다. |
x |
x문자가 일치합니다. 여기서 x는 특수 문자가 아닙니다. |
\x |
특수 문자 x의 의미를 제거합니다. |
"x" |
특수 문자 x의 의미를 제거합니다. |
xy |
정규 표현식 x 발생 및 정규 표현식 y 발생이 일치합니다. |
x|y |
정규 표현식 x 또는 정규 표현식 y가 일치합니다. |
^ |
문자열의 시작이 일치합니다. |
$ |
문자열의 끝이 일치합니다. |
(x) |
정규 표현식을 그룹화합니다. |
이 예는 정규 표현식 이해의 정규 표현식을 사용하는 몇 가지 방법을 보여 줍니다.
[a-z]*://([^.:/]*[:/]|.*\.local\.com).*
[a-z]*는 모든 프로토콜의 문서와 일치합니다.
://는 (:) 및(//)와 일치합니다.
[^.:/]*[:/]는 (.),(:)또는 (/)를 포함하지 않고 뒤에 (:) 또는 (/)가 있는 모든 문자열과 일치합니다. 따라서 이 표현식은 정규화되지 않은 호스트 이름과 포트 번호가 있는 호스트와 일치합니다.
|.*\.local\.com은 local.com과 같은 정규화된 도메인 이름 호스트 이름과 일치하지 않지만 .local.com 도메인의 문서와 일치합니다.
.*는 모든 파일 확장자의 문서와 일치합니다.
정규 표현식 이해에 언급한 것과 같이 역슬래시(\)를 사용하여 특수 문자의 의미를 이스케이프하거나 제거할 수 있습니다. 마침표나 물음표와 같은 문자에는 특수 의미가 있으므로 자체 의미를 나타내는 경우에는 이스케이프해야 합니다. 특히 마침표는 많은 URL에 사용됩니다. 따라서 정규 표현식에서 마침표의 특수 의미를 제거하려면 앞에 역슬래시를 추가해야 합니다.
사이트에서 액세스할 수 있는 URL을 지정할 수 있는 와일드카드 패턴 목록을 만들 수 있습니다. 와일드카드는 사용 방법에 따라 정규 표현식 또는 쉘 표현식의 형태가 될 수 있습니다. 일반적인 규칙은 다음과 같습니다.
대상 URL과 일치하는 모든 패턴에 정규 표현식을 사용합니다. 여기에는 <Object ppath=...>, URL 필터와 NameTrans, PathCheck 및 ObjectType 함수가 포함됩니다.
액세스 제어를 위한 사용자 이름과 그룹 및 들어오는 사용자의 IP 주소나 DNS 이름을포함하여 들어오는 클라이언트 또는 사용자 아이디가 일치하는 모든 패턴에 쉘 표현식을 사용합니다(예: <Client dns=...>).
정규 표현식 와일드카드 패턴을 사용하여 여러 URL을 지정할 수 있습니다. 와일드카드를 사용하면 도메인 이름 또는 URL(URL에 특정 단어 포함)을 기준으로 필터링할 수 있습니다. 예를 들어, “careers”라는 문자열이 포함된 URL에 대한 액세스를 차단해야 하는 경우가 있습니다. 이렇게 하려면 템플리트에 대한 정규 표현식으로 http://.*careers.* 를 지정합니다.
정규 표현식 와일드카드 패턴을 사용하여 템플리트를 만들 수 있습니다. 그런 다음 해당 템플리트에 지정된 URL에만 적용되는 측면을 구성할 수 있습니다. 예를 들어, .GIF 이미지에 대해 한 가지 유형의 캐시 구성을 사용하고 일반 .html 파일에 대해서는 다른 유형을 사용할 수 있습니다.
Server Manager에 액세스하고 Templates 탭을 누릅니다.
Create Template 링크를 누릅니다. Create Template 페이지가 표시됩니다.
Template Name 필드에 만들 템플리트의 이름을 입력하고 OK를 누릅니다.
쉽게 기억할 수 있는 이름이어야 합니다. Server Manager에서 변경 사항을 저장하고 적용하도록 프롬프트가 표시됩니다. 나머지 단계에서 설명된 대로 템플리트에 대한 정규 표현식을 만든 후 변경 사항을 저장할 수 있습니다.
Server Manager에 액세스하고 Templates 탭을 누릅니다.
Apply Template 링크를 누릅니다.
Apply Template 페이지가 표시됩니다.
URL Prefix Wildcard 필드에 템플리트에 포함할 모든 URL을 포함하도록 정규 표현식 와일드카드 패턴을 입력합니다.
Template 목록에서 방금 추가한 새 템플리트의 이름을 선택합니다.
OK를 누릅니다.
Restart Required를 누릅니다.
Apply Changes 페이지가 표시됩니다.
Restart Proxy Server 버튼을 눌러 변경 사항을 적용합니다.
기존 템플리트를 제거할 수 있습니다. 템플리트를 제거하면 해당 템플리트에 대한 연결 구성이 모두 삭제됩니다. 예를 들어, TEST 템플리트에서 모든 URL에 대해 액세스 제어를 설정한 경우 TEST 템플리트를 제거하면 해당 템플리트에 포함된 URL에 대한 액세스 제어도 제거됩니다.
Server Manager에 액세스하고 Templates 탭을 누릅니다.
Remove Template 링크를 누릅니다.
Remove Template 페이지가 표시됩니다.
Remove 목록에서 템플리트를 선택합니다.
OK를 누릅니다.
Restart Required를 누릅니다.
Apply Changes 페이지가 표시됩니다.
Restart Proxy Server 버튼을 눌러 변경 사항을 적용합니다.
Server Manager에서 만든 템플리트를 보고 편집할 수 있습니다.
Server Manager에 액세스하고 Templates 탭을 누릅니다.
View Template 링크를 누릅니다.
View Template 페이지가 표시됩니다. 템플리트 이름 및 템플리트에 대한 정규 표현식이 나열되는 표에 템플리트가 표시됩니다.
기존 템플리트를 편집하려면 Edit Template Assignment 링크를 누릅니다. Apply Template 페이지가 표시됩니다.
Remove Resource 페이지를 사용하면 전체 정규 표현식 객체 및 해당 구성을 삭제할 수 있습니다. 예를 들어, gopher 자원을 제거하여 해당 자원과 연결된 모든 설정을 프록시 서버의 구성 파일에서 제거되도록 할 수 있습니다.