[팁] 개인 웹 공유
-
- 첨부파일 : personalweb.pdf (389.1K) - 다운로드
본문
요즘은 인터넷과 웹이 같은 것이라고 생각할 정도로 웹에 대한 중요성이 부각되고 있으며, 오프라인에서 할 수 있는 것은 온라인 상에서도 모두 가능하다는 생각을 가진 사람들도 늘고 있다. 물론 과장된 점이 없진 않지만, 이러한 환경을 만드는데 가장 큰 역할을 한 것이 웹이라 할 수 있다. 이렇듯 웹이 가장 큰 장점인 편리한 인터페이스를 앞세워, 자신의 영역속으로 다른 서비스들을 흡수하고 있다. 여기서는 단순히 다른 이의 웹 서버에 접속하여 사용하는 것을 벗어나, Mac OS X을 사용하여 웹 서비스를 제공하기 위해 알아야 할 것들에 대해서 설명을 하겠다.
현재 웹 서버로 사용되는 것으로는 Apache와 MS사의 IIS, Netscape-Enterprise 등이 있다. 이 가운데 Apache가 전체 시장의 절반 이상을 점유할 만큼 독보적인 입지를 구축하고 있으며, UNIX 기반인 Mac OS X 역시 Apache가 자체 내장되어 있어 따로 설치할 필요없이 사용이 가능하다.
2.1 웹 서버 구성
웹 서버의 구성단계:
1) HTML 등을 사용하여 웹 페이지를 작성한다. 작성시에 홈 페이지의 첫 화면을 나타내는 문서는 index.html로 이름을 준다. 웹 페이지를 작성하는 요령에 대해서는 이 책의 범위를 벗어나므로 언급을 하지 않겠다.
2) 시스템 환경설정에서 공유 아이콘을 클릭한다.
3) 서비스 탭을 클릭한다.
4) 개인 웹 공유를 켠다.
<그림 1. 개인 웹 공유를 활성화시키면, 웹 서버 구성이 끝난다.>
일단 이곳에서 개인 웹 공유를 켜게 되면, 외부에서는 두 가지 경로로 이 컴퓨터의 웹 서비스에 접근을 할 수 있다. 하나는 "http://210.111.4.2/"를 입력하여 이 컴퓨터의 웹 사이트로 접근을 하는 것이며, 다른 하나는 "http://210.111.4.2/~userID/"를 통해 개인 웹 공유를 활성화시킨 사용자의 개인 웹 사이트로 접근을 하는 방법이다. 즉, 웹 공유를 켜게 되면, 두군데를 통해 웹 서비스가 가능하다는 말이 된다.
전자의 경우는 다음과 같은 그림을 볼 수 있을 것이다.
<그림 2. 위 그림을 본다면, 정상적으로 웹 공유가 이루어지는 것이다.>
일단 이 그림을 볼 수 있다면, 웹 서비스가 정상적으로 작동하고 있다고 보면 된다. 이 그림(보통 웹 서버에 접속을 할때, 처음 보는 것은 index.html이다.)은 "/라이브러리/WebServer/Documents/" 폴더내에 존재하는 index 파일이다. 이것은 바꿔 말하면, 웹 공유를 작동시켜서 외부에서 접근을 하게 되면 이 디렉토리에 존재하는 웹 페이지를 보여 준다는 것을 의미하게 된다. 즉, 이곳에 파일들을 자신이 만든 웹 페이지 자료로 대치하면 이 컴퓨터의 웹 서버 구성이 이루어 진다는 것이다.
후자의 경우는 다음과 같은 그림을 볼 수 있을 것이다.
<그림 3. 위 그림을 본다면, 정상적으로 웹 공유가 이루어지는 것이다.>
이 그림은 홈폴더의 사이트 디렉토리에 존재하는 index.html 문서이다. 의심이 가면 이 파일을 열어보길 바란다. 같은 그림을 볼 수 있을 것이다. 전자와 마찬가지 개념으로 여기에 자신의 홈 페이지 구성 파일을 넣어두게 되면, 홈 페이지 구성이 끝나게 된다.
2.2 Apache의 환경 설정
웹 서버의 구성이 되었다고는 하지만, 초기 환경설정이 언제나 자신에게 알맞게 되어 있는 것은 아니다. Mac OS X에서의 웹 서버 구축이 몇번의 클릭만으로 이루어지는 것은 사실이지만, 그 세부 구성을 자신이 원하는대로 최적화시키는 것은 어디까지나 사용자의 몫인 것이다. 그러자면 터미널에서 구성 파일에 접근을 하여 변경을 해주어야 한다.
터미널에서 /etc/httpd라는 디렉토리로 이동을 하면, Apache 관련 파일들을 볼 수 있을 것이다. 이 디렉토리에 포함된 것들 중에서 httpd.conf가 Apache 설정 파일이다. 흔히들 유닉스나 리눅스에서는 텍스트 파일의 편집을 위해 vi 에디터나 emacs 등을 많이 사용하는데 Mac OS X에서는 텍스트 편집기로도 쉽게 편집을 할 수가 있다. root 계정에서 다음과 같은 명령을 터미널에서 실행하면 httpd.conf 파일이 텍스트 편집기로 열리게 된다. 물론 vi나 pico 같은 편집기도 사용이 가능하다.
open -a /Applications/TextEdit.app /etc/httpd/httpd.conf
이렇게 해서 httpd.conf 파일을 열면, 다음과 같이 크게 3가지의 섹션으로 구분되어 있는 것을 볼 수 있을 것이다.
?### Section 1: Global Environment
?### Section 2: 'Main' server configuration
?### Section 3: Virtual Hosts
섹션 1은 전체 환경 설정을 위한 부분이고, 섹션 2는 메인 서버에 관련된 부분이며, 섹션 3은 가상 호스트 관련 부분이다. 참고로 httpd.conf 파일에서 #로 처리되어 있는 모든 문장은 주석 처리된 것이다. 이 주석을 잘 사용한다면 설정이 좀 더 용이할 것이다. 그럼 httpd.conf 파일의 많은 설정들 가운데 중요한 것들에 대해서 각 섹션별로 설명하겠다. httpd.conf는 각 설정에 대한 설명이 주석 처리되어 있으므로 그것을 참조하거나, 더 많은 자료를 원한다면 http://www.apache.org(Apache 공식 홈페이지)나 http://www.apache.kr.net(한국 Apache 사용자 그룹)등의 사이트를 참조하길 바란다.
### Section 1: Global Environment 부분:
ServerType standalone
Apache 웹 서버의 실행 유형을 결정하는 부분으로 보통 standalone으로 설정한다. 이는 웹 서버가 POP3나 텔넷과는 달리 inetd 데몬의 영향을 받지 않고 독자적으로 실행되는 것을 의미한다.
ServerRoot
웹 서버의 설정 파일, 에러 파일, 로그 파일들이 저장되어 있는 곳을 지정하는 부분이다. 자신이 원하는 위치에 저장을 원한다면 수정을 할 수는 있지만, 대부분 그냥 사용을 한다.
KeepAlive On
KeepAlive(연결 지속성) 요소를 사용 가능하게 한다. 이것은 하나의 HTTP 세션에서 여러 개의 요청을 처리할 수 있도록 해주는 것으로 off로 설정하면 서버의 효율성이 떨어진다. 이것에 대해서는 RFC2068(Proposed Standard)을 참고하길 바란다.
MaxKeepAliveRepuests 100
KeepAlive가 On으로 설정된 경우, 지속성 연결 기간동안 처리할 수 있는 최대 요청 개수를 지정하는 지시자이다. 값을 0으로 하면 무한대로 설정된다. 높은 성능을 기대한다면 값을 크게 설정하는 것이 좋다.
KeepAliveTimeout 15
같은 연결의 같은 클라이언트로부터 다음 요청을 기다릴 때까지의 시간을 설정한다. 즉, 연결의 지속성을 유지하는 시간을 초단위로 지정하는 것이다.
MinSpareServers 1
MaxSpareServers 5
Apache는 접속속도를 향상시키기 위해, 웹 서비스 요청이 들어오면 처리해 줄 웹 서버 프로세스를 여러 개 띄워 클라이언트의 체감속도를 줄여주게 된다. 또한 Apache는 주기적으로 프로세스의 개수를 확인하는데, 위의 최대/최소 설정값과 다른 경우 새로운 프로세스를 생성하거나 제거함으로써 서비스에 능동적으로 대처하게 된다.
StartServers 1
Apache의 처음 시동시 만드는 웹 서버 프로세스의 개수를 지정한다.
MaxClients 150
자신의 웹 서버에 동시에 접속할 수 있는 클라이언트 수를 지정한다. 다시 말하면, Mac OS X 시스템에서 생성해 낼 웹 서버 프로세스의 최대 값을 지정하는 것이다. 이 값은 최대 512까지 변경 가능하고 한명의 사용자당 대략 3~4MB정도 필요하다고 추측하면 된다. 150~300사이의 값이 적당하다.
MaxRequestsPerChild 100000
하나의 웹 서버 프로세스가 장기간 수행되면 메모리 누수와 같은 현상이 발생하게 되므로 이러한 현상을 해결하기 위해서 일정 조건을 만족하면 웹 서버 프로세스를 자동 종료하게 하는 부분이다. 이 값을 설정하면 하나의 웹 서버 프로세스는 지정한 만큼의 클라이언트의 요청을 처리하고 자동 종료되게 된다. 0으로 설정하면 자동 종료는 이루어지지 않는다.
### Section 2: 'Main' server configuration 부분:
Port 80
웹 서비스는 기본적으로 80번 포트를 사용한다. 일반 사용자들이 굳이 이 번호를 바꿀 필요는 없을 것이다. 만일 1023 이하의 값을 지정하고자 한다면 root 계정으로 웹 서버를 실행해야 한다. 이 값을 수정하면 웹 서버에 접속할 때는 "http://servername:portnumber"같은 형식으로 접속을 해야 한다. 꼭 필요한 경우가 아니라면 80번을 쓰기를 권한다.
User www
Group www
웹 서버가 실행되는 권한을 지정하는 부분이다. 리눅스에서는 일반적으로 nobody를 사용하지만, Mac OS X에서는 이것을 사용하면 안된다. 변경없이 두길 권장한다.
ServerAdmin wepmaster@example.com
웹 서버의 관리자 전자메일 주소를 설정하는 부분이다. 이 메일 주소는 에러 페이지와 같은 일부 서버가 생성한 페이지에 나타나게 된다.
DocumentRoot "Library/WebServer/Documents"
이 부분은 웹 서버의 루트 디렉토리를 지정해 주는 부분이다. 즉, 웹 서비스를 위한 HTML 파일들을 저장해 놓은 디렉토리를 지정하여 주면 된다. 예를 들어, 앞에서 설명한 것처럼 웹 클라이언트 측에서 "http://210.111.4.2" 라고 브라우저에서 입력하면, 웹 서버 컴퓨터의 "Library/WebServer/Documents" 폴더 내의 index.html 파일을 전달하게 된다.
Options FollowSymLinks
AllowOverride None
지시자는 경로에서 지정한 디렉토리의 권한에 관한 설정을 하는 부분이다. 이 지시자는 HTML과 같이 ""를 사용하여 꼭 닫아줘야 한다. 위의 예시는 웹 서버 루트 디렉토리의 설정을 나타낸 것이다. 주의 할 것은 여기의 설정값들은 "경로"에서 지정한 디렉토리의 하위 디렉토리에까지 영향을 미친다는 것이다.
### Section 3: Virtual Hosts 부분:
이 부분은 가상 호스트에 관한 설정을 하는 부분이다. 가상 호스트란 하나의 물리적인 시스템에서 개별적인 도메인 이름을 가진 웹사이트를 여러 개 운영하는 방법을 말한다. 이런 가상 호스트 방식은 크게 두 가지 방법으로 구분되는데 하나는 IP Address 기반의 가상 호스트와 다른 하나는 Name Address 기반의 가상 호스트 방식이다.
NameVirtualHost *
Name Address 기반의 가상 호스트를 사용하려면 사용할 IP 주소를 지정해야 한다.
설정 부분
VirtualHost 지시자는 가상 호스트에서 사용할 전반적인 설정을 지정하는 지시자로 로 꼭 마감을 해줘야 한다.
최신글이 없습니다.
최신글이 없습니다.
댓글목록 0