WEB
posted by 구름너머 2006. 7. 10. 09:36
[기획-한국 인터넷백서 2004] IPv4주소 3098만개 보유 `세계8위`
[디지털타임스 2004-04-29 11:53]
정보통신부와 한국전산원이 발간한 `한국인터넷백서 2004'는 국내외 인터넷 이용자수, 시장 및 기술현황 등을 한 눈에 살펴 볼 수 있도록 구성됐다. 올해로 5번째를 맞는 이번 백서는 우리나라의 인터넷 이용 인구가 310만명에 불과했던 1999년부터 3000만명을 육박하는 현재에 이르기까지 우리나라의 인터넷 산업 및 이용환경을 비롯한 다양한 인터넷 분야의 현황과 정책을 담고 있다. 이번 백서는 또 국내 중소기업의 정보화를 선도할 `빌려쓰는 기업정보화, ASP 발전형황'과 향후 유비쿼터스 환경 기반 인프라인 `광대역통합망 추진 계획'을 특집편에 수록하고 있다. 주요 내용을 요약 정리한다.

◇인터넷 자원현황=현재 널리 쓰이고 있는 IP주소는 32비트(약 43억개)로 구성된 IPv4이며, 주소 부족문제와 QoS 강화 등을 목적으로 신규 도입된 128비트(약 43억×43억×43억×43억 개)의 IPv6 주소 또한 활용이 늘어나고 있다.

인터넷 이용을 위한 기초 자원인 IPv4 주소의 상위 10개 국가별 보유현황을 보면, 미국이 약 18억6496만개(75.21%)로 독보적인 1위 차리를 차지하고 있으며, 일본이 1억 770만개(4.34%), 영국이 6773만개(2.73%)를 보유하고 있다. 우리나라는 3098만개(1.25%)로 세계 8위 수준의 보유율을 보였다.

사실상 무한의 IP주소를 제공할 것으로 기대되는 IPv6의 경우 역시 미국이 73개로 가장 많았고, 일본이 65개, 독일 51개, 스위스 41개, 네덜란드 31개, 영국 22개의 순으로 조사됐다. 우리나라는 18개로 영국에 이어 7위를 차지했고, 이어 프랑스와 이탈리아가 17개, 스웨덴이 16개로 나타났다.

◇인터넷 이용자 현황=인터넷 이용자는 국제적으로 표준화된 정의가 아직 없기 때문에 국가별로 상이한 정의와 측정방법에 따라 통계가 집계되는 실정이다.

전반적으로는 50개국 전체 인터넷 이용자 수가 1995년 3900만명에서 2002년 5억7600만명으로 14배 이상 증가했으며, 인구 1000명당 평균 이용자 수도 1995년 18명에서 2002년 263명으로 14배 정도 증가했다.

2002년 기준 인구 1000명당 인터넷 이용자는 스웨덴이 573명으로 1999년과 2000년에 이어 1위를 차지했으며 뒤를 이어 우리나라, 싱가포르, 미국, 네덜란드가 상위권을 형성하고 있다. 우리나라는 1999년 이후 급속한 인터넷 이용의 확산에 힘입어 1999년 11위, 2000년 6위, 2001년에는 1위를 기록했고, 2002년에는 인구 1000명당 552명으로 2위를 차지한 것으로 조사됐다.

◇초고속인터넷 가입자수=인터넷 콘텐츠가 점차 다양해지고 온라인 게임, 전자상거래, 각종 동영상 및 영화 등의 신규서비스 제공이 늘어가면서 초고속인터넷 서비스의 중요성이 높아지고 있다. 우리나라가 부동의 1위를 지키고 있는 초고속인터넷 가입자수는 2002년 6월 100명당 19.1명으로 2위보다 2배 가까이 높은 수치로 1위를 차지했으며, 캐나다(10.2명)ㆍ스웨덴(7명)ㆍ덴마크(6.7명) 등이 뒤를 이었다.

ITU가 발표한 초고속인터넷 이용자 수에서도 우리나라가 2002년말 100명당 21.3명으로 1위를 유지했고 홍콩이 14.6명으로 2위, 캐나다가 11.5명으로 3위를 차지했다.

정부가 주도하고 민간이 합심해 고품질 인터넷망 구축 및 서비스 제공에 힘써온 결과, 우리나라의 초고속인터넷 보급은 사례를 찾아보기 쉽지 않은 성공 사례로 평가되고 있다.

◇인터넷 기반기술 및 솔루션

국내 인터넷교환노드(Internet eXchange)는 한국전산원, KT, 데이콤, KINX에서 서비스를 제공하고 있다. 비영리 공공 인터넷망은 한국전산원의 KIX를 중심으로 연동되고 상용 ISP는 KT-IX, 데이콤-IX, KINX를 통해 연동되고 있다.

ISP와 IX간의 연결은 전용회선, 광케이블 방식 등으로 트래픽 규모에 따라 155Mbps∼1Gbps이상의 속도로 복수의 IX와 연결되어 있다. 2003년 12월 기준으로 KIX에는 초고속국가망(PUBNet), 초고속선도망(KOREN), 초고속연구망(KRONet) 등 비영리 공공망과 주요 상용망 등 10개 인터넷망과 연동되어 있고 연동대역폭은 30.5Gbps정도이다.

KT-IX는 총 21개 ISP를 연동하고 있으며 총 접속총량은 130Gbps규모이다. 데이콤-IX는 상용 ISP 39개가 접속되어 있으며 총접속용량은 92Gbps, KINX는 총 35개의 ISP를 연동하고 있고 총 접속용량은 44Gbps규모이다. 현재 국내 인터넷사용망은 KT, 데이콤, 온세통신, 하나로통신, 두루넷, 등 78개 업체가 인터넷서비스를 제공하고 있다. 이는 1998년 총 ISP수가 25개, 2001년 99개에서 2003년에는 78개로 약간 감소하는 추세이다.

우리나라는 2003년 국제전기통신연합(ITU)보고서에 의해 초고속인터넷서비스 보급률이 인구 100명당 21명으로 세계 1위로 성장했다. 가입자 유선망은 구리 전화선을 이용한 xDSL계열과 HFC망을 이용한 케이블 모뎀 계열로 분류할 수 있다. 이용자수 1110만명중 xDSL계열이 644만명, HFC망을 이용한 케이블모뎀 계열이 383만명규모로 xDSL계열이 앞서고 있다.

현재 국내에서는 이동전화, 무선호출, 주파수공용통신(TRS), 무선데이터통신 등의 이동통신 서비스를 제공하고 있으며 2003년 11말 현재 3389만명의 가입자를 확보하고 있다. 특히 이동전화서비스 가입자가 전체의 98.7%로 이동통신시장의 대부분을 차지하고 있다. 인구대비 보급률이 70%에 달하고 있다.

◇인터넷정책

정부는 인터넷 주소자원의 중요성 인식을 기반으로 인터넷 주소자원의 체계적인 관리를 통한 대국민 이용 편의성 증진을 위해 2003년 인터넷주소자원관리에 관한 법률을 제정했다. 이를 통해 공정하고 투명한 인터넷 주소정책의 수립과 함께 보다 체계적이고 효율적인 인터넷 주소자원 관리에 크게 기여할 것으로 기대된다.

현재 IP주소는 IPv4로 총 32비트 체계의 네트워크 부분과 호스트부분으로 구성되고 약 43억개의 주소공간을 활용할 수 있다. 하지만 IP주소의 수요급증에 따라 현재 사용중인 32비트 IPv4 주소는 향후 5∼10년내에 고갈될 것으로 예상되고 있다. 이에 대한 문제 해결 및 이동성, 보안, 그리고 QoS 강화를 통한 차세대 인터넷품질제고를 위해 128비트의 IPv6주소체계의 도입 및 상용화를 추진중이다.

정통부는 국내외 차세대 인터넷 기반을 확보하기 위해 2001년 인터넷 신주소체계(IPv6)도입을 통한 차세대 인터넷 기반구축 계획을 발표했고, 2004년 3월 IPv6 보급촉진 기본계획을 확정했다. 정부는 IPv6 활성화를 위해 광대역통합망 구축사업과 연계해 IPv6를 정부 및 공공분야에 선도적으로 보급한다는 방침이다.

김홍식 kimhs@dt.co.kr

'WEB' 카테고리의 다른 글

엑셀 특수문자표  (0) 2006.10.25
부산시 인터넷교환노드 구축[2002/10/8]  (0) 2006.07.10
로그인관리  (0) 2006.03.28
소스보기  (0) 2006.03.04
WLS : 데이터 전송시 성능저하(AIX플랫폼)  (0) 2006.02.17
WEB
posted by 구름너머 2006. 3. 28. 18:36
WEB
posted by 구름너머 2006. 3. 4. 09:53

<body oncontextmenu="return false" ondragstart="return false" onselectstart="return false">

ESC

CTRL

Test


★1. Shift 와 F10 을 같이 누르면

★2. 마우스 오른쪽버튼을 누르고 Enter을 친후
빠르게 다시한번 마우스 오른쪽버튼을 누르면 됩니다.

★3.세번째,

'Ctrl + 오른쪽 마우스 클릭'
컨트롤+오른쪽 마우스 클릭을 하시면 컨트롤 키를 막아놓지 않은 페이지에서는 유용하게 쓰입니다.

★4.'ESC + 오른쪽 마우스 클릭'을 계속해보세요.
오른쪽 마우스 클릭 하지 말라는 경고메세지가 나오면
ESC키를 누르고 다시 오른쪽 마우스 클릭을 몇 번 하다보면
소스보기 메뉴가 나옵니다.

WEB
posted by 구름너머 2006. 2. 17. 10:43

AIX 플랫폼에 WebLogic 구동시 문제가

발생할 수 있네요.

유첨을 참고하세요.^^

chunksize.pdf

'WEB' 카테고리의 다른 글

로그인관리  (0) 2006.03.28
소스보기  (0) 2006.03.04
ChunkUtil에 의한 WLS 응답 속도 지연  (0) 2006.02.17
MS, 오는 4월까지 IE 브라우저 설계변경  (0) 2006.01.25
html태그사전  (0) 2005.10.14
WEB
posted by 구름너머 2006. 2. 17. 10:40

ChunkUtil.pdf

www.bea.co.kr 23

Bea Enterprise Solution Technical News

ChunkUtil 의한 WLS 응답 속도 지연

1.제품 : WLS

2.사용 OS : 모든 플랫폼(platform)

3.작성일 : 2002/11/16

4.이슈사항 : 서버로부터 응답 속도가 느려지고, CPU 소모량이 많은 경우에는 먼저 해당 WLS 서버의 thread 들이 수행하는 일을

확인해 보는 것이 좋다. 이를 위해서‘kill -3’ 해당 프로세스에 보내서, 해당 JVM thread dump 확인을

하게 된다.

그런데, dump 내용에서 다음과 같이

"ExecuteThread: '49' for queue: 'default'" daemon prio=5 tid=0x32de7818 nid=0xf18 runnable

[0x345bf000..0x345bfdbc]

at java.net.SocketOutputStream.socketWrite(Native Method)

at java.net.SocketOutputStream.write(SocketOutputStream.java:91)

at weblogic.servlet.internal.ChunkUtils.writeChunkTransfer(ChunkUtils.java:224)

at weblogic.servlet.internal.ChunkUtils.writeChunks(ChunkUtils.java:200)

at weblogic.servlet.internal.ChunkOutput.flush(ChunkOutput.java:274)

at weblogic.servlet.internal.ChunkOutput.checkForFlush(ChunkOutput.java:347)

at weblogic.servlet.internal.MultibyteOutput.write(ChunkOutput.java:467)

at weblogic.servlet.internal.ChunkOutputWrapper.write(ChunkOutputWrapper.java:95)

at weblogic.servlet.internal.ChunkWriter.write(ChunkWriter.java:37)

at java.io.Writer.write(Writer.java:148)

at java.io.PrintWriter.write(PrintWriter.java:208)

at java.io.PrintWriter.write(PrintWriter.java:224)

at java.io.PrintWriter.print(PrintWriter.java:355)

at java.io.PrintWriter.println(PrintWriter.java:492)

at xxx.yy.com.jsp.UvJspBase.popUpErrorPage(UvJspBase.java:1104)

at xxx.yy.com.jsp.ScreenJspBase.service(ScreenJspBase.java:169)

at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:265)

at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:200)

at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:2546)

at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2260)

at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)

at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)

ChunkUtil 클래스의 writeChunkTransfer( ) 혹은 writeChunkNoTransfer( ) 메소드 호출을 수행하는 thread

많은 경우가 종종 있다.

Technical Tip WEBLOGIC

5.해결안 :JSP 수행을 경우에 브라우저로 보내기 위한 화면을 내부 버퍼에 구성을 하고, 완성이 되면 이를 내려보내게 된다.

그런데, 버퍼의 크기가 default로는 8KB 해당한다. 따라서, 이보다 화면을 내려보내야 경우에는 중간에

해당 버퍼를 flush하는 작업이 일어나게 된다. 이런 flushing 작업은 클라이언트 브라우저로부터 ack 받아야

되므로, IO wait 상태가 발생하게 된다. 이런 과정은 thread 하여금 많은 시간을 대기하게 한다. 이런 대기는 화면

크기가 30KB라면 7 발생하게 되어서 상당한 부하를 있다.

이와 같은 지연 현상을 줄이기 위해서는 화면을 보내는 JSP 대해서는 충분한 버퍼를 사용할 있도록 함으로써

반복적인 flushing 작업을 줄이고, 가능하면 1회의 데이터 전송으로 작업이 끝날 있도록 해야 한다.

먼저 thread dump 내용을 살피시면 해당 JSP페이지를 확인할 있다.

위의 경우는 xxx.yy.com.jsp.ScreenJspBase.service() 호출되고 있으므로, xxx.yy.com.jsp 팩키지의

ScreenJspBase 확인하시면 된다. 그리고, 해당하는 페이지의 크기를 확인하여 충분한 크기의 버퍼를 아래와 같이

설정하면 된다.

<%@ page buffer=”64kb”%>

'WEB' 카테고리의 다른 글

소스보기  (0) 2006.03.04
WLS : 데이터 전송시 성능저하(AIX플랫폼)  (0) 2006.02.17
MS, 오는 4월까지 IE 브라우저 설계변경  (0) 2006.01.25
html태그사전  (0) 2005.10.14
아파치 httpd.conf 환경설정  (1) 2004.12.01
WEB
posted by 구름너머 2006. 1. 25. 11:52

MSDN 관련 링크 : http://s.microsoft.com/korea/windows/ie/activex/faq/default.mspx

개발자들만 영향이 가는군요....쩝...!

MS, 오는 4월까지 IE 브라우저 설계변경
[머니투데이 2006-01-23 12:02]

[머니투데이 성연광 기자]플래시를 이용한 광고나 동영상, 게임 서비스를 제공해왔거나 인터넷 익스플로러(IE) 기반의 메일 및 문서 시스템을 사용하는 국내 기업 및 기관들 중 상당수가 오는 4월까지 사이트를 재수정하는 불편을 감수해야할 것으로 보인다.

국내 대다수의 PC 이용자들이 웹브라우저로 사용해온 마이크로소프트 인터넷 익스플로러(MS IE)의 액티브X 컨트롤 실행 방식이 일방적으로 변경되기 때문이다.

한국마이크로소프트는 23일 "기존 인터넷 익스플로러의 액티브X 컨트롤 실행방식을 수정키로 방침을 확정했다"며 "오는 4월까지 두차례에 걸쳐 업데이트 형태로 모든 인터넷 익스플로러(IE) 사용자들에게 적용될 예정"이라고 밝혔다.

그동안 국내 플래시 광고나 콘텐츠를 제공해왔던 인터넷기업과 웹기반의 문서 프로그램을 사용해왔던 기업들 중 상당수가 하이퍼텍스트(HTML) 문서에 'object', 'applet', 'embed' 등의 태그를 삽입함으로써 엑티브 X 컨트롤을 자동실행하는 방식으로 설계해왔으나, 이번 MS의 IE설계변경에 따라 앞으로는 이같은 방식을 사용할 수 없게됐다.

가령, 플래시 광고의 경우, 그동안에는 이용자가 웹사이트에서 플래시 광고나 콘텐츠를 클릭하는 것만으로 링크된 사이트에 직접 접속할 수 있었으나, 새로운 IE버전이 적용될 경우, 한번 더 추가적으로 클릭해줘야만 연결된다.

IE 기반의 이메일 편집기나 문서 편집기를 이용해온 기업과 기관들의 경우에도 그동안에는 해당 사이트에 접속하는 것만으로 이들 프로그램이 자동 실행됐으나, 새로운 IE 버전이 적용되면, 프로그램을 활성화시키기 위한 또다른 작업이 필요하다.

이들 기업이 예전 서비스 방식을 그대로 유지하기 위해선 MS가 제공하는 재코딩 방식을 이용해서 웹 페이지의 스크립트를 변경해야만 한다.

MS는 설계 변경된 IE 패치를 오는 2월15일 윈도 업데이트를 통해 1차적으로 기존 IE 사용자에게 선택적으로 적용할 수 있도록 하고, 오는 4월 12일에는 인터넷 익스플로러 보안업데이트(패치)를 통해 모든 IE 사용자들에게 의무적으로 적용한다는 방침이다.

이와 관련, 한국MS는 이달 초 IE 설계변경에 따른 국내기업들의 웹페이지 변경작업을 지원하기 위한 TFT팀을 구성, 한국정보보호진흥원(KISA)와 한국인터넷기업협회 등 국내 관련 기관과 협조해 오는 4월까지 서울을 비롯한 전국 주요도시에서 웹사이트 개발자들을 위한 세미나와 간담회를 개최한다는 방침이다.

이번 MS의 인터넷 익스플로러(IE)의 설계변경은 IE의 액티브X 컨트롤 실행방식을 놓고 2003년부터 캘리포니아주립대와 이올라스 테크놀로지가 제기한 특허침해소송에 따른 것이다.

이 과정에서 MS가 이올라스측의 협상대신 굳이 IE 설계를 변경키로 한 것은 이올라스측과의 법정소송 장기화에 따른 후속조치다. 여기에 액티브X 컨트롤 기술 자체가 보안 문제에 취약하다는 지적과 함께 전세계적으로 거의 사용되지 않지 않는 점도 결정적 요인으로 작용했다.

그럼에도 불구하고, 이번 MS의 IE 설계변경에 대한 직접적인 배경이 보안정책 자체보다는 특허소송에 따른 우회 목적이 더 크다는 점에서 곱지않은 시각이 팽배해지고 있다.

MS 관계자는 "다른 나라에 비해 유독 우리나라가 액티브 X 컨트롤 사용비중이 높은 것은 사실이지만, 인터넷 기업들의 멀티미디어 서비스나 금융권의 인터넷뱅킹 시스템의 경우에는 별다른 영향을 받지 않을 것"이라고 말했다.

한편, 액티브 X 컨트롤(Active X Control)이란 MS 인터넷 익스플로러에서 멀티미디어 파일을 재생하는 방식 중 하나로, 썬마이크로시스템의 자바(Java) 기술에 대응하기 위해 개발됐다.

성연광기자 saint@

<저작권자 ⓒ '돈이 보이는 리얼타임 뉴스' 머니투데이>

'WEB' 카테고리의 다른 글

소스보기  (0) 2006.03.04
WLS : 데이터 전송시 성능저하(AIX플랫폼)  (0) 2006.02.17
ChunkUtil에 의한 WLS 응답 속도 지연  (0) 2006.02.17
html태그사전  (0) 2005.10.14
아파치 httpd.conf 환경설정  (1) 2004.12.01
WEB
posted by 구름너머 2005. 10. 14. 11:19
html태그사전.zip
WEB
posted by 구름너머 2004. 12. 1. 09:56
아파치 httpd.conf 환경설정 | 리눅스2004/11/21 16:06
http://blog.naver.com/hiteman1004/140007975613

### Section 1: Global Environment

전제환경설정 파트로 Section 1에서 설정하는 것들은 아파치 웹서버에
전반적인 영향을 미친다.

ServerType standalone

서버의 구동방법으로는 standalone과 inetd방식이 있는데, standalone
방식은 하나의 웹데몬(아파치서버)이 클라이언트의 접속을 모두 처리하는
방식으로 응답속도가 빠른 방법으로 주로 이방식을 사용한다. inetd 방식은
inetd라는 시스템의 /etc디렉토리 끝에 존재하는 inetd라는 슈퍼데몬이
클라이언트의 접속요구가 있을 때마다 웹서버를 구동하는 방식이다.
일반적으로 응답속도가 빠르고 효율적인 standalone으로 설정하여 사용한다.


ServerRoot "/usr/local/apache"

아파치서버의 홈디렉토리를 지정하며 절대경로로 지정한다. 이후로 나오는
대부분의 패스들은 이 경로에 대한 상대경로로 지정이 된다. 예를 들어
환경설정파일, 에러로그파일등의 상대경로의 기준이 되는 위치이다.


LockFile logs/accept.lock

아파치 컴파일시 USE_FCNTL_SERIALIZED_ACCEPT나
USE_FLOCK_SERIALIZED_ACCEPT으로 컴파일 했을 때 사용되는
LockFile의 경로지정시에 사용된다. 가급적 기본값으로 사용한다.


PidFile logs/httpd.pid

PidFile 설정은 ServerType을 Standalone으로 설정했을때만 유효한
것으로 아파치 서버의 프로세스가 생성되어 있을 때 그 프로세서ID(PID)를
기록하는 파일을 지정한다. 당연히 아파치서버가 재시작되거나 과부하로
인해 PID가 바뀌게 될 경우에는 이 파일의 PID값도 바뀌게 된다. 즉
다시말해서 여기서 지정된 파일(httpd.pid)에 실행되고 있는 아파치서버의
프로세스번호(PID)값이 기록된다고 하면 정답이다. ServerRoot를 기준으로한
상대경로로 지정된다. 절대경로로 지정하려면 "/"로 시작하는 절대경로를
적어주면 된다.


ResourceConfig conf/srm.conf
AccessConfig conf/access.conf

아파치 서버의 환경설정파일은 3개이au httpd.conf, srm.conf, access.conf
가 그것이다. 그러나 하나의 설정파일로 하는 것이 효율적이기 때문에
지금은 httpd.conf파일안에 3개의 파트(Section)로 나누어서 하나의
파일안에서 설정을 하고 있다. srm.conf와 access.conf파일의 내용은 현재
비어있는 상태이지만, 필요하다면 이 파일 내에도 설정을 할 수 있다.
아파치 서버가 실행이 될 때는 httpd.conf, srm.conf, access.conf 순으로
언제나 이 3개의 파일을 모두 읽고 난뒤에 실행이 되기 때문이다. 만약 이
두 개의 파일을 서버가 무시하도록 하려면 다음과 같이 하거나 "#"으로 붙여
두면 주석처리되어 무시된다.

ResourceConfig /dev/null
AccessConfig /dev/null


Timeout 300

클라이언트의 요청에 의해 서버와 연결이 되었을 때 클라이언트와
서버간에 아무런 메시지가 발생하지 않았을 때 오류로 처리될 시간을
초단위로 설정한다. 초기값은 1200이며 보통은 300초로 지정을 한다.
네트웍의 속도가 나쁠수록 수치값은 높게 설정하는 것이 좋다.

KeepAlive On

접속한 채로 특별한 요청없이 지속적인 연결을 허용할 것인지를 설정한다.
허용하지 않으려면 off

MaxKeepAliveRequests 100

클라이언트가 접속된 시간동안 아파치서버에 요청할 수 있는 최대의
개수를 지정한다. 0을 지정하면 제한없음을 의미하며, 서버의 성능향상을
위하여 가능한 높은 값이 좋다.

KeepAliveTimeout 15

아파치 서버는 같은 접속상태의 클라이언트에서 여기서 지정한 초만큼의
요청이 없었을 때 접속을 끊게 된다.

MinSpareServers 5
MaxSpareServers 10

아파치 웹서버는 성능향상과 빠른 응답속도를 위해 유휴서버(현재
서비스대기 중인 프로세스)를 만들게 되는데 이 유휴서버의 개수는 시스템의
상황에 따라 달라지게 된다. 유휴서버가 MinSpareServers의 개수(5) 보다
적게되면 추가로 생성을 하게 되며 MaxSpareServers의 개수(10)보다 많게
되면 죽이게 된다. 즉, 유휴서버의 개수를 적절히 조절하기 위한 것이라
생각하면 된다.


StartServers 5

아파치 웹데몬이 구동될 때 자식프로세스를 몇 개로 할 것인가를
지정한다. 시작할 때 동시에 띄우게 될 웹데몬의 개수이다. 그러나 웹데몬이
구동되고 난 뒤엔 시스템의 상황(부하율등)에 따라 대부분 합리적인
개수만큼 동적으로 생성되었다가 죽기도 하므로 큰 의미를 가지는 것은
아니다.

MaxClients 150

아파치웹서버에 접근할 수 있는 클라이언트의 최대갯수는 이 상한값으로
제한한다. 여기서 지정한 개수이상의 클라이언트의 요청이 생긴다면
아파치는 응답하지 않고 이 요청을 무시한다. 이를 제한하는 이유는
시스템의 자원을 아파치 웹서버가 무한정 차지하는 것을 방지하기 위한
것이다.

MaxRequestsPerChild 30

아파치 웹서버의 자식프로세스들이 클라이언트의 요청 개수를 지정한다.
만약 자식프로세스가 이 값만큼의 클라이언트요청을 받았다면 이
자식프로세스는 자동으로 죽게된다. 이 값이 0으로 설정이 된다면
자식프로세스가 자동으로 죽는일은 없을 것이다. 그러나 0아닌 다른 값으로
설정함으로서 프로세스의 수를 적절히 조절하여 시스템의 부하조절과
자원낭비를 어느정도 방지 할 수 있다.

Listen 3000
Listen 12.34.56.78:80

시스템의 기본값이외에 다른 IP Address와 포트에 대해서도 연결할 수
있도록 해 준다. 환경설정파일(httpd.conf) 맨뒤에 나오는 가상호스트(Virtual
Host)부분에서 설정되는 가상호스트를 설정하기 위해 필요하다.


BindAddress *

서버가 응답할 수 있는 IP Address를 설정하는 것이다. 하나의 시스템에
있는 아파치웹서버 하나로 여러 웹서버처럼 관리하는 웹호스팅서비스등에서
많이 이용하는 것으로 여러 IP Address를 인식할 수 있게 한다. "*"으로
설정이 되었다면 모든 IP Address에 대해 응답할 수 있으며, IP Address를
지정한다면 지정한 IP Address에 대해서만 응답할 수 있게 된다. 여러개의
IP Address를 ISP로부터 할당받아서 웹호스팅서비스를 하고자 한다면
이부분에서 지정해 주면된다. 이 설정파일의 맨 뒷부분에 나오는
<VirtualHost>~</VirtualHost>부분의 IP bind 가상호스트부분에서 아파치
웹서버가 응답할 수 있도록 하려면 여기서 IP Address를 지정해 줘야 한다.

ExtendedStatus On

server-status로 아파치웹서버의 상태를 상태를 모니터링 할 때
"자세한상태정보"기능을 제공할 것인지(On) 아닌지(Off)를 설정하는 것이다.

### Section 2: 'Main' server configuration

Section 2에서 설정하는 항목들은 아파치의 주된서버가 사용할 값들을
지정한다. <VirtualHost>에 정의된 가상호스트들에서 지정하지 않는 것은
여기서 지정된 값이 기본값으로 적용된다. 또한 여기서 지정하는 값을 각
<VirtualHost>내에도 지정할 수 있으며 이경우엔 각<VirtualHost>내에서
지정한 값이 우선적용된다.

Port 80

아파치웹서버의 기본포트를 지정한다. 특별하게 사용하는 것이 아니라면
80번으로 해둬야 한다. 사용가능한 포트는 0 ~ 65535이며 1024이하의
포트번호는 시스템에서 특별하게 예약되어 있으므로 80번 이외의 다른
포트를 사용하려면 1024이상의 포트번호를 지정해서 사용해야 할 것이다.
특별한 지정이 없다면 <VirtualHost>에 정의된 각각의 가상호스트들의
기본포트가 된다. 만약 <VirtualHost> 내에서 Port가 지정이 된다면 그
포트번호가 우선한다.

(특별히 PORT를 따로 지정해 줄 필요가 있을 때는 따로 지정해 주며,
이때는 웹서버로 접근할 때 반드시 따로지정한 PORT번호로 접근해야 한다.
예를들어 Port 1234로 지정했다면, 접근시 : http://www.domain.co.kr:1234
로 접속해야한다. 단, 80번은 default이므로 Port번호를 입력하지 않아도
도메인만으로 그냥 접근할 수 있다. 예: http://www.domain.co.kr )

User nobody
Group nobody

아파치 웹데몬이 요청을 받았을 때 여기서 지정한 user와 group으로
응답을 하게된다. 이 설정은 ServerType이 Standalone방식이며, 아파치의
실행이 root권한으로 실행이 되었을 때 유효한 것이다. 많은
웹서버관리자들이 nobody로 설정을 해 두고 있으며, 만약 시스템에 nobody
user가 없다면 새로생성(useradd)을 해야 할 것이다. 단, root로 설정하는
것은 절대로 있어서는 안되며 nobody이외의 다른 시스템사용자 id로 지정을
한다면 정말 신중히 모든면(시스템 보안 및 자원사용등)에서 깊게 고려를
해봐야 한다.

ServerAdmin webmaster@www.domain.co.kr

여기서 지정하는 email address는 웹문서 로딩에러등의 문제에서
클라이언트측으로 보내질 메일주소값이다. 대부분
웹서버관리자의 email address로 설정을 한다.

ServerName new.host.name

클라이언트에게 보여주는 호스트이름을 지정한다. www를 쓰지않는
호스트에서 www를 쓰는 것처럼 보이게 할 수 있다. 예를 들어
bbs.manualand.co.kr을 www.manualand.co.kr로 지정해서 쓸 수 있다.
이곳에 IP Address를 적게 되면 클라이언트에는 Ip Address를 보여준다.

DocumentRoot "/usr/local/apache/htdocs"

아파치 웹서버의 웹문서가 있는 경로를 지정한다. 예를 들어
"http://www.manualand.co.kr/index.html"의 초기 문서라면 이 초기문서의
절대 경로는 여기서 지정된 "/usr/local/apache/htdocs/index.html"이 된다.
경로의 맨 마지막에 "/"를 추가해서는 안된다. Alias를 사용하여 다른 위치를
지정할 수도 있다.

<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>

<Directory>에서 지정되는 값에 대한 옵션은 다음과 같은 의미를 가지고
있다.
None : 일단 모든허용을 하지 않는다.
All : 모든허용을 한다.
Indexes :
Includes :
FollowSymlinks :
ExeCGI :
MultiViews :


UserDir public_html

하나의 아파치 웹서버에서 여러 사용자의 홈페이지를 별도로 만들어
관리할 때 필요한 개별 가입자의 홈페이지 디렉토리이름이다. 예를 들어
sspark이란 계정가입자의홈페이지는 "http://manualand.co.kr/~sspark"라는
홈페이지를 가지고 있을 때 sspark의 계정에서 "public_html"이란
디렉토리가 홈디렉토리가 되어 이 디렉토리에 있는 초기문서 index.html을
불러서 보여주게 된다.

<Directory /home/*/public_html>
AllowOverride FileInfo AuthConfig Limit
Options MultiViews Indexes SymLinksIfOwnerMatch
IncludesNoExec
<Limit GET POST OPTIONS PROPFIND>
Order allow,deny
Allow from all
</Limit>
<Limit PUT DELETE PATCH PROPPATCH MKCOL COPY
MOVE LOCK UNLOCK>
Order deny,allow
Deny from all
</Limit>
</Directory>

계정사용자의 홈페이지(public_html)의 접근에 대한 옵션을 지정한 것이다.


DirectoryIndex index.html

디렉토리만을 지정했을 경우에 그 디렉토리에서 찾게될 문서의 순서를
지정해 준다. 즉, 디렉토리 이름만을 지정하더라도 여기서 지정한
index.html을 찾아서 웹브라우즈에 보여준다. 여러개의 파일을 지정할 수
있으며, 이런 경우에는 순서대로 찾아서 보여준다. 예를 들어
"DirectoryIndex index.html index.htm"로 지정했다면 먼저 "index.html"을
찾아서 있다면 이 파일을 로딩하고, "index.html"이 없다면 "index.htm"을
찾아서 로딩해 준다.

AccessFileName .htaccess

디렉토리별로 접근제어할 정보(ID, Password)를 담고 있는 파일을
지정한다. 디렉토리별로 인증을 거쳐서 접근할 수 있는 설정을 하기위한
것이다. 예를 든다면 어떤 홈페이지의 전부나 혹은 일부에로 접근하려고 할
때 ID, Password를 묻는 창이 뜨면서 맞게 입력한 경우에만 접근허용하는
것이다. 보안상의 이유로 이 파일의 이름을 다른 이름으로 바꾸로 싶다면
".htaccess"대신에 다름이름을 적어주면 된다.

<Files ~ "^\.ht">
Order allow,deny
Deny from all
</Files>

바로위에서 설정한 파일(".htaccess")의 내용을 볼 수 없게 할 때 사용하는
옵션이다. 보안상의 이유로 이 옵션은 설정해 두는 것이 좋다. 만약 이
옵션을 주석처리해 둔다면 ".htaccess"파일에 대한 보안은 누구도 장담할 수
없을 것이다.


UseCanonicalName On

TypesConfig conf/mime.types

웹서버의 mime type을 지정한 파일을 지정한다. mime.types파일은 서버에
의해 리턴될 수 있는 파일명과 mime형식을 기술해 놓은 파일이다.

DefaultType text/plain

mime.types 파일에 정의 되어있지 않은 파일형식에 대한 요청을 받았을 때
알 수 없는 문서타입에 대하여 사용할 기본적인 mime 타입을 정해둔다.


HostnameLookups Off

웹서버의 로그(access_log)를 지정하는 Format에서 "DNS Lookup"으로
지정하였을 때, domain으로 남길 것인가, IP Address로 남길 것인가를
지정한다. Default로 Off는 IP Address로 남기는 것이며, Domain으로 변경할
필요가 없으므로 on으로 설정한 것보다는 속도가 조금빠르다.on으로 하게
되면 IP address를 IP Domain으로 변환해야 하므로 속도가 조금 느릴 수
있다.

ErrorLog logs/error_log

아파치 웹서버의 에러로그 기록파일을 지정한다. 참고할 사항은 맨
마지막에 설정하는 <VirtualHost>부분에서 각서버에 대한 에러파일을
지정해 두지 않으면 그에 대한 에러로그도 여기에 기록되며, 지정해 두게
되면 그에 해당하는 로그는 이 파일에 기록되지 않는다.

LogLevel warn

바로위에서 설정한 에러로그 파일에 얼마나 자세하게 적을 것인지를
결정한다. 다음에 해당하는 순서대로 중요도가 정해진다. " debug → info →
notice → warn → error → crit → alert → emerg "

LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i"
"%{User-Agent}i"" combind
LogFormat "%h %l %u %t "%r" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent

바로 아래에서 사용할 CustomLog에서 사용할 몇가지 로그형식의 별명을
정한 곳이다.
웹서버의 관리자나 서버관리자는 이 부분을 특히 유심히 봐둬야 한다.
웹서버의 로그를 어떤 식으로 남길 것인가를 결정하는 Format을 지정하는
곳이다. 원하는 정보를 지정해서 볼 수 있으므로, 관리자에게 필요한
Format으로 설정해야 하며, 또한 접속통계를 내기에 적당한 Format으로
설정해 둬야 한다.

CustomLog logs/access_log common

위에서 정한 로그형식(여기선 common)대로 로그를 남기게 된다.
맨마지막에서 지정하는 <VirtualHost>부분에서도 아파치 1.3.9버전 부터는
CustomLog를 가상호스트별로 지정할수 있도록 CustomLog를 제공한다.
<VirtualHost>에서 CustomLog를 지정하지 않으면 여기서 지정한 형식대로
로그를 남기게 되며 <VirtualHost>부분에서 CustomLog를 지정했을
경우에는 여기서 지정한 로그형식은 무시된다.

#CustomLog logs/referer_log referer
#CustomLog logs/agent_log agent
#CustomLog logs/access_log combined

위에서 지정한 4가지의 로그형식(combind, common, referer, agent)중에서
원하는 부분의 #(주석행)을 제거하면 지정된다.

ServerSignature On

서버가 생성하는 문서(error documents, FTP directory listings,
mod_status and mod_info output etc., but not CGI generated documents)의
trailing footer line의 설정을 가능하게 한다.

Alias /icons/ "/usr/local/apache/icons/"

필요한 만큼의 디렉토리 별칭을 만들어 쓸 수 있다. 사용하는 형식은
다음과 같다.
Alias fakename(가상이름) realname(진짜이름)

ScriptAlias /cgi-bin/ "/usr/local/apache/cgi-bin/"

ScriptAlias는 서버스크립트를 포함한다. ScriptAlias는 실제디렉토리 안에
들어있는 문서를 서버에 의해 응용프로그램으로 취급되어 실행되는 것을
제외하고는 근본적으로 Aliases와 같다.


IndexOptions FancyIndexing

IndexOPtions는 디렉토리목록을 표시할 때 사용할 옵션을 지정한다.
Standard는 표준적인 디렉토리를 나타내며, FancyIndexing은 좀더 예쁜
디렉토리목록을 표시해 준다.

아래에서 지정하는 AddIcon으로 시작하는 설정은 바로위에서 설정한
디렉토리인덱싱 옵션을 FancyIndexing으로 한 경우에 해당하며 디렉토리
목록을 표시할 때 각 파일 확장자에 따라서 어떤 아이콘을 선택하여 보여줄
것인지를 지정한다.

AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip
AddIconByType (TXT,/icons/text.gif) text/*
AddIconByType (IMG,/icons/image2.gif) image/*
AddIconByType (SND,/icons/sound2.gif) audio/*
AddIconByType (VID,/icons/movie.gif) video/*

AddIcon /icons/binary.gif .bin .exe
AddIcon /icons/binhex.gif .hqx
AddIcon /icons/tar.gif .tar
AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv
AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip
AddIcon /icons/a.gif .ps .ai .eps
AddIcon /icons/layout.gif .html .shtml .htm .pdf
AddIcon /icons/text.gif .txt
AddIcon /icons/c.gif .c
AddIcon /icons/p.gif .pl .py
AddIcon /icons/f.gif .for
AddIcon /icons/dvi.gif .dvi
AddIcon /icons/uuencoded.gif .uu
AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl
AddIcon /icons/tex.gif .tex
AddIcon /icons/bomb.gif core

AddIcon /icons/back.gif ..
AddIcon /icons/hand.right.gif README
AddIcon /icons/folder.gif ^^DIRECTORY^^
AddIcon /icons/blank.gif ^^BLANKICON^^


DefaultIcon /icons/unknown.gif

여기서 지정한 확장가가 아닌 경우에 여기서 지정한 기본아이콘으로
보여준다.

AddDescription "GZIP compressed document" .gz
AddDescription "tar archive" .tar
AddDescription "GZIP compressed tar archive" .tgz

AddDescription은 서버가 생성한 인덱스의 파일 뒤에 간단한 설명을
표시할 때 사용한다. 이 설정은 IndexOptions가 FancyIndexing으로
설정되었을때만 표시되며, 설정형식은 다음과 같다.
형식 : AddDescription "표시할 설명" 파일확장자

ReadmeName README

ReadmeName은 디렉토리목록표시 뒤에 붙여서 보여줄 README파일의
이름을 지정한다.(일종의 꼬릿말)

HeaderName HEADER

HeaderName은 디렉토리목록표시 앞에 붙여질 파일의 이름을 지정한다.
(일종의 머릿말)

IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t

디렉토리목록을 인덱싱할 때 제외할 파일명을 지정한다. 즉 디렉토리
목록에 포함하지 않을 파일을 지정한다. 쉘스타일의 와일드카드(*, ?)가
허용된다.

AddEncoding x-compress Z
AddEncoding x-gzip gz tgz

AddEncoding은 특정브라우즈(Mosaic/X 2.1+)에서 받고있는 중에 정보에
대한 압축해제를 할 수 있도록한다. 단 모든 웹브라우즈에서 이 기능을
제공하는 것은 아니다.

AddLanguage en .en
AddLanguage fr .fr
AddLanguage de .de
AddLanguage da .da
AddLanguage el .el
AddLanguage it .it

AddLanguage는 문서의 언어를 지정하게 한다.

LanguagePriority en fr de

언어의 우선순위를 내림차순으로 지정한다.

AddType application/x-httpd-php3 .php3
AddType application/x-httpd-php3-source .phps
AddType application/x-tar .tgz

AddType은 mime.types의 실제 편집없이도 mime을 설정할 수 있다.

AddHandler cgi-script .cgi

AddHandler는 파일확장자를 처리기(Handler)에 매핑(연결)시켜주게 된다.

AddType text/html .shtml
AddHandler server-parsed .shtml

SSI(Server Side Include)문서를 인식하게 하기위한 설정이다. SSI코드가
들어가 있는 문서는 확장자가 *.shtml이다. 시스템의 날짜와 카운터등
CGI프로그램을 하지 않아도 HTML문서에서 단 몇줄로 CGI의 효과를 낼 수
있는 SSI기능을 인식하게끔 하는 설정이다. "7장. 아파치와 SSI"편에서 자세히
설명되어 있다.


#Format: Action media/type /cgi-script/location
#Format: Action handler-name /cgi-script/location

Action은 매칭되는 파일이 호출될때마다 스크립트를 실행시킬 수 있도록
미디어 타입을 정의한다.

MetaDir .web

MetaDir은 아파치가 찾을 메타정보파일들의 디렉토리이름을 지정한다. 이
파일들은 문서를 전송할 때 포함되는 HTTP 헤더정보가 포함되어 있다.

MetaSuffix .meta

MetaSuffix는 메타정보를 포함하고 있는 접미어의 이름을 지정한다.


에러발생시 응답을 정의할 수 있는 방법을 3가지 나타내고 있다.

1) 일반적인 텍스트

ErrorDocument 500 "The server made a boo boo.

2) 지역적인 방향전환

ErrorDocument 404 /missing.html
ErrorDocument 404 /cgi-bin/missing_handler.pl

3) 외부 방향전환

ErrorDocument 402
http://some.other_server.com/subscription_info.html


다음의 BrowserMatch는 keepalives기능을 쓰지못하게 하며 HTTP
헤드방식을 설정한다.

BrowserMatch "Mozilla/2" nokeepalive

이 설정은 Netscape 2.x 또는 이를 따르는 브라우즈에 대하여 KeepAlive
기능을 쓰지 못하게한다.

BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0
force-response-1.0

이 설정은 잘못구현된 HTTP/1.1과 301또는 302반응에 대하여
KeepAlive를 적절히 제공하지 못하는 마이크로소프트 인터넷익스플로러
4.0b2d에 관한 것이다.

BrowserMatch "RealPlayer 4\.0" force-response-1.0
BrowserMatch "Java/1\.0" force-response-1.0
BrowserMatch "JDK/1\.0" force-response-1.0

위의 3가지 설정은 기본적인 1.1반응도 처리하지 못하며 HTTP/1.0 스팩을
제한하고 있는 브라우즈에 대하여 HTTP/1.1반응을 하지 못하게 한 것이다.

<Location /server-status>
SetHandler server-status
Order deny,allow
Deny from all
Allow from www.manualand.co.kr
</Location>

서버의 상태를 점검할 수 있게하는 설정이다. 이는
"http://www.manualand.co.kr/server-status"와 같은 형식으로 서버의 상태를
점검할 수 있다. "6장. 아파치서버 모니터링"편에서 자세히 설명되어 있다.
여기서 지정한 "SetHandler server-status"의 설정으로 인해 서버
모니터링을 할 수 있는 것이다.

<Location /server-info>
SetHandler server-info
Order deny,allow
Deny from all
Allow from www.manualand.co.kr
</Location>

이설정을 위해서는 mod_info.c가 적재되어야 하며, 이는
"http://www.manualand.co.kr/server-info"와 같은 방식으로 서버의 정보를
볼 수 있다. 위에서 설정한 server-status와 함께 실행중인 웹서버의
상태점검을 위한 것이다.

<Location /cgi-bin/phf*>
Deny from all
ErrorDocument 403 http://phf.apache.org/phf_abuse_log.cgi
</Location>

아파치 1.1이전 버전의 오래된 버그에 대한 악용이 있을시에는 지정한곳
(http://phf.apache.org/phf_abuse_log.cgi) 으로 방향을 전환시킨다.


<IfModule mod_proxy.c>
ProxyRequests On

아파치 웹서버를 Proxy서버로 사용할 때 on을 해줘야 한다. 즉
프락시서버 지시자로서 프락시서버를 on 시킨다.

<Directory proxy:*>
Order deny,allow
Deny from all
Allow from .your_domain.com
</Directory>

ProxyVia On

HTTP/1.1 "Via:"헤드처리를 활성화시킬 것인지 비활성화 시킬것인지를
지정한다. Off, On, Full, Block중 하나가 올 수 있으며 Full은 서버버전을
포함하며, Block은 나가는 모든 것에 대해 Via:헤더를 제거한다.

CacheRoot "/usr/local/apache/proxy"
CacheSize 5
CacheGcInterval 4
CacheMaxExpire 24
CacheLastModifiedFactor 0.1
CacheDefaultExpire 1
NoCache a_domain.com another_domain.edu joes.garage_sale.com

이 설정은 캐시기능을 활성화 하기 위한 것이다.

### Section 3: 가상호스트 설정

여러분의 시스템에서 여러개의 도메인이나 호스트네임을 설정하여
관리하고자 한다면 <VirtualHost>부분을 설정해 줘야 한다. 가상호스트에
대한 정보는 http://www.apache.org/docs/vhosts/를 참조해 보면 좀더
자세한 정보를 얻을 수 있다. '-S'옵션을 사용함으로써 가상호스트의 설정에
대한 점검을 할 수 있다. name-based 가상호스트를 사용하길 원한다면
적어도 한 개이상의 IP Address를 정의할 필요가 있다. "4-2절의 내용"과
"10장.웹호스팅 서비스를 위한 가상호스트"편에서 자세히 설명되어 있다.

NameVirtualHost 12.34.56.78:80
NameVirtualHost 12.34.56.78

<VirtualHost www.manualand.co.kr>
ServerAdmin webmaster@manualand.co.kr
DocumentRoot /home/sspark/public_html
ServerName www.manualand.co.kr
ErrorLog /home/sspark/public_html/aw/error_log
CustomLog /home/sspark/public_html/aw/access_log common
</VirtualHost>

ServerAdmin은 해당서버의 관리자 전자우편이며,
DocumemtRoot는 해당서버의 홈디렉토리이며,
ServerName은 해당서버의 도메인이며,
ErrorLog는 해당서버의 에러파일 위치이며
CustomLog는 로그파일위치와 포맷을 지정한 것이다.

<VirtualHost _default_:*>
</VirtualHost>

Default 가상호스트 설정으로 위에서 설정되지 않은 다른 모든 호스트에
대해서 응답을 하고자 할 경우설정해 준다.

'WEB' 카테고리의 다른 글

소스보기  (0) 2006.03.04
WLS : 데이터 전송시 성능저하(AIX플랫폼)  (0) 2006.02.17
ChunkUtil에 의한 WLS 응답 속도 지연  (0) 2006.02.17
MS, 오는 4월까지 IE 브라우저 설계변경  (0) 2006.01.25
html태그사전  (0) 2005.10.14