source에서 nginx 빌드
빌드는 configure 명령을 사용해서 구성합니다. nginx가 연결 처리에 사용하는 메서드를 포함해서 시스템의 다양한 측면을 정의합니다. 최종적으로는 Makefile을 생성합니다.
configure 명령은 다음의 매개변수를 지원합니다.
--help
도움말 메시지를 출력합니다.
--prefix=path
서버 파일을 저장할 디렉터리를 정의합니다. 이 디렉터리는 configure(라이브러리 소스로 연결되는 경로 제외)와 nginx.conf 구성 파일에서 설정한 모든 관련 경로에도 사용합니다. 기본적으로 /usr/local/nginx 디렉터리로 설정됩니다.
--sbin-path=path
nginx 실행 가능 파일의 이름으로 설정됩니다. 이 이름은 설치 중에만 사용합니다. 기본적으로 파일 이름은 prefix/sbin/nginx로 지정됩니다.
--modules-path=path
nginx 동적 모듈을 설치할 디렉터리를 정의합니다. 기본적으로 prefix/modules 디렉터리를 사용합니다.
--conf-path=path
nginx.conf 구성 파일의 이름을 설정합니다. 필요한 경우, nginx는 언제든 다른 구성 파일로 시작할 수 있습니다. 명령줄 매개변수 -c file에서 지정하면 됩니다. 기본적으로 파일 이름은 prefix/conf/nginx.conf로 지정됩니다.
--error-log-path=path
기본 오류, 경고, 진단 파일의 이름을 설정합니다. 설치 후에는 error_log 명령을 사용하여 언제든 파일 이름을 nginx.conf 구성 파일에서 변경할 수 있습니다. 기본적으로 파일 이름은 prefix/logs/error.log로 지정됩니다.
--pid-path=path
메인 프로세스의 프로세스 ID를 저장할 nginx.pid 파일의 이름을 설정합니다. 설치 후에는 pid 명령을 사용하여 언제든 파일 이름을 nginx.conf 구성 파일에서 변경할 수 있습니다. 기본적으로 파일 이름은 prefix/logs/nginx.pid로 지정됩니다.
--lock-path=path
잠금 파일 이름의 접두사를 설정합니다. 설치 후에는 lock_file 명령을 사용하여 언제든 값을 ginx.conf 구성 파일에서 변경할 수 있습니다. 기본적으로 값은 prefix/logs/nginx.lock입니다.
--user=name
작업자 프로세스에서 자격 증명을 사용할 권한이 없는 사용자의 이름을 설정합니다. 설치 후에는 user 명령을 사용하여 언제든 이름을 nginx.conf 구성 파일에서 설정할 수 있습니다. 기본 사용자 이름은 nobody입니다.
--group=name
작업자 프로세스가 자격 증명을 사용할 그룹 이름을 설정합니다. 설치 후에는 user 명령을 사용하여 언제든 이름을 nginx.conf 구성 파일에서 설정할 수 있습니다. 기본적으로 그룹 이름은 권한이 없는 사용자의 이름으로 설정됩니다.
--build=name
선택적 nginx 빌드 이름을 설정합니다.
--builddir=path
빌드 디렉터리를 설정합니다.
--with-select_module
--without-select_module
서버가 select() 메서드와 작동하도록 하는 모듈 구축을 활성화하거나 비활성화합니다. 플랫폼이 더욱 적절한 메서드(예: kqueue, epoll, /dev/poll)를 지원하지 않는 듯할 경우, 이 모듈이 자동으로 구축됩니다.
--with-poll_module
--without-poll_module
서버가 poll() 메서드와 작동하도록 하는 모듈 구축을 활성화하거나 비활성화합니다. 플랫폼이 더욱 적절한 메서드(예: kqueue, epoll, /dev/poll)를 지원하지 않는 듯할 경우, 이 모듈이 자동으로 구축됩니다.
--with-threads
스레드 풀 사용을 활성화합니다.
--with-file-aio
FreeBSD와 Linux에서 비동기식 파일 I/O(AIO) 사용을 활성화합니다.
--with-http_ssl_module
HTTPS 프로토콜 지원을 HTTP 서버로 추가하는 모듈 구축을 활성화합니다. 이 모듈은 기본적으로 구축되지 않습니다. 이 모듈을 구축하고 실행하려면 OpenSSL 라이브러리가 필요합니다.
--with-http_v2_module
HTTP/2에 대한 지원을 제공하는 모듈 구축을 활성화합니다. 이 모듈은 기본적으로 구축되지 않습니다.
--with-http_realip_module
지정된 헤더 파일로 전송된 주소로 클라이언트 주소를 변경하는 ngx_http_realip_module 모듈 구축을 활성화합니다. 이 모듈은 기본적으로 구축되지 않습니다.
--with-http_addition_module
응답 전/후에 텍스트를 추가하는 ngx_http_addition_module 모듈 구축을 활성화합니다. 이 모듈은 기본적으로 구축되지 않습니다.
--with-http_xslt_module
--with-http_xslt_module=dynamic
하나 이상의 XSLT 스타일시트를 사용하여 XML 응답을 변환하는 ngx_http_xslt_module 모듈 구축을 활성화합니다. 이 모듈은 기본적으로 구축되지 않습니다. 이 모듈을 실행하려면 libxml2와 libxslt 라이브러리가 필요합니다.
--with-http_image_filter_module
--with_http_image_filter_module=dynamic
이미지를 JPEG, GIF, PNG, WebP 형식으로 변환하는 ngx_http_image_filter_module 모듈 구축을 활성화합니다. 이 모듈은 기본적으로 구축되지 않습니다.
--with-http_geoip_module
--with-http_geoip_module=dynamic
클라이언트 IP 주소와 사전 컴파일된 MaxMind 데이터베이스에 따라 변수를 생성하는 ngx_http_geoip_module 모듈 구축을 활성화합니다. 이 모듈은 기본적으로 구축되지 않습니다.
--with-http_sub_module
지정된 문자열을 다른 문자열로 교체하여 응답을 수정하는 ngx_http_sub_module 모듈 구축을 활성화합니다. 이 모듈은 기본적으로 구축되지 않습니다.
--with-http_dav_module
WebDAV 프로토콜을 통해 파일 관리 자동화를 제공하는 ngx_http_dav_module 모듈 구축을 활성화합니다. 이 모듈은 기본적으로 구축되지 않습니다.
--with-http_flv_module
Flash Video(FLV) 파일에 대한 가상 스트리밍 서버측 지원을 제공하는 ngx_http_flv_module 모듈 구축을 활성화합니다. 이 모듈은 기본적으로 구축되지 않습니다.
--with-http_mp4_module
MP4 파일에 대한 가상 스트리밍 서버측 지원을 제공하는 ngx_http_mp4_module 모듈 구축을 활성화합니다. 이 모듈은 기본적으로 구축되지 않습니다.
--with-http_gunzip_module
“gzip” 인코딩 메서드를 지원하지 않는 “Content-Encoding: gzip”으로 응답의 압축을 해제하는 ngx_http_gunzip_module 모듈 구축을 활성화합니다. 이 모듈은 기본적으로 구축되지 않습니다.
--with-http_gzip_static_module
일반 파일 대신 “.gz” 파일 이름 확장자로 사전 압축된 파일을 전송하는 ngx_http_gzip_static_module 모듈 구축을 활성화합니다. 이 모듈은 기본적으로 구축되지 않습니다.
--with-http_auth_request_module
하위 요청 결과에 따라 클라이언트 인증을 구현하는 ngx_http_auth_request_module 모듈 구축을 활성화합니다. 이 모듈은 기본적으로 구축되지 않습니다.
--with-http_random_index_module
슬래시 문자(‘/’)로 끝나는 요청을 처리하고 디렉터리에서 인덱스 파일 역할을 할 무작위 파일을 선택하는 ngx_http_random_index_module 모듈 구축을 활성화합니다. 이 모듈은 기본적으로 구축되지 않습니다.
--with-http_secure_link_module
ngx_http_secure_link_module 모듈 구축을 활성화합니다. 이 모듈은 기본적으로 구축되지 않습니다.
--with-http_degradation_module
ngx_http_degradation_module 모듈 구축을 활성화합니다. 이 모듈은 기본적으로 구축되지 않습니다.
--with-http_slice_module
요청을 하위 요청으로 분할하고 각각 특정 범위의 응답을 반환하는 ngx_http_slice_module 모듈 구축을 활성화합니다. 이 모듈은 용량이 큰 응답을 더욱 효과적으로 캐싱합니다. 이 모듈은 기본적으로 구축되지 않습니다.
--with-http_stub_status_module
기본 상태 정보에 액세스를 제공하는 ngx_http_stub_status_module 모듈 구축을 활성화합니다. 이 모듈은 기본적으로 구축되지 않습니다.
--without-http_charset_module
“Content-Type” 응답 헤더 필드에 지정된 문자 세트를 추가하고 하나의 문자 세트에서 다른 문자 세트로 데이터를 변환하기도 하는 ngx_http_charset_module 메서드 구축을 비활성화합니다.
--without-http_gzip_module
HTTP 서버의 응답을 압축하는 모듈 구축을 비활성화합니다. 이 모듈을 구축, 실행하려면 zlib 라이브러리가 필요합니다.
--without-http_ssi_module
통과하는 응답에서 SSI(Server Side Includes) 명령을 처리하는 ngx_http_ssi_module 모듈 구축을 비활성화합니다.
--without-http_userid_module
클라이언트 식별에 적절한 쿠키를 설정하는 ngx_http_userid_module 모듈 구축을 비활성화합니다.
--without-http_access_module
특정 클라이언트 주소로의 액세스를 제한하는 ngx_http_access_module 모듈 구축을 비활성화합니다.
--without-http_auth_basic_module
“HTTP 기본 인증” 프로토콜을 사용하여 사용자 이름과 비밀번호를 검증함으로써 리소스에 대한 액세스를 제한하는 ngx_http_auth_basic_module 모듈 구축을 비활성화합니다.
--without-http_mirror_module
백그라운드 미러 하위 요청을 생성하여 원본 요청의 미러링을 구현하는 ngx_http_mirror_module 모듈 구축을 비활성화합니다.
--without-http_autoindex_module
ngx_http_index_module 모듈이 인덱스 파일을 찾지 못하는 경우, 슬래시 문자(‘/’)로 끝나는 요청을 처리하고 디렉터리 목록을 생성하는 ngx_http_autoindex_module 모듈 구축을 비활성화합니다.
--without-http_geo_module
클라이언트 IP 주소에 따라 값으로 변수를 생성하는 ngx_http_geo_module 모듈 구축을 비활성화합니다.
--without-http_map_module
다른 변수의 값에 따라 값으로 변수를 생성하는 ngx_http_map_module 모듈 구축을 비활성화합니다.
--without-http_split_clients_module
A/B 테스트를 위한 변수를 생성하는 ngx_http_split_clients_module 모듈 구축을 비활성화합니다.
--without-http_referer_module
“Referer” 헤더 필드에서 잘못된 값이 포함된 요청에 대한 사이트 액세스를 차단하는 ngx_http_referer_module 모듈 구축을 비활성화합니다.
--without-http_rewrite_module
HTTP 서버가 요청을 리디렉션하고 요청 URI를 변경하는 모듈 구축을 비활성화합니다. 이 모듈을 구축, 실행하려면 PCRE 라이브러리가 필요합니다.
--without-http_proxy_module
HTTP 서버 프록시 모듈 구축을 비활성화합니다.
--without-http_fastcgi_module
FastCGI 서버로 요청을 전달하는 ngx_http_fastcgi_module 모듈 구축을 비활성화합니다.
--without-http_uwsgi_module
uwsgi 서버로 요청을 전달하는 ngx_http_uwsgi_module 모듈 구축을 비활성화합니다.
--without-http_scgi_module
SCGI 서버로 요청을 전달하는 ngx_http_scgi_module 모듈 구축을 비활성화합니다.
--without-http_grpc_module
gRPC 서버로 요청을 전달하는 ngx_http_grpc_module 모듈 구축을 비활성화합니다.
--without-http_memcached_module
memcached 서버에서 응답을 얻는 ngx_http_memcached_module 모듈 구축을 비활성화합니다.
--without-http_limit_conn_module
키당 연결 수(예: IP 주소 1개의 연결 수)를 제한하는 ngx_http_limit_conn_module 모듈 구축을 비활성화합니다.
--without-http_limit_req_module
키당 요청 처리 속도(예: IP 주소 1개에서 수신되는 요청의 처리 속도)를 제한하는 ngx_http_limit_req_module 모듈 구축을 비활성화합니다.
--without-http_empty_gif_module
단일 픽셀 투명 GIF를 전송하는 모듈 구축을 비활성화합니다.
--without-http_browser_module
“User-Agent” 요청 헤더 필드의 값에 따라 값이 달라지는 변수를 생성하는 ngx_http_browser_module 모듈 구축을 비활성화합니다.
--without-http_upstream_hash_module
hash 부하 분산 메서드를 구현하는 모듈 구축을 비활성화합니다.
--without-http_upstream_ip_hash_module
ip_hash 부하 분산 메서드를 구현하는 모듈 구축을 비활성화합니다.
--without-http_upstream_least_conn_module
least_conn 부하 분산 메서드를 구현하는 모듈 구축을 비활성화합니다.
--without-http_upstream_random_module
random 부하 분산 메서드를 구현하는 모듈 구축을 비활성화합니다.
--without-http_upstream_keepalive_module
업스트림 서버로 연결 캐싱을 제공하는 모듈 구축을 비활성화합니다.
--wihtout-http_upstream_zone_module
공유된 메모리 영역에서 업스트림 그룹의 런타임 상태를 저장할 수 있는 모듈 구축을 비활성화합니다.
--with-http_perl_module
--with-http_perl_module=dynamic
임베디드 Perl 모듈 구축을 활성화합니다. 이 모듈은 기본적으로 구축되지 않습니다.
--with-perl_modules_path=path
Perl 모듈을 저장하는 디렉터리를 정의합니다.
--with-perl=path
Perl 바이너리의 이름을 설정합니다.
--http-log-path=path
HTTP 서버의 기본 요청 로그 파일의 이름을 설정합니다. 설치 후에는 access_log 명령을 사용하여 언제든 파일 이름을 nginx.conf 구성 파일에서 변경할 수 있습니다. 기본적으로 파일 이름은 prefix/logs/access.log로 지정됩니다.
--http-client-body-temp-path=path
클라이언트 요청 본문이 있는 임시 파일을 저장하는 디렉터리를 정의합니다. 설치 후에는 client_body_temp_path 명령을 사용하여 언제든 디렉터리를 nginx.conf 구성 파일에서 변경할 수 있습니다. 기본적으로 디렉터리 이름은 prefix/client_body_temp로 지정됩니다.
--http-proxy-temp-path=path
프록시된 서버에서 수신한 데이터로 임시 파일을 저장하는 디렉터리를 정의합니다. 설치 후에는 proxy_temp_path 명령을 사용하여 언제든 디렉터리를 nginx.conf 구성 파일에서 변경할 수 있습니다. 기본적으로 디렉터리 이름은 prefix/proxy_temp로 지정됩니다.
--http-fastcgi-temp-path=path
FastCGI 서버에서 수신한 데이터로 임시 파일을 저장하는 디렉터리를 정의합니다. 설치 후에는 fastcgi_temp_path 명령을 사용하여 언제든 디렉터리를 nginx.conf 구성 파일에서 변경할 수 있습니다. 기본적으로 디렉터리 이름은 prefix/fastcgi_temp로 지정됩니다.
--http-uwsgi-temp-path=path
uwsgi 서버에서 수신한 데이터로 임시 파일을 저장하는 디렉터리를 정의합니다. 설치 후에는 uwsgi_temp_path 명령을 사용하여 언제든 디렉터리를 nginx.conf 구성 파일에서 변경할 수 있습니다. 기본적으로 디렉터리 이름은 prefix/uwsgi_temp로 지정됩니다.
--http-scgi-temp-path=path
SCGI 서버에서 수신한 데이터로 임시 파일을 저장하는 디렉터리를 정의합니다. 설치 후에는 scgi_temp_path 명령을 사용하여 언제든 디렉터리를 nginx.conf 구성 파일에서 변경할 수 있습니다. 기본적으로 디렉터리 이름은 prefix/scgi_temp로 지정됩니다.
--without-http
HTTP 서버를 비활성화합니다.
--without-http-cache
HTTP 캐시를 비활성화합니다.
--with-mail
--with-mail=dynamic
POP3/IMAP4/SMTP 메일 프록시 서버를 활성화합니다.
--with-mail_ssl_module
SSL/TLS 프로토콜 지원을 메일 프록시 서버에 추가하는 모듈 구축을 활성화합니다. 이 모듈은 기본적으로 구축되지 않습니다. 이 모듈을 구축하고 실행하려면 OpenSSL 라이브러리가 필요합니다.
--without-mail_pop3_module
메일 프록시 서버에서 POP3 프로토콜을 비활성화합니다.
--without-mail_imap_module
메일 프록시 서버에서 IMAP 프로토콜을 비활성화합니다.
--without-mail_smtp_module
메일 프록시 서버에서 SMTP 프로토콜을 비활성화합니다.
--with-stream
--with-stream=dynamic
일반 TCP/UDP 프록시 및 부하 분산에 대해 스트림 모듈 구축을 활성화합니다. 이 모듈은 기본적으로 구축되지 않습니다.
--with-stream_ssl_module
SSL/TLS 프로토콜 지원을 스트림 모듈에 추가하는 모듈 구축을 활성화합니다. 이 모듈은 기본적으로 구축되지 않습니다. 이 모듈을 구축하고 실행하려면 OpenSSL 라이브러리가 필요합니다.
--with-stream_realip_module
PROXY 프로토콜 헤더에서 전송된 주소로 클라이언트 주소를 변경하는 ngx_stream_realip_module 모듈 구축을 활성화합니다. 이 모듈은 기본적으로 구축되지 않습니다.
--with-stream_geoip_module
--with-stream_geoip_module=dynamic
클라이언트 IP 주소와 사전 컴파일된 MaxMind 데이터베이스에 따라 변수를 생성하는 ngx_stream_geoip_module 모듈 구축을 활성화합니다. 이 모듈은 기본적으로 구축되지 않습니다.
--with-stream_ssl_preread_module
SSL/TLS를 종료하지 않고 ClientHello 메시지에서 정보를 추출할 수 있는 ngx_stream_ssl_preread_module 모듈 구축을 활성화합니다. 이 모듈은 기본적으로 구축되지 않습니다.
--without-stream_limit_conn_module
키당 연결 수(예: IP 주소 1개의 연결 수)를 제한하는 ngx_stream_limit_conn_module 모듈 구축을 비활성화합니다.
--without-stream_access_module
특정 클라이언트 주소로의 액세스를 제한하는 ngx_stream_access_module 모듈 구축을 비활성화합니다.
--without-stream_geo_module
클라이언트 IP 주소에 따라 값으로 변수를 생성하는 ngx_stream_geo_module 모듈 구축을 비활성화합니다.
--without-stream_map_module
다른 변수의 값에 따라 값으로 변수를 생성하는 ngx_stream_map_module 모듈 구축을 비활성화합니다.
--without-stream-split_clients_module
A/B 테스트를 위한 변수를 생성하는 ngx_stream_split_clients_module 모듈 구축을 비활성화합니다.
--without-stream_return_module
일부 지정된 값을 클라이언트로 보낸 다음, 연결을 종료하는 ngx_stream_return_module 모듈 구축을 비활성화합니다.
--without-stream_set_module
변수에 대한 값을 설정하는 ngx_stream_set_module 모듈 구축을 비활성화합니다.
--without-stream_upstream_hash_module
hash 부하 분산 메서드를 구현하는 모듈 구축을 비활성화합니다.
--without-stream_upstream_least_conn_module
least_conn 부하 분산 메서드를 구현하는 모듈 구축을 비활성화합니다.
--without-stream_upstream_random_module
random 부하 분산 메서드를 구현하는 모듈 구축을 비활성화합니다.
--without-stream_upstream_zone_module
공유된 메모리 영역에서 업스트림 그룹의 런타임 상태를 저장할 수 있는 모듈 구축을 비활성화합니다.
--with-google_perftools_module
Google Performance Tools를 사용하여 nginx 작업자 프로세스의 프로파일링을 활성화하는 ngx_google_perftools_module 모듈 구축을 활성화합니다. 이 모듈은 nginx 개발자에게 제공되며, 기본적으로 구축되지 않습니다.
--with-cpp_test_module
ngx_cpp_test_module 모듈 구축을 활성화합니다.
--add-module=path
외부 모듈을 활성화합니다.
--add-dynamic-module=path
외부 동적 모듈을 활성화합니다.
--with-compat
동적 모듈 호환성을 활성화합니다.
--with-cc=path
C 컴파일러의 이름을 설정합니다.
--with-cpp=path
C 프리프로세서의 이름을 설정합니다.
--with-cc-opt=parameters
CFLAGS 변수에 추가할 추가 매개변수를 설정합니다. FreeBSD에서 시스템 PCRE 라이브러리를 사용할 때 –with-cc-opt=”-I /usr/local/include”를 지정해야 합니다. select()에서 지원하는 파일 수를 늘려야 할 경우, 여기에서 다음과 같이 지정할 수 있습니다. –with-cc-opt=”-D FD_SETSIZE=2048″.
--with-ld=opt=parameters
링크 중에 사용할 추가 매개변수를 설정합니다. FreeBSD에서 시스템 PCRE 라이브러리를 사용할 때 –with-ld-opt=”-L /usr/local/lib”을 지정해야 합니다.
--with-cpu-opt=cpu
지정된 CPU별로 구축을 활성화합니다 :
pentium, pentiumpro, pentium3, pentium4, athlon, opteron, sparc32, sparc64, ppc64.
--without-pcre
PCRE 라이브러리 사용을 비활성화합니다.
--with-pcre
PCRE 라이브러리 사용을 강제합니다.
--with-pcre=path
PCRE 라이브러리 소스로 이동하는 경로를 설정합니다. 라이브러리 배포판(버전 4.4 — 8.43)을 PCRE 사이트에서 다운로드하고 추출해야 합니다. 나머지는 nginx의 ./configure와 make에서 처리합니다. 이 라이브러리는 location 명령의 정규식 지원과 ngx_http_rewrite_module 모듈에 필요합니다.
--with-pcre-opt=parameters
PCRE에 추가 빌드 옵션을 설정합니다.
--with-pcre-jit
“JIT 컴파일” 지원으로 PCRE 라이브러리를 구축합니다(1.1.12, pcre_jit 명령).
--with-zlib=path
zlib 라이브러리의 소스로 이동하는 경로를 설정합니다. 라이브러리 배포판(버전 1.1.3 — 1.2.11)을 zlib 사이트에서 다운로드하고 추출해야 합니다. 나머지는 nginx의 ./configure와 make에서 처리합니다. 이 라이브러리는 ngx_http_gzip_module 모듈에 필요합니다.
--with-zlib-opt=parameters
zlib에 추가 빌드 옵션을 설정합니다.
--with-zlib-asm=cpu
지정된 CPU 중 하나에 최적화된 zlib 어셈블러 소스 사용을 활성화합니다. pentium, pentiumpro.
--with-libatomic
libatomic_ops 라이브러리 사용을 강제합니다.
--with-libatomic=path
libatomic_ops 라이브러리 소스로 경로를 설정합니다.
--with-openssl=path
OpenSSL 라이브러리 소스로 경로를 설정합니다.
--with-openssl-opt=parameters
OpenSSL에 추가 빌드 옵션을 설정합니다.
--with-debug
디버깅 로그를 활성화합니다.
매개변수 사용 예시(한 행에 입력):
./configure
--sbin-path=/usr/local/nginx/nginx
--conf-path=/usr/local/nginx/nginx.conf
--pid-path=/usr/local/nginx/nginx.pid
--with-http_ssl_module
--with-pcre=../pcre-8.44
--with-zlib=../zlib-1.2.11
구성 후에 nginx는 make를 사용하여 컴파일 및 설치합니다.