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-pcre | PCRE 라이브러리를 사용하지 않는다. 정규표현식 지원이 제거돼 재작성 모듈도 사용할 수 없게 되므로 이 설정은 권장하지 않는다. |
--with-pcre | PCRE 라이브러리를 사용하게 강제한다. |
--with-pcre=... | PCRE 라이브러리 소스코드의 경로를 지정한다. |
--with-pcre-opt=... | PCRE 라이브러리를 빌드할 때 사용되는 추가 옵션이다. |
MD5 옵션 | |
---|---|
--with-md5=... | MD5 라이브러리 소스의 경로를 지정한다. |
--with-md5-opt=... | MD5 라이브러리를 빌드할 때 사용되는 추가 옵션이다. |
--with-md5-asm | MD5 라이브러리용 어셈블러를 사용한다. |
SHA1 옵션 | |
---|---|
--with-sha1=... | SHA1 라이브러리 소스의 경로를 지정한다. |
--with-sha1-opt=... | SHA1 라이브러리를 빌드할 때 사용되는 추가 옵션이다. |
--with-sha1-asm | SHA1 라이브러리용 어셈블러 소스를 사용한다. |
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 |
Access | IP 주소에 기반한 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 |
FastCGI | FastCGI 프로세스와 연동되는 FastCGI 모듈 | --without-http_fastcgi_module |
Geo | IP 주소 범위에 따라 변수를 정의하는 지오 모듈 | --without-http_geo_module |
Gzip | Gzip 압축 모듈 | --without-http_gzip_module |
Headers | HTTP 응답 헤더를 설정할 수 있는 모듈 | 제외할 수 없음 |
Index | index로 사용되는 파일들을 설정하는 모듈 | 제외할 수 없음 |
Limit Requests | 사용자당 요청 수를 제한하는 Limit Requests 모듈 | --without-http_limit_req_module |
Limit Conn | 정의된 지역에 따라 자원의 사용을 제한하는 Limit Zone 모듈 | --without-http_limit_zone_module |
Log | access log를 설정하는 모듈 | 제외할 수 없음 |
Map | map 블록을 선언할 수 있는 맵 모듈 | --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 |
SCGI | SCGI 프로토콜 지원 모듈 | --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 |
uWSGI | uWSGI 프로토콜 지원 모듈 | --without-http_uwsgi_module |
X-Accel | X-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 |
FLV | flv 파일의 스트리밍을 다루는 FLV 모듈 | --with-http_flv_module |
GeoIP | MaxMind 사의 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 Filter | GD라이브러리를 이용해 이미지를 조정하는 이미지 필터 모듈 유의사항: libgd 라이브러리가 필요하다. |
--with-http_image_filter_module |
MP4 | mp4 스트리밍 기능과 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 |
SSL | HTTPS를 사용해 페이지를 서비스하는 SSL 모듈 | --with-http_ssl_module |
Stub Status | 서버 통계와 정보 페이지를 생성하는 스터브 상태(stub status) | --with-http_stub_status_module |
Substitution | 웹페이지 안의 텍스트를 다른 내용으로 대체하는 치환(Substitution) 모듈 | --with-http_sub_module |
WebDAV | WebDAV(웹 기반 분산 저작과 버전 관리) 모듈을 포함 | --with-http_dav_module |
XSLT | XML 문서에 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_module | rtsig를 사용해 이벤트를 알리는 rtsig 모듈을 포함한다. |
--with-select-module | select를 사용해 이벤트를 알리는 select 모듈을 포함한다. kqueue, epoll, rtsig, poll 같이 select보다 더 나은 모듈이 발견되지 않으면 이 모듈을 기본으로 포함한다. |
--without-select_module | select 모듈을 제외한다. |
--with-poll_module | poll을 사용해서 이벤트를 알리는 poll 모듈을 포함한다. kqueue, epoll, rtsig 같이 poll보다 더 나은 모듈이 발견되지 않으면 이 모듈을 기본으로 포함한다. |
--without-poll_module | poll 모듈을 제외한다. |
사용자와 그룹 옵션 | |
---|---|
--user=... | 엔진엑스 작업자 프로세스(worker process)를 실행하기 위한 기본 사용자 계정. 이 설정은 환경 설정 파일에 user 지시어를 생략했을 경우에만 적용된다. |
--group=... | 엔진엑스 작업자 프로세스를 실행하기 위한 기본 사용자 그룹. 이 설정은 환경 설정 파일에 group 지시어를 생략했을 경우에만 적용된다. |
기타 옵션 | |
---|---|
--with-ipv6 | IPv6 지원을 사용한다. |
--without-http-cache | HTTP 캐쉬 기능을 사용하지 않는다. |
--add-module=PATH | 경로를 지정해 컴파일 과정에 서드파티 모듈을 추가한다. 이 스위치는 다수의 모듈을 컴파일하기 위해 무한 반복될 수 있다. |
--with-debug | 추가적인 디버깅 정보를 기록한다. |
'리눅스 > Ubuntu' 카테고리의 다른 글
[Ubuntu] 우분투 NGINX(엔진엑스) 가상호스트 설정 (7) | 2013.09.20 |
---|---|
[Ubuntu] 우분투 NGINX - PHP - MySQL (2) | 2013.09.20 |
[Ubuntu] 우분투 NGINX(엔진엑스) 설치 (2) | 2013.09.20 |
[Ubuntu] 우분투 OwnCloud 설치 (4) | 2013.09.05 |
[Ubuntu] 우분투 Google SMTP 메일서버 이용하기 - postfix (7) | 2013.09.02 |