메뉴 건너뛰기

조회 수 169 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

NGINX를 컴파일할때 추가/제거 할 수 있는 모듈들을 살펴봅니다.

Configure 경로 설정

경로 설정에 사용되는 스위치의 전체 목록

스위치사용법기본 값
--prefix=...엔진엑스가 설치되는 기본 폴더/usr/local/nginx
유의사항: 다른 스위치의 설정에 사용된 모든 상대 경로는 기본 폴더 밑에 연결된다.
--sbin-path=...엔진엑스 바이너리 파일이 설치되는 경로<prefix>/sbin/nginx
--conf-path=...주 환경 설정 파일의 경로<prefix>/conf/nginx.conf
--error-log-path=...에러 로그 파일의 위치. 에러 로그 경로는 환경 설정 파일안에서 구체적으로 설정할 수도 있다. 이 경로는 환경 설정 파일에서 아무런 에러 로그 지시어를 사용하지 않았을 경우에만 적용된다.<prefix>/logs/error.log
--pid-path=...엔진엑스 pid 파일의 경로. pid 파일 경로는 환경 설정 파일안에서 지정할 수도 있지만 그렇지 않으면 이 스위치에서 지정한 값이 사용된다.<prefix>/logs/nginx.pid
유의사항: pid 파일은 프로세스 식별자를 포함하는 단순한 텍스트 파일이다. 다른 애플리케이션들이 현재 실행중인 프로그램의 pid 파일은 잘 알려진 곳에 위치한다.
--lock-path=...잠금 파일의 경로. 환경 설정 파일에서 지정하지 않으면 이 스위치에서 지정한 값이 사용된다.<prefix>/logs/nginx.lock
유의사항: 잠금 파일은 다른 애플리케이션들이 프로그램의 실행 여부를 판단하는데 사용한다. 엔진엑스의 경우는 프로세스가 두 번 시작되지 않게 보장하는데 사용한다.
--with-perl_modules_path=...펄 모듈의 경로를 정의한다. 펄 모듈을 추가하려면 반드시 이 스위치를 정의해야 한다. 
--with-perl=...펄 바이너리 파일 경로. 펄 스크립트를 실행할 때 사용된다. 펄 스크립트의 실행을 허용하려면 반드시 이 경로가 설정돼야 한다. 
--http-log-path=...접근 로그의 위치를 정의한다. 이 경로는 환경 설정 파일에서 접근 로그 지시어를 사용하지 않았을 때만 적용된다.<prefix>/logs/access.log
--http-client-body-temp-path=...클라이언트 요청에 의한 임시 파일의 저장에 사용되는 디렉토리<prefix>/client_body_temp
--http-proxy-temp-path=...프록시가 사용하는 임시 파일의 위치<prefix>/proxy_temp
--http-fastcgi-temp-path=...HTTP FastCGI 모듈이 사용하는 임시 파일의 위치<prefix>/fastcgi_temp
--builddir=...애플리케이션 빌드 위치 

엔진엑스의 경로는 기본폴더만 /usr/local/nginx로 잡아주면 그 하위에 모든 파일들이 설치된다.

소스 컴파일 설치시와 apt-get 설치시의 경로가 달라 헷갈릴수 있는데 소스 컴파일시 경로를 맞춰주면 좀 덜하다.


컴파일 시 경로 맞추기 예)

$ ./configure \

--prefix=/usr/local/nginx \

--conf-path=/etc/nginx/nginx.conf \

--sbin-path=/usr/sbin \

--http-log-path=/var/log/nginx/access.log \

--error-log-path=/var/log/nginx/error.log \

--pid-path=/var/run/nginx.pid \

--lock-path=/var/lock/nginx.lock \

--http-client-body-temp-path=/var/lib/nginx/body \

--http-proxy-temp-path=/var/lib/nginx/proxy \

--http-fastcgi-temp-path=/var/tmp/nginx/fastcgi_temp \

--http-uwsgi-temp-path=/var/tmp/nginx/fastcgi_temp \

--http-scgi-temp-path=/var/tmp/nginx/fastcgi_temp \

위처럼 컴파일시 경로를 맞춰줬을 경우에는 삭제하거나 새로 설치할때도 일일이 경로를 찾아가야 하는 수고가 필요하다.

선행 요소

선행 요소(의존성 패키지)는 라이브러리와 바이너리 형태로 제공된다. 간혹 이미 시스템에 설치되어 있다하더라도 환경 설정 스크립트가 선행 요소의 위치를 찾지 못하는 경우가 있다. 그 원인은 다양하지만 한 예로 표준 디렉토리가 아닌 곳에 설치하는 경우를 들 수 있다. 이런 문제를 해결하기 위해 다음과 같은 스위치를 사용해 선행 요소의 경로를 지정할 수 있다.

컴파일러 옵션
--with-cc=...C 컴파일러의 대체 위치를 지정한다.
--with-cpp=...C 전처리기(preprocessor)의 대체 위치를 지정한다.
--with-cc-opt=...C 컴파일러 커맨드라인에 들어가는 추가 옵션을 정의한다.
--with-ld=opt=...C 링커 커맨드라인에 들어가는 추가 옵션을 정의한다.
--with-cpu-opt=...대상 프로세서 구조를 지정하며, 다음 값 중 하나를 선택한다. Pentium, pentiumpro, pentium3, pentium4, athlon, opteron, sparc32, sparc64, ppc64
PCRE 옵션
--without-pcrePCRE 라이브러리를 사용하지 않는다. 정규표현식 지원이 제거돼 재작성 모듈도 사용할 수 없게 되므로 이 설정은 권장하지 않는다.
--with-pcrePCRE 라이브러리를 사용하게 강제한다.
--with-pcre=...PCRE 라이브러리 소스코드의 경로를 지정한다.
--with-pcre-opt=...PCRE 라이브러리를 빌드할 때 사용되는 추가 옵션이다.
MD5 옵션
--with-md5=...MD5 라이브러리 소스의 경로를 지정한다.
--with-md5-opt=...MD5 라이브러리를 빌드할 때 사용되는 추가 옵션이다.
--with-md5-asmMD5 라이브러리용 어셈블러를 사용한다.
SHA1 옵션
--with-sha1=...SHA1 라이브러리 소스의 경로를 지정한다.
--with-sha1-opt=... SHA1 라이브러리를 빌드할 때 사용되는 추가 옵션이다.
--with-sha1-asmSHA1 라이브러리용 어셈블러 소스를 사용한다.
zlib 옵션
--with-zlib=...zlib 라이브러리 소스의 경로를 지정한다.
--with-zlib-opt=...zlib 라이브러리를 빌드할 때 사용되는 추가 옵션이다.
--with-zlib-asm=...다음의 대상 프로세서 구조에 대해 어셈블러 최적화 사용한다. pentium, pentiumpro
OpenSSL 옵션
--with-openssl=...OpenSSL 라이브러리 소스의 경로를 지정한다.
--with-openssl-opt=...OpenSSL 라이브러리를 빌드할 때 사용되는 추가 옵션이다.

기본 포함 모듈

아래는 컴파일시 자동으로 포함되는 모듈에 대한 설명이다.

컴파일시 --without-http_모듈명과 같은 방식으로 이를 제외할 수 있다.

모듈 이름설명비활성화 하는법
HTTP-Core

포트,locations, 에러페이지등의 웹서버 기본 설정 모듈

--without-http 

AccessIP 주소에 기반한 Allow/Deny 접근 모듈--without-http_access_module
Auth Basic기본 HTTP 인증 모듈--without-http_auth_basic_module
Auto Index자동 색인(디렉토리,파일 리스팅) 모듈--without-http_autoindex_module
Browser사용자 에이전트 문자열을 해석하는 브라우저 모듈--without-http_browser_module
Charset웹페이지를 재인코딩하는 데 사용되는 문자세트 모듈--without-http_charset_module
Empty GIF메모리로부터 1X1 GIF 이미지를 서비스하는 Empty Gif 모듈--without-http_empty_gif_module
FastCGIFastCGI 프로세스와 연동되는 FastCGI 모듈--without-http_fastcgi_module
GeoIP 주소 범위에 따라 변수를 정의하는 지오 모듈--without-http_geo_module
GzipGzip 압축 모듈--without-http_gzip_module
HeadersHTTP 응답 헤더를 설정할 수 있는 모듈제외할 수 없음
Indexindex로 사용되는 파일들을 설정하는 모듈제외할 수 없음
Limit Requests사용자당 요청 수를 제한하는 Limit Requests 모듈--without-http_limit_req_module
Limit Conn정의된 지역에 따라 자원의 사용을 제한하는 Limit Zone 모듈--without-http_limit_zone_module
Logaccess log를 설정하는 모듈제외할 수 없음
Mapmap 블록을 선언할 수 있는 맵 모듈--without-http_map_module
Memcached메모리 캐시 데몬과 연동되는 Memcached 모듈--without-http_memcached_module
Proxy요청을 받아 다른 서버로 전달하는 프록시 모듈--without-http_proxy_module
Referer리퍼러 제어 모듈--without-http_referer_module
Rewrite재작성 모듈--without-http_rewrite_module
SCGISCGI 프로토콜 지원 모듈--without-http_scgi_module
Split Client조건에 따라 클라이언트를 분할--without-http_split_clients_module
SSI서버 측 인클루드(SSI) 모듈--without-http_ssi_module
Upstream부하 균형 구조를 만드는 업스트림 모듈--without-http_upstream_ip_hash_module
User ID쿠키를 통해 사용자 식별을 제공하는 사용자 ID 모듈--without-http_userid_module
uWSGIuWSGI 프로토콜 지원 모듈--without-http_uwsgi_module
X-AccelX-Sendfile-like 모듈제외할수 없음

기본 제외 모듈

다음과 같은 스위치를 사용해 기본 제외 모듈을 포함시킬 수 있다.

모듈 이름설명활성화 하는 법
Addition응답 바디 앞이나 뒤에 데이터를 추가하는 Addition 모듈--with-http_addition_module
Auth Request하위요청(subrequest)의 결과에 따라 클라이언트 인증을 구현하는 모듈
유의사항: 1.5.4 버전부터 지원
--with-http_auth_request_module
Degradation메모리 부족상태에서 일부 지역에 대해 204 또는 444 코드를 변환하는 모듈--with-http_degradation_module
Embedded Perl엔진엑스 설정파일에서 펄을 사용--with-http_perl_module
FLVflv 파일의 스트리밍을 다루는 FLV 모듈--with-http_flv_module
GeoIPMaxMind 사의 GeoIP 바이너리 데이터베이스를 사용해 지리적 위치를 알아내는 GeoIP 모듈
유의사항: 이 모듈을 컴파일하려면 libgeoip 라이브러리를 설치해야 한다.
--with-http_geoip_module
Google Perftools구글 성능 도구(perftools) 모듈을 포함--with-http_perftools_module
Gzip Precompression사전에 압축해 놓은 파일을 전송하는 Gzip Static 모듈을 포함한다.--with-http_gzip_static_module
Gunzip즉석에서 gzip으로 압축된 응답을 압축해제하는 모듈--with-http_gunzip_module
Image FilterGD라이브러리를 이용해 이미지를 조정하는 이미지 필터 모듈
유의사항: libgd 라이브러리가 필요하다.
--with-http_image_filter_module
MP4mp4 스트리밍 기능과 seeking 기능을 활성화하는 모듈--with-http_mp4_module
Random Index디렉토리 색인으로 무작위 파일을 사용하는 무작위 색인 모듈을 포함한다.--with-http_random_index_module
Real IP요청 헤데 데이터로부터 실제 IP 주소를 읽어 내는 Real IP 모듈--with-http_realip_module
Secure Link사용자가 자원에 접근하기전에 url에 특정 해쉬가 포함돼 있는지를 검사하여 기본적인 보호체계를 제공--with-http_secure_link_module
SSLHTTPS를 사용해 페이지를 서비스하는 SSL 모듈--with-http_ssl_module
Stub Status서버 통계와 정보 페이지를 생성하는 스터브 상태(stub status)--with-http_stub_status_module
Substitution웹페이지 안의 텍스트를 다른 내용으로 대체하는 치환(Substitution) 모듈--with-http_sub_module
WebDAVWebDAV(웹 기반 분산 저작과 버전 관리) 모듈을 포함--with-http_dav_module
XSLTXML 문서에 XSL 변환을 적용하는 XSLT 모듈
유의사항: 이 모듈을 컴파일 하려면 libxml2와 libxslt 라이브러리를 설치해야 한다.
--with-http_xslt_module

기타 옵션

메일 서버 프록시 기능이나 이벤트 관리와 같은 다른 옵션들은 환경 설정 스크립트안에서 지정할 수 있다.

메일 서버 프록시 옵션
--with-mail메일 서버 프록시 모듈을 포함한다. POP3, IMAP4, SMTP를 지원한다. 기본 빌드에는 포함되지 않는다.
--with-mail_ssl_module메일 서버 프록시용 SSL 지원 모듈을 포함한다. 기본 빌드에는 포함되지 않는다.
--without-mail_pop3_module메일 서버 프록시용 POP3 모듈을 제외한다. 메일 서버 프록시 모듈이 사용되면 기본으로 이 모듈도 포함된다.
--without-mail_imap_module메일 서버 프록시용 IMAP4 모듈을 제외한다. 메일 서버 프록시 모듈이 사용되면 기본으로 이 모듈도 포함된다.
--without-mail_smtp_module

메일 서버 프록시용 SMTP 모듈을 제외한다.
메일 서버 프록시 모듈이 사용되면 기본으로 이 모듈도 포함된다. 

이벤트 관리
엔진엑스 시퀀서(sequencer)용 이벤트 알림 시스템을 선택한다(고급 사용자용).
--with-rtsig_modulertsig를 사용해 이벤트를 알리는 rtsig 모듈을 포함한다.
--with-select-moduleselect를 사용해 이벤트를 알리는 select 모듈을 포함한다. kqueue, epoll, rtsig, poll 같이 select보다 더 나은 모듈이 발견되지 않으면 이 모듈을 기본으로 포함한다.
--without-select_moduleselect 모듈을 제외한다.
--with-poll_modulepoll을 사용해서 이벤트를 알리는 poll 모듈을 포함한다. kqueue, epoll, rtsig 같이 poll보다 더 나은 모듈이 발견되지 않으면 이 모듈을 기본으로 포함한다.
--without-poll_modulepoll 모듈을 제외한다.
사용자와 그룹 옵션
--user=...엔진엑스 작업자 프로세스(worker process)를 실행하기 위한 기본 사용자 계정. 이 설정은 환경 설정 파일에 user 지시어를 생략했을 경우에만 적용된다.
--group=...엔진엑스 작업자 프로세스를 실행하기 위한 기본 사용자 그룹. 이 설정은 환경 설정 파일에 group 지시어를 생략했을 경우에만 적용된다.
기타 옵션
--with-ipv6IPv6 지원을 사용한다.
--without-http-cacheHTTP 캐쉬 기능을 사용하지 않는다.
--add-module=PATH경로를 지정해 컴파일 과정에 서드파티 모듈을 추가한다. 이 스위치는 다수의 모듈을 컴파일하기 위해 무한 반복될 수 있다.
--with-debug

추가적인 디버깅 정보를 기록한다.


List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
48 PHP 파일 업로드 진행상황표시 file 맨하탄노숙자 2016.02.15 151
47 이미지 다운로드시 다운로드 진행상황 표시 file 맨하탄노숙자 2016.02.15 140
» NGINX 우분투 NGINX(엔진엑스) Configure 옵션 맨하탄노숙자 2016.01.16 169
45 Apache 스토리지 웹서버 secret 맨하탄노숙자 2016.04.17 0
44 PHP 모바일 에이전트 접속시 이동 맨하탄노숙자 2016.01.02 117
43 PHP 다운로드 구현 상태 (진행 상황 표시) 맨하탄노숙자 2016.02.15 118
42 Apache [CENTOS] apache web server switching from prefork to worker MPM 맨하탄노숙자 2016.04.17 192
41 PHP UTF-8 파일 다운로드 함수 맨하탄노숙자 2016.02.15 137
40 NGINX Tools: ngxtop - real-time metrics for nginx server (and others) 맨하탄노숙자 2016.01.11 36
39 NGINX sub_filter 이용한 HTML 내에 태그값 변경 맨하탄노숙자 2016.01.16 44
38 NGINX Response Headers에 서버정보 숨기기 맨하탄노숙자 2016.01.16 71
37 PHP PHP/cURL download progress monitoring 맨하탄노숙자 2016.02.15 95
36 PHP php-fpm systemctl 추가 맨하탄노숙자 2016.07.19 83
35 php gd-library 소스 경로 및 컴파일 옵션 맨하탄노숙자 2016.04.17 102
34 PHP PHP 5.2.17 컴파일시 오류 발생 file 맨하탄노숙자 2016.04.17 114
33 PHP PHP 4 Memcache 맨하탄노숙자 2016.03.06 141
32 NGINX ngxtop python 맨하탄노숙자 2016.01.11 18
31 NGINX Nginx의 오픈 파일 캐시 맨하탄노숙자 2016.01.16 185
30 NGINX nginx에서 동영상 스트리밍 서비스하기 맨하탄노숙자 2016.02.18 111
29 NGINX Nginx, FastCGI 맨하탄노숙자 2016.01.16 356
Board Pagination Prev 1 2 ... 3 Next
/ 3