이미 소장하고 있다면 판매해 보세요.
|
1장. 엔진엑스 설치
__사전 구성 요소 설정 ____GCC(그누 컴파일러 모음) ____PCRE 라이브러리 ____zlib 라이브러리 ____OpenSSL __엔진엑스 다운로드 ____웹 사이트와 자료 ____버전 분기 ____특징 ____다운로드와 압축 해제 __구성 옵션 ____간단한 방법 ____경로 지정 ____사전 구성 요소 옵션 ____모듈 옵션 ____여러 가지 다양한 옵션 ____구성 예 __빌드 구성 문제 ____사전 구성 요소 설치 문제 ____디렉터리 존재와 쓰기 가능 여부 문제 __프로그램 컴파일과 설치 __엔진엑스 서비스 제어 ____데몬과 서비스 ____사용자와 그룹 ____엔진엑스 커맨드라인 스위치 ____데몬 시작과 종료 ____구성 테스트 ____기타 스위치 __시스템 서비스 추가 ____시스템 V 스크립트 ____init 스크립트 ____데비안 기반 배포본용 init 스크립트 ____레드햇 기반 배포본용 init 스크립트 ____스크립트 설치 __엔진엑스 플러스 __요약 2장. 기본 엔진엑스 구성 __구성 파일 구문 ____구성 지시어 ____구조와 포함 ____지시어 블록 ____고급 언어 규칙 __기반 모듈의 지시어 ____기반 모듈 소개 ____엔진엑스 프로세스 아키텍처 ____핵심 모듈 지시어 ____이벤트 모듈 ____구성 모듈 ____필수 조정 __서버 테스트 ____테스트 서버 만들기 ____성능 테스트 ____중단 없이 엔진엑스 업그레이드 __요약 3장. HTTP 구성 __HTTP 핵심 모듈 ____구조 블록 __모듈 지시어 ____소켓과 호스트 구성 ____경로와 문서 ____클라이언트 요청 ____MIME 타입 ____제한과 제약 ____파일 처리와 캐시 ____기타 지시어 __모듈 변수 ____요청 헤더 ____응답 헤더 ____엔진엑스 생성 __location 블록 ____위치 수정자 ____탐색 순서와 우선순위 __요약 4장. 모듈 구성 __재작성 모듈 ____정규 표현식 복습 ____내부 요청 ____조건부 구조 ____지시어 ____일반 재작성 규칙 __SSI 모듈 ____모듈 지시어와 변수 ____SSI 명령 __부가 모듈 ____웹 사이트 접근 제어와 로그 ____제한과 제약 ____콘텐트와 인코딩 ____방문자 정보 ____클라이언트 분리 모듈 ____SSL과 보안 ____기타 잡다한 모듈 ____서드파티 모듈 __요약 5장. 엔진엑스와 PHP/파이썬 통합 __FastCGI 소개 ____CGI 구조 이해 ____공통 게이트웨이 인터페이스(CGI) ____고속 공통 게이트웨이 인터페이스 ____uWSGI와 SCGI ____주요 지시어 ____FastCGI 캐싱과 버퍼링 __엔진엑스와 PHP ____아키텍처 ____PHP-FPM ____PHP와 PHP-FPM 설정 ____엔진엑스 구성 __파이썬과 엔진엑스 ____장고 ____파이썬과 장고 설정 ____엔진엑스 구성 __요약 6장. 아파치와 엔진엑스 연동 __리버스 프록시로 엔진엑스 활용 ____문제 이해 ____리버스 프록시 메커니즘 ____리버스 프록시의 장점과 단점 __엔진엑스 프록시 모듈 ____주요 지시어 ____캐시, 버퍼링, 임시 파일 ____한계치, 시간 제약, 오류 ____SSL 관련 지시어 ____기타 지시어 ____변수 __아파치와 엔진엑스 구성 ____아파치 재구성 ____엔진엑스 구성 ____고급 구성 __리버스 프록시 아키텍처 개선 ____올바른 IP 주소 전달 __요약 7장. 아파치에서 엔진엑스로 이전 __엔진엑스와 아파치 비교 ____특징 ____유연성과 커뮤니티 ____성능 ____사용처 ____결론 __아파치 구성 이전 ____지시어 ____모듈 ____가상 호스트와 구성 섹션 ____.htaccess files __재작성 규칙 ____총론 ____워드프레스 ____미디어위키 ____vBulletin __요약 8장. 부하 분산과 최적화 __부하 분산 개론 ____부하 분산의 개념 이해 ____세션 친화성 ____업스트림 모듈 ____요청 분산 메커니즘 __엔진엑스를 사용한 TCP 부하 분산 ____스트림 모듈 ____MySQL 부하 분산 예 __스레드 풀과 I/O 메커니즘 ____작업 프로세스 경감 ____AIO, Sendfile, DirectIO __요약 9장. 사례 연구 __워드프레스 사이트 배치 ____서버 준비와 워드프레스 얻기 ____엔진엑스 구성 ____워드프레스 구성 __HTTPS를 통한 안전한 통신 ____자가 서명 인증서와 인증기관 ____SSL 인증서 취득 ____엔진엑스 구성에서 HTTPS 활성화 ____HTTP/2 설정과 테스트 __ownCloud 드라이브 생성 ____ownCloud 설치 ____엔진엑스 구성 ____자가 서명 인증서 설정 __요약 10장. 문제 해결 __문제 해결의 일반적인 조언 ____접근 권한 확인 ____구성 파일 테스트 ____구성 파일을 다시 읽었는가? ____로그 확인 ____설치 문제 ____403 접근 금지 오류 페이지 ____400 잘못된 요청 ____잘리거나 잘못된 FastCGI 응답 ____location 블록 우선순위 ____if 블록 문제 ____비효율적인 구문 ____예상치 못한 동작 __요약 |
Clement Nedelcu
|
★ 이 책에서 다루는 내용 ★
■ 엔진엑스 구성의 기본 구문, 구조, 의미 ■ 엔진엑스의 고급 부하 분산 기능과 혁신적인 최신 IO 메커니즘 ■ 모든 내장 모듈 활성화, 구성, 사용법 ■ 엔진엑스 재작성(Rewrite) 모듈로 고수준의 재작성 규칙 설정 ■ FastCGI와 uwsgi로 PHP, 파이썬 등과 함께 작동하는 엔진엑스 설정 ■ 엔진엑스를 기존 HTTP 서버의 앞단에서 동작하도록 구성 ■ 구성 파일의 쉬운 조작법과 다양한 상황에 적용하는 방법 ■ 일반적인 문제와 이를 피하는 방법 ★ 이 책의 대상 독자 ★ 초기 설정 단계와 고급 주제를 모두 다루는 이 책은 기존 웹 서버 소프트웨어를 교체하거나, 지금까지 사용하는 애플리케이션에 새 도구를 통합하는 등 인프라스트럭처를 최적화할 방법에 관심 있는 웹 관리자에게 적합하다. 웹 사이트 방문자와 운영체제가 아파치의 한계를 느꼈다면 이 책이 바로 필요한 책이다. ★ 이 책의 구성 ★ 1장, ‘엔진엑스 설치’에서는 엔진엑스를 다운로드하고 필요에 맞게 컴파일하는 초기 단계를 알아본다. 2장, ‘기본 엔진엑스 구성’에서는 엔진엑스 구성 구조와 구문의 핵심을 다룬다. 3장, ‘HTTP 구성’에서는 간단한 정적 사이트를 제공할 수 있는 HTTP 서버 구성 요소의 구성을 소개한다. 4장, ‘모듈 구성’에서는 표준 엔진엑스 패키지에서 사용할 수 있는 다양한 모듈을 깊이 다룬다. 5장, ‘엔진엑스와 PHP/파이썬 통합’에서는 엔진엑스로 동적 콘텐츠를 제공하도록 백엔드 프로그램을 설정하는 포괄적인 지침을 다룬다. 6장, ‘아파치와 엔진엑스 연동’에서는 동일 아키텍처에서 기존 웹 사이트와 서비스를 개선하는 데 두 서버 애플리케이션이 어떻게 협업할 수 있는지 설명한다. 7장, ‘아파치에서 엔진엑스로 이전’에서는 서버나 웹 인프라스트럭처를 아파치에서 엔진엑스로 완전히 전환하는 데 필요한 핵심 정보를 알아본다. 8장, ‘부하 분산과 최적화’에서는 부하가 심한 사이트를 관리하는 서버 관리자에게 유용한 단서를 제공한다. 9장, ‘사례 연구’에서는 엔진엑스를 다루는 가장 일반적인 작업을 포함해서 몇 가지 실제 사례의 실무 접근법을 살펴본다. 10장, ‘문제 해결’에서는 엔진엑스를 설정하거나 운영하면서 만나는 가장 흔한 문제를 다룬다. ★ 지은이의 말 ★ 웹 서버 시장에서 아파치(Apache)가 오랫동안 확고한 선두를 지키고 있다는 것은 아주 잘 알려진 사실이다. 2015년 10월, 조사에 의하면 월드와이드웹의 35% 정도가 25년 된 이 오픈소스 애플리케이션으로 제공되고 있다. 하지만 같은 보고서에서 최근 몇 년 사이에 엔진엑스(Nginx)라는 새로운 경쟁자가 부상하고 있음이 드러났다. 엔진엑스는 러시아에서 만든 경량 HTTP 서버다. 2009년 이후로 그토록 많은 서버 관리자가 엔진엑스로 교체한 이유는 무엇일까? 이 조그마한 소프트웨어 조각이 대용량 웹사이트를 운영할 만큼 충분히 성숙하긴 했는가? 먼저 엔진엑스는 생각보다 나온 지 얼마 안 되는 기술이 아니다. 2002년에 독립 개발자 이고르 시소에프(Igor Sysoev)가 사용량이 매우 많은 러시아 웹 사이트인 램블러(Rambler)에 쓰려고 처음 시작한 프로젝트다. 램블러는 2008년 9월, 하루에 5억이 넘는 HTTP 요청을 받았다. 엔진엑스는 이제 레딧(Reddit), 위키백과(Wikipedia), 워드프레스(WordPress), 드롭박스(Dropbox) 등 웹에서 가장 인기 있는 일부 웹 사이트를 제공하는 데 사용된다. 엔진엑스는 기능이 많으면서도 매우 효율적이고 가볍다는 것이 입증됐다. 이 책의 각 장을 통해 엔진엑스의 많은 기능을 알게 되고, 왜 많은 관리자가 아파치를 버리면서까지 이 신생 HTTP 서버를 믿기로 했는지 이해하게 될 것이다. 엔진엑스가 다른 경쟁 기술보다 효율적인 몇 가지 측면이 있다. 무엇보다 엔진엑스는 빠르다. 비동기 소켓을 사용하기 때문에 엔진엑스는 받은 요청 수만큼 자식 프로세스를 생성하지 않는다. 코어당 한 프로세스만으로도 수천 개의 연결을 처리하는 데 충분하므로 CPU 부하와 메모리 사용량이 적다. 또한 엔진엑스는 사용하기 매우 용이하다. 아파치 같은 다른 웹 서버보다 구성 파일을 읽고 조작하기 훨씬 쉽다. 두어 줄만으로 가상 호스트 설정을 마칠 수 있다. 마지막으로 서버 관리자는 모듈(module) 구조를 좋아한다. 엔진엑스는 BSD 방식의 라이선스로 출시되는 완전한 오픈소스 프로젝트일 뿐 아니라 모듈이라는 강력한 플러그인 시스템도 따라온다. 기본 배포 파일에 매우 다양한 모듈이 포함돼 있고 다수의 외부 모듈을 온라인으로 다운로드할 수 있다. 전반적으로 엔진엑스는 속도, 효율성, 강력한 기능을 결합해 성공적인 웹 서버의 완벽한 요소를 제공한다. 오늘날 엔진엑스는 최고의 아파치 대안으로 보인다. ★ 옮긴이의 말 ★ 인터넷이 대중화되고 닷컴 붐이 한창이던 1999년에 컴퓨터 세상에 큰 영향을 미친 화두 하나가 던져졌습니다. ‘C10K 문제’라고 부르는 주제입니다. 그전까지 컴퓨터 산업계는 어떻게 일을 빨리 처리하느냐에 주로 초점을 맞추고 있었습니다. 하드웨어는 고성능 연산을 통해 더 큰 일을 더 빨리 처리하도록 발전했고 소프트웨어도 그런 문제를 푸는 데 맞춰 만들어졌습니다. 그런데 인터넷이 보급되면서 큰일을 빨리 처리하기보다는 아주 단순한, 예를 들어 네트워크로 정적 파일을 전송하는 일 같이 큰 연산 성능이 필요 없는 작업을 아주 많은 사람에게 동시에 제공하도록 처리하는 게 중요해졌습니다. ‘C10K 문제’는 이런 관점에서 당시 소프트웨어 기술이 하드웨어 성능을 충분히 활용하고 있지 못하고 있다고 지적함으로써 해법을 탐구하고 제시하는 것이 목적이었습니다. ‘C10K 문제’는 많은 기술자에게 영감을 줬고 이에 반응해 여러 시도가 있었습니다. lighttpd 같이 즉각적으로 만들어진 기술도 있었고 토네이도(Tornado)처럼 10여 년이 지난 후에 만들어진 기술도 있습니다. 이제는 주류 플랫폼이 된 노드.js(Node.js)도 ‘C10K 문제’의 산물이라고 볼 수 있습니다. 21세기에 만들어진 대부분의 인터넷 관련 기술에 ‘C10K 문제’가 직간접적인 영향을 줬고 방향성을 제시해 비동기, 이벤트 구동, 반응형 같은 개념이 적극적으로 보급되고 적용됐습니다. 이 책에서 다루는 엔진엑스도 ‘C10K 문제’에서 영감을 받은 프로젝트 중 하나입니다. 엔진엑스가 대중에게 알려진 것은 최근이지만 프로젝트의 시작은 2004년, ‘C10K 문제’가 업계에 던져지고 얼마 되지 않아서입니다. lighttpd처럼 비동기 처리로 최대한 많은 일(파일을 고객에게 전송하는 일)을 효율적으로 처리하고자 시작된 프로젝트였던 것입니다. 그렇게 시작된 엔진엑스 프로젝트가 점차 인정받아 인터넷 세상의 주류로 편입되고 이제는 아파치와 대등한 위치에서 경쟁하게 됐습니다. 어떤 통계에서는 이미 시장 점유율에서 아파치를 앞서기도 했으며 성장세는 더욱 빨라지고 있습니다. 비교적 인지도가 높고 오래 운영되고 있는 웹 서버들은 아직 아파치를 많이 사용하지만 엔진엑스로 교체하는 빈도가 높아지고 있으며 마이크로서비스 붐을 타고 엔진엑스는 더 적극적으로 활용되고 있습니다. 이 책은 엔진엑스의 폭넓은 지식을 다양한 관점에서 제공합니다. 컴파일해서 기본적인 웹 서버를 설정하는 안내, 각종 모듈의 설정법, PHP와 파이썬과 연동하는 방법, 아파치처럼 구성하거나 아파치를 대체하는 방법, 본격적인 서비스를 제공하는 데 필요한 고급 주제, 사례집 등 한 권의 책으로 최대한 여러 사람의 필요를 충족시키고자 한 노력이 엿보입니다. 책을 번역하는 동안 이 책에서 다룬 기술들이 대부분 버전업 됐고 SPDY 같은 기술은 HTTP/2로 대체됐습니다. 책 출판 시점에 맞게 각종 기술의 버전과 내용을 가급적 최신 내용으로 손보고 실행되는지 확인했으니 읽고 활용하는 데 문제가 없을 것입니다. 아무쪼록 이 책이 많은 분에게 큰 도움이 됐으면 합니다. |