PHP

Apache 웹서버 구축하기

Bucket List 2005. 12. 24. 10:23
▒ 강좌에 앞서..
본 강좌는 서버용 OS로 많이 쓰이는 Wow Linux 7.3 Paran R2 기본 APM 패키지를 바탕으로 하였으며 아파치 웹서버의 설치 과정등은 기타 리눅스 관련 커뮤니티나 본 사이트에도 많은 자료가 있기에 생략하며 httpd.conf 등과 같은 아파치 서버의 기본적이고 중심적인 설정 과정에 대하여만 설명토록 하겠습니다. 아울러 본 강좌는 초급 리눅서들을 대상으로한 자료임으로 중급자 이상의 리눅서 혹은 구루(Guru)들의 태클은 사양하겠습니다. 다만 강의에 보탬이 되는 리플이나 댓글등은 환영합니다.
2003. 05. 23. - Linuxer광민 -

▶ 아파치 서버의 설정

아파치 서버는 httpd.conf 라는 파일 하나만으로 가능합니다. 이전 버전등에서는 httpd.conf 외에도 access.conf 파일이나 srm.conf 파일등이 사용되었지만 최근에는 httpd.conf 만으로 설정하는 추세라 합니다. 참고로 access.conf 나 srm.conf 파일등은 httpd.conf 파일 세부설정에 추가 혹은 보조적인 역할을 합니다.

▷ httpd.conf의 설정 ◁

ㄱ. 파일의 위치 : /etc/httpd/conf/httpd.conf

ㄴ. 세부설정

- ServerType : 서버의 작동 방식에 대한 설정임.

ex) ServerType standalone : 아파치 웹 서버 데몬이 항상 작동하고 있는 형태입니다. 기본적으로 웹서버의 경우 standalone 방식을 많이 사용합니다.
ex) ServerType inetd : standalone 방식과는 달리 클라이언트의 요청이 있을때만 요청을 감지하여 데몬을 동작하는 방식으로 접속자가 많지않은 웹서버에 적용하며 클라이언트의 요청이 없을때는 데몬이 동작하지 않음으로 필요없는 메모리 잠식을 없앨수 있으나 사용자가 갑짜기 몰리거나 많을경우는 오히려 시스템 성능을 저하시킬수 있습니다.

- ServerRoot : 아파치 서버의 각종 설정파일이 담긴 디렉토리를 지정합니다.
ex) ServerRoot "/etc/httpd"

- #ResourceConfig conf/srm.conf : 앞에 # 주석을 제거할경우 srm.conf 파일을 사용을 합니다.

- #AccessConfig conf/access.conf : 역시 앞에 # 주석을 제거할경우 access.conf 파일을 사용을 합니다.

- Timeout 300 : 클라이언트가 서버에 응답을 요청했을때 300초 즉 5분이 지나도록 응답이 없으면 클라이언트 측에 Server down 이란 메시지가 출력됩니다.

- KeepAlive : 클라이언트가 요청한 것에 대한 서버의 수행이 끝나도 지정한 시간만큼 프로세서가 죽지않고 살아있는것을 설정해 줍니다. standalone 방식의 경우 기본적으로 on 옵션을 주게되며 inetd 방식일 경우에 원하는 시간을 정해줍니다. 필요없을경우는 당연히 Off 입니다.

- MaxKeepAliveRequests 100 : httpd 프로세서가 한 클라이언트에게서 받는 요청에 대한 최대 수행 갯수이여 100으로 설정할경우 101번째 요청은 새로운 프로세서가 떠서 처리하게 됩니다.

- KeepAliveTimeout 15 : 역시 프로세서가 클라이언트 측의 요청에 대한 처리를 수행후 죽지않고 15초간 대기하여 계속적으로 그 클라이언트의 요청을 받아들입니다.

- MinSpareServers 5 : 아파치 에서 사용하는 웹 서버 프로세서의 최소 숫자를 지장합니다. 기본적으로 아파치 웹서버는 사용자가 많을 경우를 대비해서 미리 여러개의 여분 프로세서를 생성해두어 필요시 처리하기 때문입니다.

- MaxSpareServers 20 : 위와는 반대로 최대 갯수겠죠 ㅡㅡ;;;;

- StartServers 5 : 하나의 클라이언트 측에서 서버에 접속할수 있는 최대 웹브라우져의 갯수입니다. 지정한 갯수 이상의 웹브라우져는 하나의 클라이언트측에서 서버에 접속할수 없습니다. 이는 서버의 시스템 자원을 효율적으로 활용하기 위함입니다.

- MaxClients 150 : 서버에 동시에 접속할수 있는 최대 사용자(클라이언트)의 숫자입니다. 최대 255까지 가능합니다.

- Listen 80 : 아파치 웹서버의 포트를 설정하는 것이며 기본적으로 웹 서버는 80포트를 사용합니다.

- Port 80 : Listen과 함께 웹서버의 포트를 지정해주는 곳입니다. 물론 둘다 80으로 해야겠죠 ㅡㅡ;

- User, Group : 아파치 웹서버의 프로세서를 동작시킬 사용자 계정 및 그룹을 성정합니다. 기본적으로 디폴트 값인 nobody 사용하여도 좋지만 보안적인 요소를 생각한다면 귀찮아도 사용자 계정과 그룹을 생성 및 관리해 주는것이 먹고살기 편합니다... ㅡ.ㅡ;;;;;

- ServerAdmin xfeel@xfeelis.pe.kr : 서버관리자의 메일을 표기합니다.

- ServerName ns.linuxer.com : 웹 서버의 호스트명(도메인)을 설정합니다.

- DocumentRoot "/home/users/linux/public_htm : 웹 서버에서 뿌려줄 홈페이지 의 각종 파일경로를 지정합니다.

- : 관리자가 아닌 일반 사용자들의 계정 경로입니다. (웹 호스팅시...)
AllowOverride FileInfo AuthConfig Limit
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec ExecCGI

Order allow,deny
Allow from all


Order deny,allow
Deny from all



- DirectoryIndex index.html index.htm index.shtml index.php index.php4 index.php3 index.cgi : 웹 페이지에서 보여질 인덱스 파일의 확장자를 정의 합니다. 기본적으로 index.html이 우선적으로 보여짐으로 수정을 원할경우 바꿔주거나 추가해주면 됩니다.

- ErrorLog /var/log/httpd/error_log : 아파치 웹서버 데몬의 프로세서가 실행되면서 생기게 되는 에러에 관한 로그파일의 저장 경로입니다.

: 가상 호스트 설정부분입니다. (xx부분은 아이피)
ServerName ns.linuxgun.com : 웹 서버의 호스트명DocumentRoot /home/users/linuxgun/public_html : 파일 경로


(xx부분은 아이피)
ServerAdmin xfeel@xfeelis.pe.kr : 서버관리자 이메일
DocumentRoot /home/users/사용자 계정명/public_html/ : 일반 사용자 계의
홈페이지 경로
ServerName towoomall.com : 일반 사용자의 호스트명(도메인)
ServerAlias towoomall.com www.towoomall.com : 호스트명의 별칭
ErrorLog /var/logs/towoomall.com-error_log : 일반사용자계정 에러 로그
파일 저장 경로
CustomLog /var/logs/towoomall.com-access_log common 일반사용자 계정
엑세스(접속) 로그 파일 저장경로


그외 몇개의 부분이 더있습니다만 귀차니즘과 필자의 수준문제로 생략하도록 하겠으며 위에 설정 내용만 모두 설정하셔도 웹서버는 무리없이 가동됩니다.


▷ httpd 데몬의 실행 ◁

위에 httpd.conf의 설정을 모두 마치셨다면 이제 아파치 데몬을 재시작 해야 합니다.
그래야만 정상적으로 웹서버가 가동되며 테스트를 하실수 있습니다.

/etc/rc.d/init.d/httpd restart



이상으로 아파치 서버에 대한 초급강의를 마치겠으며 다음시간에는 FTP서버 구축에 대하여 다뤄보겠습니다. 부족한 자료 참조해 주셔서 감사합니다.

 

 

 

 

-출처 : http://paper.cyworld.nate.com/paper/paper_item.asp?paper_id=1000032567&post_seq=21675&cpage=2&search_type=&search_keyword=

 

문제가 된다면 삭제하겠습니다!