Top

엔진엑스로 운용하는 효율적인 웹사이트 [웹개발자와 시스템관리자를 위한 105가지 실전 예제]

  • 원서명Nginx 1 Web Server Implementation Cookbook (ISBN 9781849514965)
  • 지은이디판카 사카
  • 옮긴이김득권
  • ISBN : 9788960774087
  • 25,000원
  • 2013년 03월 22일 펴냄
  • 페이퍼백 | 268쪽 | 188*235mm
  • 시리즈 : acorn+PACKT, 웹 프로페셔널

책 소개

아파치를 대체하고 있는 강력한 웹서버 엔진엑스(Nginx)의 실제 활용 사례가 수록된 예제 모음집이다. 웹사이트 관리자나 개발자들이 흔히 겪는 대표적인 105가지 상황에 대한 검증된 솔루션을 이해하기 쉬운 <예제구현>-<예제분석>-<부연설명>의 형식으로 제공한다. 엔진엑스에 관한 교과서라 할 수 있는 『Nginx HTTP Server 한국어판: 아파치를 대체할 강력한 차세대 HTTP 서버 엔진엑스』를 익힌 웹 개발자, 웹사이트 관리자가 연이어 읽어야 할 지침서로서 꼭 필요한 실전 사례집이다. 단순한 학습 예제가 아니라 실제 상용서비스에서 검증된 솔루션을 예제로 제시하며 그 작동 원리를 설명해 준다. 엔진엑스 웹서버를 이용해 효과적인 웹 애플리케이션을 구축할 때 매우 유용한 모든 종류의 검증된 기법들을 다룬다. 또한 메일 프록시 서버, 동영상 파일 스트리밍, 실시간 이미지 리사이징 등과 같이 비교적 잘 알려지지 않은 엔진엑스 응용에 사용된 다양한 예제들을 제공한다.


[ 소개 ]

엔진엑스 웹 서버를 이용해 웹 애플리케이션을 가장 효과적으로 구성하고 실행하는 데 필요한 모든 종류의 테크닉을 다루는 응용 사례가 수록된 실전 가이드

『엔진엑스로 운용하는 효율적인 웹사이트』는 엔진엑스 구성, 워드프레스(WordPress) 블로그 설정, 웹사이트에 스팸글을 전파하는 봇의 차단, 뮤닌(Munin)을 이용한 모니터링 설정 최적화 방법 등을 보여주며 코어, 로그, 재작성, 보안 등 다양한 영역에 걸친 실전 예제들을 다룬다.


[ 이 책에서 다루는 내용 ]

■ 엔진엑스 문제의 효과적인 실행과 디버깅
■ FCGI를 이용한 워드프레스와 드루팔 사이트 구성
■ 다양한 유닉스 상에서의 엔진엑스 로그 로테이션 설정
■ 봇과 스크래퍼로 인한 웹사이트 스팸 차단과 속도 저하 방지
■ SSL 인증과 웹 사이트 보안 설정
■ WSGI 사용 및 파이썬 기반 웹 애플리케이션 구성
■ 엔진엑스를 이용한 최적의 부하균형 리버스 프록시 구성
■ 소프트웨어 추가가 필요 없는 웹사이트 플래시 동영상 스트리밍 구성
■ 아파치 환경설정을 엔진엑스 환경설정으로 변환


[ 이 책의 대상 독자 ]

이 책은 트래픽이 많지 않은데도 모든 메모리를 소모해버리는 아파치 서버로 애를 먹고 있거나, 어떤 다른 이유로 고성능 부하균형 프록시 서버를 찾고 있거나, 새롭게 엔진엑스를 사용해 보려는 사람들을 위한 책이다. 어느 정도 엔진엑스에 관한 기본 지식이 요구된다. 시스템 관리자나 웹 개발자는 이 책으로부터 매우 큰 혜택을 받을 수 있을 것으로 본다.


[ 이 책의 구성 ]

1장, '코어 HTTP 모듈'에서는 엔진엑스 환경설정과 실행에 관한 기본 사항들을 다룬다. 1장을 마치고 나면 시스템상에서 엔진엑스를 컴파일하고 가상 호스트를 생성하며 사용자 추적을 설정하고 PHP를 작동시킬 수 있게 된다.

2장, '재작성에 관한 모든 것: 재작성 모듈'에서는 전적으로 재작성 모듈만을 다룬다. 2장을 통해 기본 사항을 포함하여 재작성 규칙을 이용해 현재 널리 사용되는 다양한 웹 개발 프레임워크를 엔진엑스에 연동시키는 법을 배울 수 있다.

3장, '모든 것을 기록한다: 로그 모듈'은 로그 기록의 관리, 백업, 순환 등과 같이 엔진엑스 로그 모듈을 이용해 수행할 수 있는 기초 및 고급 환경설정의 학습을 목표로 한다.

4장, '속도를 조절한다: 접근 및 전송률 제한 모듈'에서는 IP에 기반하여 서버 접근이나 전송률을 제한함으로써 사이트를 마비시킬 수 있는 상황에 대처하는 보호 방법을 설명한다.

5장, '안전을 보장한다: 보안 모듈'에서는 사이트와 사용자 데이터를 안전하게 보호하기 위해 엔진엑스에 내장된 보안 모듈을 사용하는 방법에 대해 알아본다.

6장, '애플리케이션의 설정: FCGI와 WSGI 모듈'은 프로그래머와 시스템 관리자들이 엔진엑스를 웹서버로 사용할 때 애플리케이션을 이해하고 설치할 수 있도록 도와주는 실제 사례들을 제공한다. 엔진엑스에는 PHP와 파이썬이 통합되어 있지 않기 때문에 그런 시스템 구성에 경험 없는 시스템 관리자에게는 매우 중요한 문제다.

7장, '엔진엑스를 리버스 프록시로 활용'에서는 엔진엑스를 리버스 프록시로 사용하는 다양한 방법을 다룬다. 레일즈(Rails) 애플리케이션의 설정, 부하 균형(load balancing)의 설정 방법뿐만 아니라 코드베이스의 수정 없이 사이트 성능을 향상시킬 수 있도록 엔진엑스를 이용한 캐시 설정 방법에 대해서도 알아본다.

8장, '엔진엑스를 이용한 성능 개선과 검색 엔진 최적화'에서는 사이트 로딩 속도를 더 빠르게 함으로써 더 많은 트래픽을 처리할 수 있게 만드는 모든 방법에 대해 알아본다. 엔진엑스 설정과 SEO 기법의 최적화와 관련된 기본 사항들을 다룰 것이다. 이러한 테크닉은 SEO뿐만 아니라 사이트와 애플리케이션의 전반적인 성능 및 안정성의 개선에도 매우 유용하다.

9장, '서드파티 모듈의 활용'에서는 엔진엑스에 IMAP, POP3, WebDAV 등과 같은 프로토콜을 확장해 사용할 수 있게 해주는 내장형 서드파티 모듈에 대해 알아본다. 유연하고 체계적으로 잘 정의된 모듈 API 덕분에 많은 모듈 개발자들이 XSLT 변환, 이미지 리사이징, HTTP 발행/구독 서버(HTTP publish-subscribe server)와 같은 흥미로운 웹 기반 작업에 엔진엑스를 사용하고 있다.

10장, '그 밖의 서드파티 모듈'에서는 상용 서비스 환경에서 매우 유용하게 활용되는 부하 균형, 서버 상태 검진 등과 같은 다양한 웹 서비스 사례에 대해 알아본다. 여기서 소개되는 간단한 예제들은 정보 분석(analytics), 외부 인증(external authentication) 체계 등이 필요한 기업 환경에서 효과적으로 활용될 수 있다.

저자/역자 소개

[ 저자 서문 ]

엔진엑스(Nginx)는 최근에 널리 알려지기 시작한 고성능 오픈소스 웹서버다. 모듈 기반 구조와 경량성 때문에 소규모 웹 2.0을 사용하는 많은 기업들이 부하균형 프록시 서버로서 엔진엑스를 기본으로 선택하고 있다. 엔진엑스는 FCGI, WSGI, SCGI와 같은 기존의 백엔드 웹 프로토콜을 대부분 지원한다. 이 책은 엔진엑스 서버에 대해 깊이 알고자 하는 분들을 위한 것이다.

이 책에서는 엔진엑스 웹서버를 이용해 효과적인 웹 애플리케이션을 구축할 때 매우 유용한 모든 종류의 검증된 기법들을 다룬다. 또한 메일 프록시 서버, 동영상 파일 스트리밍, 실시간 이미지 리사이징 등과 같이 비교적 잘 알려지지 않은 엔진엑스 응용에 사용된 예제들을 제공한다.

이 책의 첫 장에서는 엔진엑스를 처음 사용하는 사람에게 유용한 기본적인 사항들을 다룬다. 각 예제는 서로 관련 없이 독립적으로 설계되었다.

코어, 로깅, 재작성, 보안 등과 같이 광범위한 내용을 다루는 예제들이 수록되어 있다. 엔진엑스 설정, 워드프레스 블로그 구성, 웹사이트에 스팸을 전송하는 봇의 차단, 뮤닌을 이용한 모니터링 등을 최적화하는 방법을 보게 될 것이다.

이 책은 여러분이 직접 만든 웹 애플리케이션을 실행하는 데 필요한 모든 작업의 예제를 하나씩 단계별로 제공함으로써 엔진엑스 세계에 쉽게 입문할 수 있도록 도와줄 것이다. 또한 시스템 관리자나 웹 개발자에게는 오픈소스 엔진엑스 웹서버를 최대한 활용할 수 있게 해주는 실무 안내서다.


[ 저자 소개 ]

디판카 사카(Dipankar Sarkar)
웹과 모바일 분야의 기업가다. 그는 인도 델리 공과대학에서 컴퓨터과학/컴퓨터공학으로 학사 학위를 받았으며 오픈소스 운동의 확고한 신봉자로서 2005-06년과 2006-07년에 구글 서머 오브 코드(GSoC, The Google Summer of Code) 행사에 참가했다. 다양한 기술 미팅을 통해 윈도우 모바일과 파이썬에 관한 기술 워크숍을 수행한 바 있으며 최근에는 창업 리더십 프로그램의 델리 지부에 참가했다.
그는 세계에서 가장 큰 온라인 프리젠테이션 호스팅 및 공유 서비스 회사 중 하나인 슬라이드셰어(Slideshare LLC)에서 초기 개발자로서 일했으며 그 후로 모바일 결제 전문 회사인 엠파워 모바일(Mpower Mobile LLC)과 검색 엔진 마케팅의 선도 회사인 클릭커블(Clickable LLC)에서 일했다. 또한 정상급 마이크로블로깅 사이트 중 하나인 퀴피(Kwippy)의 공동창업자였고 현재는 소셜TV 분야에서 일하고 있으며 자자(Jaja)의 공동창업자이기도 하다.


[ 옮긴이의 말 ]

학창 시절을 회상할 때면 늘 단짝처럼 붙어 다니던 두 권의 책이 기억납니다. 참고서와 문제집. 최고 점수를 얻은 수험생들이 그 비결을 묻는 기자들에게 교과서에 충실했을 뿐이라는 관례적 답변을 할 때마다, 유명한 식당의 주방장이 요리의 비결을 숨기는 장면을 떠올리곤 했지요. 충실해야 할 것은 교과서만이 아니라 참고서나 문제집에도 충실해야 한다는 것을 모두 알고 있었으니까요.

사회에 진출하여 IT 전문직에 종사하면서도 그 두 권의 책이 모두 필요한 이유에 대해 종종 생각하게 되고 그것의 필연성을 깨닫게 됩니다. 하향식(Top-down) 접근법과 상향식(Bottom-up) 접근법, 목적지향과 관계지향, 법령과 판례처럼 세상에 존재하는 수많은 문제의 이상적인 해결책은 두 가지 상반된 관점의 융합에서 나온다는 진리를 어느새 체득하게 되었던가 봅니다.

아파치를 대체할 새로운 대안으로 떠오른 엔진엑스(Nginx) 웹서버에 관한 모든 것을 낱낱이 밝혀주는 해부학 참고서가 『Nginx HTTP Server 한국어판』이라면, 실제로 상용서비스가 실시되고 있는 웹사이트에서 매일매일 일어나는 수많은 문제들에 대해 가장 빠르고 정확한 해답을 제공하는 활용 안내서가 바로 『엔진엑스로 운용하는 효율적인 웹사이트』입니다.

기존의 아파치를 엔진엑스로 대체하여 새로운 웹서버 기반으로 마이그레이션하려는 웹사이트든, 아파치와 엔진엑스의 결합으로 구성된 웹사이트든, 처음부터 엔진엑스로 구축된 웹사이트든 간에, 안정적인 서비스 기반에 도달하기까지는 대부분 비슷한 시행착오를 겪거나 공통된 이슈를 만나게 됩니다. 이런 과정에서 얻어지는 소중한 기술적 경험들은 그 유형에 따라 체계적으로 분류되어 정형화될 수 있을 뿐 아니라 각 이슈에 대한 정확하고 검증된 솔루션을 도출하여 공유할 수 있습니다. 웹사이트 관리자도 사람의 병을 치료하는 의사와 같습니다. 웹사이트의 건강 상태를 쉴 새 없이 모니터링하고, 별다른 외적 증상 없이 깊이 잠복해 있는 질병을 조기에 발견하고, 발병했을 때 정확한 병명과 원인을 신속하게 진단하여 고통과 후유증 없이 완전하게 치료해야 합니다. 그렇게 하기 위해서는 과거의 경험들을 모두 모아 체계적으로 분류해 놓은 활용 백서가 꼭 필요하기 마련입니다.

이 책은 바로 그런 과거의 경험과 솔루션을 실전에서 즉각적으로 활용할 수 있도록 모든 이슈에 대한 검증된 해법을 <예제구현>-<예제분석>-<부연설명>의 간결하고 일관된 문서 형식으로 구성해 놓은 사례집입니다. 현재는 105가지의 대표적인 공통 이슈만이 수록되어 있지만 시간이 흐를수록 엔진엑스를 높은 수준으로 활용한 다양한 경험과 솔루션들이 더 많이 수록될 것으로 봅니다. 저는 이런 형식으로 구성된 책을 매우 좋아합니다. 문제 해결책을 찾는 데도 큰 도움이 되지만 효율적인 학습에도 매우 좋기 때문입니다. 악기 연주를 배우는 사람들에게 기본기를 단련시키는 에튀드(Etude)가 너무 지루하고 더딘 것처럼 교과서나 참고서 또한 그렇습니다. 실전에서 활용된 실제 사례를 들여다보면서 그 형식과 방법은 빌어오되 그 내용을 달리 응용하기 위해 참고서를 참조하는 식으로 학습 방법을 융합시켜야 최대의 학습효과를 볼 수 있습니다.

타인의 경험으로 얻어낸 우수한 해법들을 신속히 모방, 습득하고 그 위에 더 발전된 새로운 해법을 쌓아가는 것이 경험의 재활용으로 급속히 진화할 수 있었던 인류의 위대함이 아닌가 생각합니다. 선구자적 자세로 새로운 웹 세대를 열어가는 엔진엑스 사용자, 관리자, 개발자들에게 이 책이 든든한 벗이 될 수 있기를 진심으로 바랍니다.


[ 옮긴이 소개 ]

김득권
서울대학교 컴퓨터공학과와 대학원을 졸업하고 LG 중앙연구소에서 유닉스(UNIX) 마이크로시스템 개발 팀 선임연구원으로 유닉스 운영체제 개발을 담당했다. 한국 마이크로소프트 사를 거쳐 한국형 워크스테이션 개발을 기치로 설립한 벤처 기업인 ㈜솔빛에서 랩톱 워크스테이션 운영체제 개발에 참여하고 미국으로 건너가 캘리포니아 산호세 소재 EOS Technologies 사의 소프트웨어 개발 팀장으로 유닉스 워크스테이션 운영체제, 펌웨어, 생산 관리 소프트웨어를 개발했다. 귀국 후에는 ㈜AISoft 사에서 일러스트라 데이터베이스 사업부를 창설해 국내 최초로 객체 관계형 데이터베이스(ORDBMS) 제품과 솔루션을 개발 보급했다. 그 과정에서 축적된 기술을 기반으로 핵심 엔지니어들과 함께 벤처 기업 ㈜IMDB를 설립해 첫 인터넷 지도 서버IMS 제품인 맵시(MapSee™) 개발에 성공했다. 현재는 아이폰 관련 기술서 집필과 앱 개발, 교육 프로그램 기획에 전념 중이다. 에이콘출판사에서 펴낸 『Nginx HTTP Server 한국어판』(2011)을 번역했다.

목차

목차
  • 1장 코어 HTTP 모듈
    • 소개
    • 새 모듈 설치와 엔진엑스 컴파일
    • 엔진엑스의 디버그 모드 실행
    • CLI를 이용한 엔진엑스 재로딩
    • 효율적 관리를 위한 환경설정 파일 분리
    • 다중 가상 호스트의 설정
    • 기본 캐치올 가상 호스트의 설정
    • 가상 호스트에서의 와일드카드 사용
    • 작업자 프로세스 수의 정확한 설정
    • 업로드 파일 크기의 확장
    • 단순 사이트를 위한 동적 SSI 사용
    • 특정 페이지 앞뒤에 콘텐트 추가
    • 디렉토리 자동 색인 설정
    • 무작위 웹 페이지 서비스
    • 사용자 식별 및 기록을 위한 쿠키 서비스
    • 응답을 다른 코드로 재인코딩
    • 특정 콘텐트 타입에 Gzip 압축 적용
    • 404 등의 에러 페이지 설정
  • 2장 재작성에 관한 모든 것: 재작성 모듈
    • 소개
    • 간단한 리다이렉트 설정
    • 재작성과 변수
    • 재작성과 쿠키
    • 재작성과 브라우저 에이전트
    • 재작성과 전송률 제한
    • HTTP 리퍼러와 요청 제한
    • 서비스 운용 중 유지보수 페이지 서비스
    • 정적 파일 서비스를 이용한 워드프레스 사이트 설정
    • 정적 파일 서비스를 이용한 드루팔 사이트 설정
    • 정적 파일 서비스를 이용한 마젠토 설정
    • 아파치 .htaccess를 엔진엑스 재작성으로 변환
    • 맵을 이용한 간결한 환경설정
  • 3장 모든 것을 기록한다: 로그 모듈
    • 소개
    • 에러 로그 경로와 레벨 설정
    • 아파치 포맷으로 기록하기
    • 404 에러 기록의 해제
    • 다중 로그 프로파일
    • 로그 파일 캐시의 설정
    • 가상 호스트마다 개별적인 에러 로그 사용
    • 로그 로테이션 설정
    • 원격 로그 설정과 syslog-ng
    • 맞춤형 로그를 이용한 편리한 분석
  • 4장 속도를 조절한다: 접근 및 전송률 제한 모듈
    • 소개
    • 특정 세션에 대한 요청 제한
    • IP를 이용한 접근 거부와 허용
    • 다운로드 디렉토리와 전송률 제한 설정
    • 검색 엔진 봇의 전송률 제한
    • 맥스마인드 국가 데이터베이스를 이용한 GeoIP 설정
    • GeoIP 모듈을 이용한 접근성 및 전송률 제어
  • 5장 안전을 보장한다: 보안 모듈
    • 소개
    • 접근 제어용 HTTP 인증 설정
    • 보안 링크 만들기
    • 단순 사이트를 위한 HTTPS 구축
    • 비표준 에러코드를 이용한 SSL 설정 디버깅
    • 다중 서버와 와일드 카드 인증
    • 재작성 규칙용 엔진엑스 SSL 변수
  • 6장 애플리케이션의 설정: FCGI와 WSGI 모듈
    • 소개
    • PHP FCGI 사이트 구축
    • uWSGI를 이용한 파이썬 사이트 구축
    • FCGI 타임아웃의 수정
    • 속도 증대를 위한 FCGI 캐시 활용
    • 멀티 FCGI 백엔드의 사용
  • 7장 엔진엑스를 리버스 프록시로 활용
    • 소개
    • 엔진엑스를 리버스 프록시로 사용하기
    • 엔진엑스를 리버스 프록시로 사용하는 레일즈 사이트 구축
    • 리버스 프록시 타임아웃 설정
    • 리버스 프록시의 캐시 설정
    • 리버스 프록시와 다중 백엔드
    • thttpd와 엔진엑스를 이용한 CGI 파일 서비스
    • 리버스 프록시를 이용한 부하 균형
    • split-clients를 이용한 조건부 요청 분리
  • 8장 엔진엑스를 이용한 성능 개선과 검색 엔진 최적화
    • 소개
    • 성능 최적화를 위한 정확한 TCP 옵션 설정
    • 엔진엑스 작업자에게 편리함을 제공하는 킵얼라이브 값 하향 조정
    • 캐시 백엔드로 사용되는 멤캐시디
    • 이벤트 모델과 파일 한계값의 올바른 환경설정
    • 클라이언트측 캐시를 위한 max-age 만료 기간 헤더의 설정
    • 대역폭 절약을 위한 스크래퍼, 봇, 스파이더의 차단
    • 검색 엔진 최적화를 위한 www 없는 도메인으로의 변환
    • 요청의 모든 공백 문자 제거하기
    • 모니터링을 위한 서버 상태 설정
    • 24x7 엔진엑스 모니터링을 위한 뮤닌(Munin) 환경 설정
    • GZIP 사전압축 설정
    • 엔진엑스를 이용한 핫링크 방지
    • 임베디드 펄을 이용한 자바스크립트 파일 압축
    • 임베디드 펄을 이용한 CSS 파일 축소
    • 임베디드 펄을 이용한 사이트맵 서비스(SEO)
    • 엔진엑스에서의 드루팔 부스트 모듈 설정
    • 플래시 파일 스트리밍 설정
    • 1x1 GIF 서비스 모듈을 활용한 오프라인 프로세싱
  • 9장 서드파티 모듈의 활용
    • 소개
    • IMAP/POP3 프록시 서버 설정
    • 메일 서비스용 인증 설정
    • 메일 인증용 SSL 설정
    • 엔진엑스를 WEBDAV 리버스 프록시로 활용하기
    • 엔진엑스를 이용한 동적 이미지 리사이징
    • 엔진엑스 응답 내용의 텍스트 검색과 치환
    • 실시간 ZIP 파일 압축
    • 엔진엑스를 HTTP 발행-구독 서버로 활용하기
    • XSLT 템플릿을 이용한 XML 응답 변환
    • 정적 콘텐츠용 Etag 설정
    • 페이지 로드 시간을 간편하게 기록
    • MP4/H.264 파일의 스트리밍
    • SCGI 사이트 구성
    • 기간 만료 링크의 설정
  • 10장 그 밖의 서드파티 모듈
    • 소개
    • 정밀한 부하 균형 설정
    • 백엔드 서버 상태 검진 설정
    • 파일 업로드 진행 상황의 추적과 보고
    • 엔진엑스를 이용한 둥근 모서리 스타일 만들기
    • 퓨전 패신저를 이용한 파이썬 실행
    • 엔진엑스에서 RRDtool로 직접 그래프 만들기
    • 구글 성능 도구 사용하기
    • GridFS로부터 직접 콘텐트 서비스
    • PAM을 이용한 기본 HTTP 인증 설정

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안