Nginx 컴 파일 설정 스 크 립 트 편 (3) - 소스 관련 변수 스 크 립 트 auto / sources

Nginx 컴 파일 설정 스 크 립 트 편 (3) - 소스 관련 변수 스 크 립 트 auto / sources
  • 1. 관련 글
  • 2. 머리말
  • 3. auto / sources 파일 내용 상세 설명
  • 3.1, 핵심 모듈
  • 3.1.1, 핵심 모듈 명 (CORE MODULES)
  • 3.1.2, 핵심 모듈 헤더 파일 이 있 는 디 렉 터 리 (CORE INCS)
  • 3.1.3, 핵심 모듈 헤더 파일 (CORE DEPS)
  • 3.1.4, 핵심 모듈 원본 파일 (CORE SRCS)
  • 3.2, 사건 모듈
  • 3.2.1, 이벤트 모듈 이름 (EVENT MODULES)
  • 3.2.2, 이벤트 모듈 헤더 파일 이 있 는 디 렉 터 리 (EVENT INCS)
  • 3.2.3, 이벤트 모듈 헤더 파일 (EVENT DEPS)
  • 3.2.4, 이벤트 모듈 원본 파일 (CORE SRCS)
  • 3.3, 이벤트 구동 모듈
  • 3.3.1, select 모듈
  • 3.3.2, poll 모듈
  • 3.3.3, kqueue 모듈
  • 3.3.4, devpoll 모듈
  • 3.3.5, eventport 모듈
  • 3.3.6, epoll 모듈
  • 3.3.7, iocp 모듈
  • 3.3.8, aio 모듈
  • 3.4, 운영 체제 관련 항목
  • 3.4.1 유 닉 스 관련
  • 3.4.2 POSIX 관련
  • 3.4.3 스 레 드 풀 관련
  • 3.4.4, FreeBSD 관련
  • 3.4.5, Linux 관련
  • 3.4.6, Solaris 관련
  • 3.4.7, 다윈 관련
  • 3.4.8, Win 32 관련
  • 3.5, HTTP 관련
  • 4. 총화
  • 1. 관련 글
    본 고 를 공부 하려 면 Nginx 소스 코드 와 관련 된 컴 파일 환경 을 구축 해 야 하고 본 고 는 앞의 글 과 선후 적 인 호응 관 계 를 가지 기 때문에 다음 과 같은 문장 순서에 따라 읽 는 것 을 권장 합 니 다.
  • CentOS 7 은 소스 코드 를 사용 하여 Nginx 를 컴 파일 하고 autoindex 모듈
  • 을 설정 합 니 다.
  • Nginx 설정 컴 파일 스 크 립 트 편 (1) - 설정 스 크 립 트 분석 auto / options
  • Nginx 컴 파일 설정 스 크 립 트 편 (2) - Makefile 스 크 립 트 자동 / init 초기 화
  • 2. 머리말configure 스 크 립 트 가 실 행 된 후 auto/init 스 크 립 트 가 실 행 됩 니 다. 이 스 크 립 트 는 auto/sources 파일 의 중요 한 구성 부분 입 니 다. 다음 에 소개 objs/Makefile 안의 내용 auto/sources 파일 은 configure 스 크 립 트 설정 파일 에 대한 마지막 글 에서 설명 합 니 다)
    3. auto / sources 파일 내용 상세 설명
    3.1 핵심 모듈
    3.1.1 핵심 모듈 이름 (CORE MODULES)Nginx 변 수 는 CORE_MODULES 의 핵심 모듈 을 저장 하고 기본 값 은 Nginx, ngx_core_modulengx_errlog_module 가 있 으 며 코드 는 다음 과 같다.
    CORE_MODULES="ngx_core_module ngx_errlog_module ngx_conf_module"
    

    3.1.2 핵심 모듈 헤더 파일 이 있 는 디 렉 터 리 (CORE INCS)
    이 변 수 는 ngx_conf_module 핵심 모듈 헤더 파일 이 있 는 디 렉 터 리 를 저장 합 니 다. 독자 가 Nginx 컴 파일 규칙 을 알 고 있다 면 후속 작성 gcc 시 헤더 파일 을 지정 하여 디 렉 터 리 를 찾 는 데 사용 되 는 것 임 을 쉽게 알 수 있 습 니 다. 예 를 들 어 Makefile 디 렉 터 리 에서 헤더 파일 을 먼저 찾 겠 다 고 표시 합 니 다.코드 는 다음 과 같 습 니 다:
    CORE_INCS="src/core"
    

    3.1.3 핵심 모듈 헤더 파일 (CORE DEPS)
    이 변 수 는 -I src/core 핵심 모듈 헤더 파일 의 경로 (상대 경로) 를 저장 합 니 다. 코드 는 다음 과 같 습 니 다 (생략).
    CORE_DEPS="src/core/nginx.h \
               src/core/ngx_config.h \
               src/core/ngx_core.h \
               ...
               src/core/ngx_syslog.h"
    

    3.1.4 핵심 모듈 원본 파일 (CORE SRCS)
    이 변 수 는 src/core 핵심 모듈 원본 파일 의 경로 (상대 경로) 를 저장 합 니 다. 코드 는 다음 과 같 습 니 다 (생략).
    CORE_SRCS="src/core/nginx.c \
               src/core/ngx_log.c \
               src/core/ngx_palloc.c \
               ...
               src/core/ngx_syslog.c"
    

    3.2 이벤트 모듈
    3.2.1 이벤트 모듈 이름 (EVENT MODULES)Nginx 변 수 는 Nginx 이벤트 모듈 을 저장 하고 기본 값 EVENT_MODULESNginx 이 있 으 며 코드 는 다음 과 같다.
    EVENT_MODULES="ngx_events_module ngx_event_core_module"
    

    3.2.2 이벤트 모듈 헤더 파일 이 있 는 디 렉 터 리 (EVENT INCS)
    이 변 수 는 ngx_events_module 이벤트 모듈 헤더 파일 이 있 는 디 렉 터 리 를 저장 합 니 다. 코드 는 다음 과 같 습 니 다.
    EVENT_INCS="src/event src/event/modules"
    

    3.2.3 이벤트 모듈 헤더 파일 (EVENT DEPS)
    이 변 수 는 ngx_event_core_module 이벤트 모듈 헤더 파일 의 경로 (상대 경로) 를 저장 합 니 다. 코드 는 다음 과 같 습 니 다.
    EVENT_DEPS="src/event/ngx_event.h \
                src/event/ngx_event_timer.h \
                src/event/ngx_event_posted.h \
                src/event/ngx_event_connect.h \
                src/event/ngx_event_pipe.h"
    

    3.2.4 이벤트 모듈 원본 파일 (CORE SRCS)
    이 변 수 는 Nginx 이벤트 모듈 원본 파일 의 경로 (상대 경로) 를 저장 합 니 다. 코드 는 다음 과 같 습 니 다.
    EVENT_SRCS="src/event/ngx_event.c \
                src/event/ngx_event_timer.c \
                src/event/ngx_event_posted.c \
                src/event/ngx_event_accept.c \
                src/event/ngx_event_udp.c \
                src/event/ngx_event_connect.c \
                src/event/ngx_event_pipe.c"
    

    3.3 이벤트 구동 모듈Nginx 사건 구동 모델 은 Nginx, Nginx, select, poll, kqueue, devpoll, eventport, epoll, iocp 를 포함한다.본 고 는 이러한 사건 구동 모델 의 원리 와 공통점 과 차이 점 을 토론 하지 않 는 다.
    3.3.1 select 모듈
    SELECT_MODULE=ngx_select_module
    SELECT_SRCS=src/event/modules/ngx_select_module.c
    WIN32_SELECT_SRCS=src/event/modules/ngx_win32_select_module.c
    

    3.3.2, poll 모듈
    POLL_MODULE=ngx_poll_module
    POLL_SRCS=src/event/modules/ngx_poll_module.c
    WIN32_POLL_SRCS=src/event/modules/ngx_win32_poll_module.c
    

    3.3.3 kqueue 모듈
    KQUEUE_MODULE=ngx_kqueue_module
    KQUEUE_SRCS=src/event/modules/ngx_kqueue_module.c
    

    3.3.4 devpoll 모듈
    DEVPOLL_MODULE=ngx_devpoll_module
    DEVPOLL_SRCS=src/event/modules/ngx_devpoll_module.c
    

    3.3.5 이벤트 포트 모듈
    EVENTPORT_MODULE=ngx_eventport_module
    EVENTPORT_SRCS=src/event/modules/ngx_eventport_module.c
    

    3.3.6, epoll 모듈
    EPOLL_MODULE=ngx_epoll_module
    EPOLL_SRCS=src/event/modules/ngx_epoll_module.c
    

    3.3.7 iocp 모듈
    IOCP_MODULE=ngx_iocp_module
    IOCP_SRCS=src/event/modules/ngx_iocp_module.c
    

    3.3.8, aio 모듈
    FILE_AIO_SRCS="src/os/unix/ngx_file_aio_read.c"
    LINUX_AIO_SRCS="src/os/unix/ngx_linux_aio_read.c"
    

    3.4 운영 체제 관련 항목
    3.4.1 유 닉 스 관련
  • 헤더 파일 이 있 는 디 렉 터 리 (UNIX INCS)
  • UNIX_INCS="$CORE_INCS $EVENT_INCS src/os/unix"
    
  • 헤더 파일 (UNIX DEPS)
  • UNIX_DEPS="$CORE_DEPS $EVENT_DEPS \
                src/os/unix/ngx_time.h \
                src/os/unix/ngx_errno.h \
                ...
                src/os/unix/ngx_process_cycle.h"
    
  • 원본 파일 (UNIX SRCS)
  • UNIX_SRCS="$CORE_SRCS $EVENT_SRCS \
                src/os/unix/ngx_time.c \
                src/os/unix/ngx_errno.c \
                ...
                src/os/unix/ngx_process_cycle.c"
    

    3.4.2 POSIX 관련
  • 헤더 파일 (POSIX DEPS)
  • POSIX_DEPS=src/os/unix/ngx_posix_config.h
    

    3.4.3 스 레 드 탱크 관련
  • 모듈 (THREAD POOL MODULE)
  • THREAD_POOL_MODULE=ngx_thread_pool_module
    
  • 헤더 파일 (THREAD POOL DEPS)
  • THREAD_POOL_DEPS=src/core/ngx_thread_pool.h
    
  • 원본 파일 (THREAD POOL SRCS)
  • THREAD_POOL_SRCS="src/core/ngx_thread_pool.c
                      src/os/unix/ngx_thread_cond.c
                      src/os/unix/ngx_thread_mutex.c
                      src/os/unix/ngx_thread_id.c"
    

    3.4.4 FreeBSD 관련
  • 헤더 파일 (FREEBSD DEPS)
  • FREEBSD_DEPS="src/os/unix/ngx_freebsd_config.h src/os/unix/ngx_freebsd.h"
    
  • 원본 파일 (FREEBSD SRCS)
  • FREEBSD_SRCS=src/os/unix/ngx_freebsd_init.c
    
  • sendfile 메커니즘 에 관 한 원본 파일 (FREEBSD SENDFILE SRCS)
  • FREEBSD_SENDFILE_SRCS=src/os/unix/ngx_freebsd_sendfile_chain.c
    

    3.4.5 Linux 관련
  • 헤더 파일 (LINUX DEPS)
  • LINUX_DEPS="src/os/unix/ngx_linux_config.h src/os/unix/ngx_linux.h"
    
  • 원본 파일 (LINUX SRCS)
  • LINUX_SRCS=src/os/unix/ngx_linux_init.c
    
  • sendfile 메커니즘 에 대한 원본 파일 (LINUX SENDFILE SRCS)
  • LINUX_SENDFILE_SRCS=src/os/unix/ngx_linux_sendfile_chain.c
    

    3.4.6 Solaris 관련
  • 헤더 파일 (SOLARIS DEPS)
  • SOLARIS_DEPS="src/os/unix/ngx_solaris_config.h src/os/unix/ngx_solaris.h"
    
  • 원본 파일 (SOLARIS SRCS)
  • SOLARIS_SRCS=src/os/unix/ngx_solaris_init.c
    
  • sendfile 메커니즘 에 대한 원본 파일 (SOLARIS SENDFILEV SRCS)
  • SOLARIS_SENDFILEV_SRCS=src/os/unix/ngx_solaris_sendfilev_chain.c
    

    3.4.7 다윈 관련
  • 헤더 파일 (DARWIN DEPS)
  • DARWIN_DEPS="src/os/unix/ngx_darwin_config.h src/os/unix/ngx_darwin.h"
    
  • 원본 파일 (DARWIN SRCS)
  • DARWIN_SRCS=src/os/unix/ngx_darwin_init.c
    
  • sendfile 메커니즘 에 대한 원본 파일 (DARWIN SENDFILE SRCS)
  • DARWIN_SENDFILE_SRCS=src/os/unix/ngx_darwin_sendfile_chain.c
    

    3.4.8, Win 32 관련
  • 헤더 파일 이 있 는 디 렉 터 리 (WIN32 INCS)
  • WIN32_INCS="$CORE_INCS $EVENT_INCS src/os/win32"
    
  • 헤더 파일 (WIN32 DEPS)
  • WIN32_DEPS="$CORE_DEPS $EVENT_DEPS \
                src/os/win32/ngx_win32_config.h \
                src/os/win32/ngx_time.h \
                ...
                src/os/win32/ngx_process_cycle.h"
    
  • 관련 헤더 파일 설정 (WIN32 CONFIG)
  • WIN32_CONFIG=src/os/win32/ngx_win32_config.h
    
  • 원본 파일 (WIN32 SRCS)
  • WIN32_SRCS="$CORE_SRCS $EVENT_SRCS \
                src/os/win32/ngx_errno.c \
                src/os/win32/ngx_alloc.c \
                ...
                src/event/ngx_event_acceptex.c"
    
  • Nginx 는 Win 32 의 아이콘 파일 (NGX WIN32 ICONS)
  • 에 사 용 됩 니 다.
    NGX_WIN32_ICONS="src/os/win32/nginx.ico"
    
  • 명령 실행 관련 (NGX WIN32 RC)
  • NGX_WIN32_RC="src/os/win32/nginx.rc"
    

    3.5, HTTP 관련
  • HTTp 파일 처리 핵심 원본 파일 (HTTP FILE CACHE SRCS)
  • HTTP_FILE_CACHE_SRCS=src/http/ngx_http_file_cache.c
    

    4. 총화aio 스 크 립 트 의 내용 은 auto/sources 의 중요 한 구성 부분 입 니 다. 실행 objs/Makefile 스 크 립 트 를 통 해 소스 코드 파일 과 관련 된 내용 을 auto/sources 파일 에 그대로 기록 합 니 다. 현재 어디서 사용 되 는 지 알 수 없 으 며 후속 글 은 더 분석 할 것 입 니 다.

    좋은 웹페이지 즐겨찾기