1 / 40

Wheel Seminar 2012 14. Apache

Wheel Seminar 2012 14. Apache. SPARCS 12 KAIST 12 채종욱 ( aon ) jwchae8@gmail.com. 아파치란 무엇인가 ? What is Apache?. 나 ? Web server 임. 웹서 버 란 무엇인가 ? What is web server?. http://www.resultantsys.com/index.php/general/what-is-a-web-application-server/. 웹서 버 란 무엇인가 ? What is web server?.

boris
Download Presentation

Wheel Seminar 2012 14. Apache

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Wheel Seminar 201214. Apache SPARCS 12 KAIST 12 채종욱(aon) jwchae8@gmail.com

  2. 아파치란 무엇인가?What is Apache? 나? Web server임

  3. 웹서버란 무엇인가?What is web server? http://www.resultantsys.com/index.php/general/what-is-a-web-application-server/

  4. 웹서버란 무엇인가?What is web server? 인터넷을 통하여 접근할 수 있는 웹 컨텐츠들을 전송할 수 있도록 돕는 하드웨어 혹은 소프트웨어(in Wiki) • HTTP standard • Virtual hosting • Large file support • Bandwidth throttling • Server-side scripting

  5. 웹서버란 무엇인가?What is web server? 여러 가지 웹서버 소프트웨어들 Netcraft survey in Feb 2012

  6. 왜 아파치를 쓰는가?Why Apache? Secure, Efficient, Extensible Robust, Commercial-grade, Featureful Open source, Free

  7. 아파치란 무엇인가?What is Apache? The Apache Software Foundation Collaborative Consensus based development process Open and pragmatic software license A desire to create high quality software Lots of software, not only the Apache HTTP Server

  8. 설치Installation 실습서버에는 깔려 있지 않습니다. #apt-get install –f apache2

  9. 폴더구조How files and directories are constructed? For Ubuntu = Root Directory - /etc/apache2 = Document Root Directory - /var/www = Apache Configuration Files - /etc/apache2/apache2.conf - /etc/apache2/ports.conf = Virtual Host Configuration Files - /etc/apache2/sites-available/ - /etc/apache2/sites-enabled/

  10. 폴더구조How files and directories are constructed? For Ubuntu = start or stop server - /etc/init.d/apache2 [start/stop/restart/reload] = Module Configuration Directories - /etc/apache2/mods-available - /etc/apache2/mods-enabled

  11. 폴더구조How files and directories are constructed? For general case = Root Directory - /usr/local/apache2 = Document Root Directory - htdocs = Apache Configuration Files - conf/httpd.conf - conf/extra/*.conf = start or stop server - bin/apachectl

  12. /etc/apache2/httpd.conf = Apache HTTP Server Version 1에서 쓰이던 설정파일 = Apache HTTP Server Version 2에서 설정 파일이 여러 파일로 나뉨에 따라 내용이 없는 파일이 되었으나 호환성을 위하여 남겨둠

  13. /etc/apache2/apache2.conf • ServerRoot • LockFile • PidFile • Time out

  14. /etc/apache2/apache2.conf • KeepAlive • MaxKeepAliveRequest • KeepAliveTimeout

  15. Process & KeepAlive What is process? • Process에는 parent process와 child process가 존재한다. • Parent process는 child process의 개수를 조절한다. • Child process는 방문자의 요청에 응답하는 역할을 한다.

  16. Process & KeepAlive What is KeepAlive? • 하나의 사용자가 지속적으로 요청하면 한 프로세스가 계속 응답한다는 것. • 한 이용자의 요청을 지속적으로 받을 수 있다. • 다른 이용자를 받을 때까지 KeepAlive가 끊어지는데 걸리는 시간이 걸린다.

  17. /etc/apache2/apache2.conf <ifModulempm_[prefork/worker/event]_module> StartServers MaxClients MinSpareThreads MaxSpareThreads ThreadLimit(not in preforkmpm) ThreadsPerChild(not in preforkmpm) MaxRequestsPerChild </IfModule>

  18. MPM(Multiple-Processing Module) MPM = Apache가 클라이언트에게서 받아들인 요청을 처리하기 위해 자식 프로세스에게 분배하는 방식 보다시피 3가지 종류가 있는데 2종류를 주로 봄 # apache2ctl -l로 어떤 MPM을 사용하고 있는지 확인할 수 있다.

  19. MPM(Multiple-Processing Module) MPM 설치법 #apt-get install apache2-mpm-worker #apt-get install apache2-mpm-prefork

  20. MPM(Multiple-Processing Module) Worker MPM • 자식 프로세스들이 여러 개의 thread를 가질 수 있다. • 요청을 thread 단위로 처리한다. • 프로세스가 적기 때문에 prefork보다 적은 메모리를 사용한다. • Thread간의 메모리 공유에 의해 한 thread가 잘못됐다면 • 다른 thread들도 영향을 받을 수 있다.

  21. MPM(Multiple-Processing Module) Prefork MPM • 하나의 프로세스가 하나의 thread를 가진다. • 한 개의 자식 프로세스가 한 개의 연결을 담당한다. • 많은 프로세스들을 생성하기 때문에 메모리 사용이 크다. • 그 대신 메모리 사용에 있어서 안정적이다.

  22. MPM(Multiple-Processing Module) Worker vsPrefork • Prefork : 안정적, 싱글 및 더블 코어에서 선호, multi-thread 방식을 • 사용하지 못하는 언어에서는 prefork사용 • Worker : 다소 불안정, 하지만 메모리를 적게 사용

  23. MPM(Multiple-Processing Module) Event MPM

  24. /etc/apache2/apache2.conf • ThreadLimit • ThreadsPerChild • MaxClient

  25. /etc/apache2/apache2.conf • user • group • HostNameLookups • ErrorLog & LogLevel

  26. /etc/apache2/ports.conf • NameVirtualHost • Listen

  27. /etc/apache2/envvars - Apache 계정의 기본 환경변수

  28. /etc/apache2/conf.d - 여러 설정 파일들이 든 디렉토리

  29. /etc/apache2/sites-[available/enabled] - sites-available : 사용 가능한 virtual host들. - sites-enabled : 사용하는 virtual host들 symbolic link들이 들어있다. - 새로운 가상 호스트를 만들고 싶으면 $cp로 default 파일을 복사한뒤 열어서 설정을하고a2ensites 명령어를 이용하여 enable로 만들어준다. - #a2ensite [filename] - #a2dissite [filename]

  30. Virtual Host File • ServerAdmin, DocumentRoot, ServerName, Log • alias [URL-path] [directory-path] • Ex) alias /aon/ “/home/aon/public_html” • <Directory> • Options, AllowOverride, Order(allow, deny), ServerAlias

  31. Module • #a2enmod • #a2dismod

  32. WSGI/CGI CGI - 웹 내용을 파일로 바꿔주는 interface WSGI - Web server와 python으로 만들어진 web framework를 연결시키는 interface - Apache와 Django의 연계가 가능해진다.

  33. .htaccess • 디렉토리 별로 개별적인 아파치 설정이 가능하다. • 성능 및 보안 문제로 가급적 사용하지 않는 것이 좋다.

  34. Apache만 하면 아쉬우니깐… • nginx라는 web server가 있음. • Igor Sysoev가 2002년에 개발 착수하여 2004년에 배포함. • 장점들로 다음과 같은 면들을 언급하고 있음 • Serves static and index files • Supports SSL • Simple load balancing with fault tolerance • Both name-based and ip-based virtual server can be configured • HTTP basic authentication • Supports rewrite module • Supports gzip, XSLT, SSI and image resizing filters • All the main mail proxy servers are supported

  35. Apache만 하면 아쉬우니깐… 설치 # apt-get install nginx # /etc/init.d/nginx start 설정파일 /etc/nginx/ 내에 존재

  36. 실습1 vim /etc/hostname => wseminar[자기번호].sparcs.org hostname -F /etc/hostname • wseminar[1-7].sparcs.org/자기 ID에 접속하면 here is 자기ID’s • page라고 뜨게 만들기 • 143.248.234.*인 ip를 사용하는 사용자만 볼 수 있게 하기.

  37. 실습2 vim /etc/hostname => wseminar[자기번호].sparcs.org hostname -F /etc/hostname • wseminar[1-7].sparcs.org로 접속했을 때와 주어진 다른 주소로 접속 • 했을 때 서로 다른 내용이 나오도록 하기.

  38. Reference • The Apache Software Foundation • http://www.apache.org • The Apache HTTP Server Project • http://httpd.apache.org • Documentation • http://httpd.apache.org/docs/trunk/en/ • www.wikipedia.org/Web_server • -과거 세미나 자료들

More Related