Nginx 컴 파일 설정 스 크 립 트 편 (3) - 소스 관련 변수 스 크 립 트 auto / sources
13229 단어 Nginx 기술 연구nginxlinux
본 고 를 공부 하려 면
Nginx
소스 코드 와 관련 된 컴 파일 환경 을 구축 해 야 하고 본 고 는 앞의 글 과 선후 적 인 호응 관 계 를 가지 기 때문에 다음 과 같은 문장 순서에 따라 읽 는 것 을 권장 합 니 다.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_module
와 ngx_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_MODULES
과 Nginx
이 있 으 며 코드 는 다음 과 같다.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="$CORE_INCS $EVENT_INCS src/os/unix"
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="$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=src/os/unix/ngx_posix_config.h
3.4.3 스 레 드 탱크 관련
THREAD_POOL_MODULE=ngx_thread_pool_module
THREAD_POOL_DEPS=src/core/ngx_thread_pool.h
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="src/os/unix/ngx_freebsd_config.h src/os/unix/ngx_freebsd.h"
FREEBSD_SRCS=src/os/unix/ngx_freebsd_init.c
FREEBSD_SENDFILE_SRCS=src/os/unix/ngx_freebsd_sendfile_chain.c
3.4.5 Linux 관련
LINUX_DEPS="src/os/unix/ngx_linux_config.h src/os/unix/ngx_linux.h"
LINUX_SRCS=src/os/unix/ngx_linux_init.c
LINUX_SENDFILE_SRCS=src/os/unix/ngx_linux_sendfile_chain.c
3.4.6 Solaris 관련
SOLARIS_DEPS="src/os/unix/ngx_solaris_config.h src/os/unix/ngx_solaris.h"
SOLARIS_SRCS=src/os/unix/ngx_solaris_init.c
SOLARIS_SENDFILEV_SRCS=src/os/unix/ngx_solaris_sendfilev_chain.c
3.4.7 다윈 관련
DARWIN_DEPS="src/os/unix/ngx_darwin_config.h src/os/unix/ngx_darwin.h"
DARWIN_SRCS=src/os/unix/ngx_darwin_init.c
DARWIN_SENDFILE_SRCS=src/os/unix/ngx_darwin_sendfile_chain.c
3.4.8, Win 32 관련
WIN32_INCS="$CORE_INCS $EVENT_INCS src/os/win32"
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=src/os/win32/ngx_win32_config.h
WIN32_SRCS="$CORE_SRCS $EVENT_SRCS \
src/os/win32/ngx_errno.c \
src/os/win32/ngx_alloc.c \
...
src/event/ngx_event_acceptex.c"
NGX_WIN32_ICONS="src/os/win32/nginx.ico"
NGX_WIN32_RC="src/os/win32/nginx.rc"
3.5, HTTP 관련
HTTP_FILE_CACHE_SRCS=src/http/ngx_http_file_cache.c
4. 총화
aio
스 크 립 트 의 내용 은 auto/sources
의 중요 한 구성 부분 입 니 다. 실행 objs/Makefile
스 크 립 트 를 통 해 소스 코드 파일 과 관련 된 내용 을 auto/sources
파일 에 그대로 기록 합 니 다. 현재 어디서 사용 되 는 지 알 수 없 으 며 후속 글 은 더 분석 할 것 입 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
【CoreOS】이중화 구성 Keepalived+NginxLB+NginxWEB(1)(1) IP 주소 192.168.0.50의 VIP (virtual ip)를 가진 서버에 액세스 (2)Docker-Nginx 80번 포트에 착신 (3) 80번 포트 착신 후 Docker-Nignx-Proxy가 Dock...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.