Nginx · 모듈 개발 편 해부 (6) 프로필 config 입문
저자: 유 대 · Poechant (종 초) 메 일 박스: zhongchao. ustc \ # gmail. com (\ # - > @) 블 로그: 블 로그. CSDN. net / Poechant 날짜: June 13th, 2012 본 고 는 config 파일 의 초급 표기 법 을 입문 으로 소개 한다.우선 config 가 셸 스 크 립 트 라 는 것 을 알 아야 합 니 다.
./configure
때 호출 된 것 입 니 다.그래서 셸 스 크 립 트 를 쓰 는 방식 으로 config 를 쓸 수 있 습 니 다.일반적인 형식 은 다음 과 같다.ngx_addon_name=ngx_http_XXXXXXXXXXXXX_module
HTTP_MODULES="$HTTP_MODULES ngx_http_XXXXXXXXXXXXX_module"
NGX_ADDON_SRCS="$NGX_ADDON_SRCS $ngx_addon_dir/ngx_http_XXXXXXXXXXXXX_module.c"
이 세 마디 말의 의 미 는:
모듈 이름 모듈 유형 (그 역할 영역 을 표징) 모듈 원본 파일 그래서 서로 다른 기능 의 모듈 의 프로필 은 대동소이 합 니 다.
Handler 모듈 의 프로필
모듈 이름 이 ngx 이면http_poechant_handler_module, 그러면 프로필 내용 은 다음 과 같 습 니 다.
ngx_addon_name=ngx_http_poechant_handler_module
HTTP_MODULES="$HTTP_MODULES ngx_http_poechant_handler_module"
NGX_ADDON_SRCS="$NGX_ADDON_SRCS $ngx_addon_dir/ngx_http_poechant_handler_module.c"
Filter 모듈 의 프로필
모듈 이름 이 ngx 이면http_poechant_filter_module, 그러면 프로필 내용 은 다음 과 같 습 니 다.
ngx_addon_name=ngx_http_poechant_filter_module
HTTP_AUX_FILTER_MODULES="$HTTP_AUX_FILTER_MODULES ngx_http_poechant_filter_module"
NGX_ADDON_SRCS="$NGX_ADDON_SRCS $ngx_addon_dir/ngx_http_poechant_filter_module.c"
nginx - http - footer - filter 모듈 을 예 로 들 면
ngx_addon_name=ngx_http_footer_filter_module
HTTP_FILTER_MODULES="$HTTP_FILTER_MODULES ngx_http_footer_filter_module"
NGX_ADDON_SRCS="$NGX_ADDON_SRCS $ngx_addon_dir/ngx_http_footer_filter_module.c"
Load balancer 모듈 의 프로필
이 ngxhttp_php_memcache_standard_balancer 모듈 의 예:
ngx_addon_name=ngx_http_php_memcache_standard_balancer
HTTP_MODULES="$HTTP_MODULES ngx_http_php_memcache_standard_balancer_module"
NGX_ADDON_SRCS="$NGX_ADDON_SRCS $ngx_addon_dir/ngx_http_php_memcache_standard_balancer.c"
복잡 한 프로필
복잡 한 설정 파일 은 예비 행 위 를 하 는 것 에 불과 합 니 다. 셸 스 크 립 트 방식 으로 일 을 합 니 다. 예 를 들 어 drizzle - nginx - module 이라는 제3자 모듈 의 설정 파일 은 다음 과 같 습 니 다.
ngx_feature_name=
ngx_feature_run=no
ngx_feature_incs="#include <libdrizzle/drizzle_client.h>"
ngx_feature_test="drizzle_version();"
if [ -n "$LIBDRIZZLE_INC" -o -n "$LIBDRIZZLE_LIB" ]; then
# explicit set libdrizzle lib path
ngx_feature="libdrizzle library in directories specified by LIBDRIZZLE_INC ($LIBDRIZZLE_INC) and LIBDRIZZLE_LIB ($LIBDRIZZLE_LIB)"
ngx_feature_path="$LIBDRIZZLE_INC"
if [ $NGX_RPATH = YES ]; then
ngx_feature_libs="-R$LIBDRIZZLE_LIB -L$LIBDRIZZLE_LIB -ldrizzle"
else
ngx_feature_libs="-L$LIBDRIZZLE_LIB -ldrizzle"
fi
. auto/feature
else
# auto-discovery
ngx_feature="libdrizzle library"
ngx_feature_path=
ngx_feature_libs="-ldrizzle"
. auto/feature
if [ $ngx_found = no ]; then
# FreeBSD, OpenBSD
ngx_feature="libdrizzle library in /usr/local/"
ngx_feature_path="/usr/local/include/libdrizzle-1.0"
if [ $NGX_RPATH = YES ]; then
ngx_feature_libs="-R/usr/local/lib -L/usr/local/lib -ldrizzle"
else
ngx_feature_libs="-L/usr/local/lib -ldrizzle"
fi
. auto/feature
fi
if [ $ngx_found = no ]; then
# NetBSD
ngx_feature="libdrizzle library in /usr/pkg/"
ngx_feature_path="/usr/pkg/include/libdrizzle-1.0"
if [ $NGX_RPATH = YES ]; then
ngx_feature_libs="-R/usr/pkg/lib -L/usr/pkg/lib -ldrizzle"
else
ngx_feature_libs="-L/usr/pkg/lib -ldrizzle"
fi
. auto/feature
fi
if [ $ngx_found = no ]; then
# MacPorts
ngx_feature="libdrizzle library in /opt/local/"
ngx_feature_path="/opt/local/include/libdrizzle-1.0"
if [ $NGX_RPATH = YES ]; then
ngx_feature_libs="-R/opt/local/lib -L/opt/local/lib -ldrizzle"
else
ngx_feature_libs="-L/opt/local/lib -ldrizzle"
fi
. auto/feature
fi
fi
if [ $ngx_found = yes ]; then
CORE_INCS="$CORE_INCS $ngx_feature_path"
CORE_LIBS="$CORE_LIBS $ngx_feature_libs"
else
cat << END
$0: error: the ngx_drizzle addon requires the libdrizzle library.
END
exit 1
fi
ngx_addon_name=ngx_http_drizzle_module
HTTP_MODULES="$HTTP_MODULES ngx_http_drizzle_module"
NGX_ADDON_SRCS="$NGX_ADDON_SRCS $ngx_addon_dir/src/ngx_http_drizzle_module.c $ngx_addon_dir/src/ngx_http_drizzle_handler.c $ngx_addon_dir/src/ngx_http_drizzle_processor.c $ngx_addon_dir/src/ngx_http_drizzle_upstream.c $ngx_addon_dir/src/ngx_http_drizzle_util.c $ngx_addon_dir/src/ngx_http_drizzle_output.c $ngx_addon_dir/src/ngx_http_drizzle_keepalive.c $ngx_addon_dir/src/ngx_http_drizzle_quoting.c $ngx_addon_dir/src/ngx_http_drizzle_checker.c"
NGX_ADDON_DEPS="$NGX_ADDON_DEPS $ngx_addon_dir/src/ddebug.h $ngx_addon_dir/src/ngx_http_drizzle_module.h $ngx_addon_dir/src/ngx_http_drizzle_handler.h $ngx_addon_dir/src/ngx_http_drizzle_processor.h $ngx_addon_dir/src/ngx_http_drizzle_upstream.h $ngx_addon_dir/src/ngx_http_drizzle_util.h $ngx_addon_dir/src/ngx_http_drizzle_output.h $ngx_addon_dir/src/resty_dbd_stream.h $ngx_addon_dir/src/ngx_http_drizzle_keepalive.h $ngx_addon_dir/src/ngx_http_drizzle_quoting.h $ngx_addon_dir/src/ngx_http_drizzle_checker.h"
have=NGX_DRIZZLE_MODULE . auto/have
앞에서 언급 한 프로필 config 는
./configure
때 호출 된 것 입 니 다. 제 가 앞에서 쓴 시리즈 의 소개 에 따 르 면 일부 도구 류 스 크 립 트 는 사용 할 수 있 습 니 다. 예 를 들 어 auto/feature
모듈 drizzle - nginx - module 의 설정 파일 에서 사용 한 것 과 같 습 니 다.auto/feature
기능 기억 나 세 요?'Nginx · 자동 스 크 립 트 편 해부 (4) 도구 형 스 크 립 트 시리즈' 를 돌 이 켜 볼 수 있 습 니 다.출력 검사 알림 초기 화
ngx_found
초기 화 ngx_have_feature
초기 화 ngx_feature_inc_path
자동 테스트 프로그램 생 성 자동 테스트 프로그램 컴 파일 ngx_feature_run
에 따라 처리 테스트 프로그램 실행 가능 한 파일 삭제 NGX_AUTOSET
- 유 대 에서 온 CSDN 블 로그: Blog. CSDN. net / Poechant
-
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
간단! Certbot을 사용하여 웹 사이트를 SSL(HTTPS)화하는 방법초보자가 인프라 주위를 정돈하는 것은 매우 어렵습니다. 이번은 사이트를 간단하게 SSL화(HTTP에서 HTTPS통신)로 변경하는 방법을 소개합니다! 이번에는 소프트웨어 시스템 Nginx CentOS7 의 환경에서 S...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.