Nginx HTTP 서버 [HTTP 서버를 사용한 고성능 웹 서비스 구축]
- 원서명Nginx HTTP Server - Third Edition: Harness the power of Nginx to make the most of your infrastructure and serve pages faster than ever (ISBN 9781785280337)
- 지은이끌레망 네델꾸(Clément Nedelcu)
- 옮긴이박성철, 구인본
- ISBN : 9791161754017
- 35,000원
- 2020년 03월 31일 펴냄
- 페이퍼백 | 400쪽 | 188*235mm
- 시리즈 : 오픈소스 프로그래밍
책 소개
소스 파일은 아래 깃허브 페이지에서 내려 받으실 수 있습니다.
(https://github.com/AcornPublishing/nginx-http-server3e)
요약
가장 빠르고 안전한 웹 서버 중 하나로 알려진 엔진엑스는 최근 급격히 보급돼 기존 1위 웹 서버였던 아파치의 자리를 이어 받아 인터넷의 가장 많은 웹 서비스를 지탱하는 웹 서버가 됐다. 특히 클라우드 인프라 환경에서는 더욱 중요한 역할을 담당하고 있다.
엔진엑스로 기본 웹 서비스를 제공하는 법, 각종 모듈 설명과 사용법 같은 기본 내용에서부터 운영 중인 서비스를 아파치에서 엔진엑스로 이전하는 법, PHP와 파이썬과 연동하는 법, 대용량 서비스를 제공하는 법까지 엔진엑스와 관련된 폭 넓은 정보를 제공한다.
처음 시작하는 사람을 위한 지침서로, 평소 옆에 두고 자주 찾아 볼 참조 문서로, 특정 문제가 생겼을 때 빠르게 해법을 찾을 수 있는 책으로 두루 쓰일 수 있을 것이다.
이 책에서 다루는 내용
■ 엔진엑스 구성의 기본 구문, 구조, 의미
■ 엔진엑스의 고급 부하 분산 기능과 혁신적인 최신 IO 메커니즘
■ 모든 내장 모듈 활성화, 구성, 사용법
■ 엔진엑스 재작성(Rewrite) 모듈로 고수준의 재작성 규칙 설정
■ FastCGI와 uwsgi로 PHP, 파이썬 등과 함께 작동하는 엔진엑스 설정
■ 엔진엑스를 기존 HTTP 서버의 앞단에서 동작하도록 구성
■ 구성 파일의 쉬운 조작법과 다양한 상황에 적용하는 방법
■ 일반적인 문제와 이를 피하는 방법
이 책의 대상 독자
초기 설정 단계와 고급 주제를 모두 다루는 이 책은 기존 웹 서버 소프트웨어를 교체하거나, 지금까지 사용하는 애플리케이션에 새 도구를 통합하는 등 인프라스트럭처를 최적화할 방법에 관심 있는 웹 관리자에게 적합하다. 웹 사이트 방문자와 운영체제가 아파치의 한계를 느꼈다면 이 책이 바로 필요한 책이다.
이 책의 구성
1장, ‘엔진엑스 설치’에서는 엔진엑스를 다운로드하고 필요에 맞게 컴파일하는 초기 단계를 알아본다.
2장, ‘기본 엔진엑스 구성’에서는 엔진엑스 구성 구조와 구문의 핵심을 다룬다.
3장, ‘HTTP 구성’에서는 간단한 정적 사이트를 제공할 수 있는 HTTP 서버 구성 요소의 구성을 소개한다.
4장, ‘모듈 구성’에서는 표준 엔진엑스 패키지에서 사용할 수 있는 다양한 모듈을 깊이 다룬다.
5장, ‘엔진엑스와 PHP/파이썬 통합’에서는 엔진엑스로 동적 콘텐츠를 제공하도록 백엔드 프로그램을 설정하는 포괄적인 지침을 다룬다.
6장, ‘아파치와 엔진엑스 연동’에서는 동일 아키텍처에서 기존 웹 사이트와 서비스를 개선하는 데 두 서버 애플리케이션이 어떻게 협업할 수 있는지 설명한다.
7장, ‘아파치에서 엔진엑스로 이전’에서는 서버나 웹 인프라스트럭처를 아파치에서 엔진엑스로 완전히 전환하는 데 필요한 핵심 정보를 알아본다.
8장, ‘부하 분산과 최적화’에서는 부하가 심한 사이트를 관리하는 서버 관리자에게 유용한 단서를 제공한다.
9장, ‘사례 연구’에서는 엔진엑스를 다루는 가장 일반적인 작업을 포함해서 몇 가지 실제 사례의 실무 접근법을 살펴본다.
10장, ‘문제 해결’에서는 엔진엑스를 설정하거나 운영하면서 만나는 가장 흔한 문제를 다룬다.
목차
목차
- 1장. 엔진엑스 설치
- 사전 구성 요소 설정
- GCC(그누 컴파일러 모음)
- PCRE 라이브러리
- zlib 라이브러리
- OpenSSL
- 엔진엑스 다운로드
- 웹 사이트와 자료
- 버전 분기
- 특징
- 다운로드와 압축 해제
- 구성 옵션
- 간단한 방법
- 경로 지정
- 사전 구성 요소 옵션
- 모듈 옵션
- 여러 가지 다양한 옵션
- 구성 예
- 빌드 구성 문제
- 사전 구성 요소 설치 문제
- 디렉터리 존재와 쓰기 가능 여부 문제
- 프로그램 컴파일과 설치
- 엔진엑스 서비스 제어
- 데몬과 서비스
- 사용자와 그룹
- 엔진엑스 커맨드라인 스위치
- 데몬 시작과 종료
- 구성 테스트
- 기타 스위치
- 시스템 서비스 추가
- 시스템 V 스크립트
- init 스크립트
- 데비안 기반 배포본용 init 스크립트
- 레드햇 기반 배포본용 init 스크립트
- 스크립트 설치
- 엔진엑스 플러스
- 요약
- 사전 구성 요소 설정
- 2장. 기본 엔진엑스 구성
- 구성 파일 구문
- 구성 지시어
- 구조와 포함
- 지시어 블록
- 고급 언어 규칙
- 기반 모듈의 지시어
- 기반 모듈 소개
- 엔진엑스 프로세스 아키텍처
- 핵심 모듈 지시어
- 이벤트 모듈
- 구성 모듈
- 필수 조정
- 서버 테스트
- 테스트 서버 만들기
- 성능 테스트
- 중단 없이 엔진엑스 업그레이드
- 요약
- 구성 파일 구문
- 3장. HTTP 구성
- HTTP 핵심 모듈
- 구조 블록
- 모듈 지시어
- 소켓과 호스트 구성
- 경로와 문서
- 클라이언트 요청
- MIME 타입
- 제한과 제약
- 파일 처리와 캐시
- 기타 지시어
- 모듈 변수
- 요청 헤더
- 응답 헤더
- 엔진엑스 생성
- location 블록
- 위치 수정자
- 탐색 순서와 우선순위
- 요약
- HTTP 핵심 모듈
- 4장. 모듈 구성
- 재작성 모듈
- 정규 표현식 복습
- 내부 요청
- 조건부 구조
- 지시어
- 일반 재작성 규칙
- SSI 모듈
- 모듈 지시어와 변수
- SSI 명령
- 부가 모듈
- 웹 사이트 접근 제어와 로그
- 제한과 제약
- 콘텐트와 인코딩
- 방문자 정보
- 클라이언트 분리 모듈
- SSL과 보안
- 기타 잡다한 모듈
- 서드파티 모듈
- 요약
- 재작성 모듈
- 5장. 엔진엑스와 PHP/파이썬 통합
- FastCGI 소개
- CGI 구조 이해
- 공통 게이트웨이 인터페이스(CGI)
- 고속 공통 게이트웨이 인터페이스
- uWSGI와 SCGI
- 주요 지시어
- FastCGI 캐싱과 버퍼링
- 엔진엑스와 PHP
- 아키텍처
- PHP-FPM
- PHP와 PHP-FPM 설정
- 엔진엑스 구성
- 파이썬과 엔진엑스
- 장고
- 파이썬과 장고 설정
- 엔진엑스 구성
- 요약
- FastCGI 소개
- 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 블록 문제
- 비효율적인 구문
- 예상치 못한 동작
- 요약
- 문제 해결의 일반적인 조언