nginx/auto/options

407 lines
12 KiB
Plaintext
Raw Normal View History

2003-11-26 04:44:56 +08:00
# Copyright (C) Igor Sysoev
2003-12-15 04:10:27 +08:00
help=no
2003-11-26 04:44:56 +08:00
NGX_PREFIX=
NGX_SBIN_PATH=
NGX_CONF_PATH=
NGX_ERROR_LOG_PATH=
NGX_PID_PATH=
NGX_USER=
NGX_GROUP=
2004-05-19 04:28:54 +08:00
CC=${CC:-gcc}
2004-03-12 05:34:52 +08:00
CPP=
NGX_OBJS=objs
2003-11-26 04:44:56 +08:00
NGX_DEBUG=NO
NGX_CC_OPT=
NGX_LD_OPT=
2004-03-11 04:56:39 +08:00
CPU=NO
2004-03-11 01:55:19 +08:00
NGX_TEST_BUILD_DEVPOLL=NO
NGX_TEST_BUILD_EPOLL=NO
NGX_TEST_BUILD_RTSIG=NO
NGX_TEST_BUILD_SOLARIS_SENDFILEV=NO
2003-11-26 04:44:56 +08:00
NGX_PLATFORM=
NGX_WINE=
2004-02-03 05:19:52 +08:00
EVENT_FOUND=NO
2004-02-18 01:53:12 +08:00
EVENT_RTSIG=NO
2004-02-03 05:19:52 +08:00
EVENT_SELECT=NO
EVENT_POLL=NO
EVENT_AIO=NO
2004-01-23 17:26:18 +08:00
2004-02-24 04:57:12 +08:00
USE_THREADS=NO
HTTP=YES
NGX_HTTP_LOG_PATH=
NGX_HTTP_CLIENT_TEMP_PATH=
NGX_HTTP_PROXY_TEMP_PATH=
NGX_HTTP_FASTCGI_TEMP_PATH=
2004-06-23 00:43:09 +08:00
HTTP_CHARSET=YES
2003-11-26 04:44:56 +08:00
HTTP_GZIP=YES
2004-07-08 23:17:47 +08:00
HTTP_SSL=NO
HTTP_SSI=YES
nginx-0.1.29-RELEASE import *) Feature: the ngx_http_ssi_module supports "include virtual" command. *) Feature: the ngx_http_ssi_module supports the condition command like 'if expr="$NAME"' and "else" and "endif" commands. Only one nested level is supported. *) Feature: the ngx_http_ssi_module supports the DATE_LOCAL and DATE_GMT variables and "config timefmt" command. *) Feature: the "ssi_ignore_recycled_buffers" directive. *) Bugfix: the "echo" command did not show the default value for the empty QUERY_STRING variable. *) Change: the ngx_http_proxy_module was rewritten. *) Feature: the "proxy_redirect", "proxy_pass_request_headers", "proxy_pass_request_body", and "proxy_method" directives. *) Feature: the "proxy_set_header" directive. The "proxy_x_var" was canceled and must be replaced with the proxy_set_header directive. *) Change: the "proxy_preserve_host" is canceled and must be replaced with the "proxy_set_header Host $host" and the "proxy_redirect off" directives, the "proxy_set_header Host $host:$proxy_port" directive and the appropriate proxy_redirect directives. *) Change: the "proxy_set_x_real_ip" is canceled and must be replaced with the "proxy_set_header X-Real-IP $remote_addr" directive. *) Change: the "proxy_add_x_forwarded_for" is canceled and must be replaced with the "proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for" directive. *) Change: the "proxy_set_x_url" is canceled and must be replaced with the "proxy_set_header X-URL http://$host:$server_port$request_uri" directive. *) Feature: the "fastcgi_param" directive. *) Change: the "fastcgi_root", "fastcgi_set_var" and "fastcgi_params" directive are canceled and must be replaced with the fastcgi_param directives. *) Feature: the "index" directive can use the variables. *) Feature: the "index" directive can be used at http and server levels. *) Change: the last index only in the "index" directive can be absolute. *) Feature: the "rewrite" directive can use the variables. *) Feature: the "internal" directive. *) Feature: the CONTENT_LENGTH, CONTENT_TYPE, REMOTE_PORT, SERVER_ADDR, SERVER_PORT, SERVER_PROTOCOL, DOCUMENT_ROOT, SERVER_NAME, REQUEST_METHOD, REQUEST_URI, and REMOTE_USER variables. *) Change: nginx now passes the invalid lines in a client request headers or a backend response header. *) Bugfix: if the backend did not transfer response for a long time and the "send_timeout" was less than "proxy_read_timeout", then nginx returned the 408 response. *) Bugfix: the segmentation fault was occurred if the backend sent an invalid line in response header; the bug had appeared in 0.1.26. *) Bugfix: the segmentation fault may occurred in FastCGI fault tolerance configuration. *) Bugfix: the "expires" directive did not remove the previous "Expires" and "Cache-Control" headers. *) Bugfix: nginx did not take into account trailing dot in "Host" header line. *) Bugfix: the ngx_http_auth_module did not work under Linux. *) Bugfix: the rewrite directive worked incorrectly, if the arguments were in a request. *) Bugfix: nginx could not be built on MacOS X.
2005-05-12 22:58:06 +08:00
HTTP_POSTPONE=NO
nginx-0.3.8-RELEASE import *) Security: nginx now checks URI got from a backend in "X-Accel-Redirect" header line or in SSI file for the "/../" paths and zeroes. *) Change: nginx now does not treat the empty user name in the "Authorization" header line as valid one. *) Feature: the "ssl_session_timeout" directives of the ngx_http_ssl_module and ngx_imap_ssl_module. *) Feature: the "auth_http_header" directive of the ngx_imap_auth_http_module. *) Feature: the "add_header" directive. *) Feature: the ngx_http_realip_module. *) Feature: the new variables to use in the "log_format" directive: $bytes_sent, $apache_bytes_sent, $status, $time_gmt, $uri, $request_time, $request_length, $upstream_status, $upstream_response_time, $gzip_ratio, $uid_got, $uid_set, $connection, $pipe, and $msec. The parameters in the "%name" form will be canceled soon. *) Change: now the false variable values in the "if" directive are the empty string "" and string starting with "0". *) Bugfix: while using proxied or FastCGI-server nginx may leave connections and temporary files with client requests in open state. *) Bugfix: the worker processes did not flush the buffered logs on graceful exit. *) Bugfix: if the request URI was changes by the "rewrite" directive and the request was proxied in location given by regular expression, then the incorrect request was transferred to backend; the bug had appeared in 0.2.6. *) Bugfix: the "expires" directive did not remove the previous "Expires" header. *) Bugfix: nginx may stop to accept requests if the "rtsig" method and several worker processes were used. *) Bugfix: the "\"" and "\'" escape symbols were incorrectly handled in SSI commands. *) Bugfix: if the response was ended just after the SSI command and gzipping was used, then the response did not transferred complete or did not transferred at all.
2005-11-10 01:25:55 +08:00
HTTP_REALIP=NO
2004-06-25 00:07:04 +08:00
HTTP_ACCESS=YES
HTTP_AUTH_BASIC=YES
HTTP_USERID=YES
HTTP_AUTOINDEX=YES
2004-09-28 00:03:21 +08:00
HTTP_STATUS=NO
HTTP_GEO=YES
HTTP_REFERER=YES
2004-06-24 15:53:37 +08:00
HTTP_REWRITE=YES
2003-11-26 04:44:56 +08:00
HTTP_PROXY=YES
HTTP_FASTCGI=YES
HTTP_EMPTY_GIF=YES
2003-11-26 04:44:56 +08:00
# STUB
HTTP_STUB_STATUS=NO
IMAP=NO
IMAP_SSL=NO
NGX_ADDONS=
2004-02-10 04:47:18 +08:00
USE_PCRE=NO
2004-02-19 16:45:27 +08:00
PCRE=NONE
2004-03-12 05:34:52 +08:00
PCRE_OPT=
2003-11-26 04:44:56 +08:00
2004-07-26 02:34:14 +08:00
USE_OPENSSL=NO
OPENSSL=NONE
2004-02-03 05:19:52 +08:00
USE_MD5=NO
2004-02-09 15:46:43 +08:00
MD5=NONE
2004-03-12 05:34:52 +08:00
MD5_OPT=
2004-03-11 04:56:39 +08:00
MD5_ASM=NO
2003-11-26 04:44:56 +08:00
2004-02-03 05:19:52 +08:00
USE_ZLIB=NO
2004-02-09 15:46:43 +08:00
ZLIB=NONE
2004-03-12 05:34:52 +08:00
ZLIB_OPT=
2004-03-11 04:56:39 +08:00
ZLIB_ASM=NO
2003-11-26 04:44:56 +08:00
for option
do
case "$option" in
-*=*) value=`echo "$option" | sed -e 's/[-_a-zA-Z0-9]*=//'` ;;
*) value="" ;;
esac
case "$option" in
2003-12-15 04:10:27 +08:00
--help) help=yes ;;
2003-11-26 04:44:56 +08:00
--prefix=*) NGX_PREFIX="$value" ;;
--sbin-path=*) NGX_SBIN_PATH="$value" ;;
--conf-path=*) NGX_CONF_PATH="$value" ;;
--error-log-path=*) NGX_ERROR_LOG_PATH="$value";;
--pid-path=*) NGX_PID_PATH="$value" ;;
--user=*) NGX_USER="$value" ;;
--group=*) NGX_GROUP="$value" ;;
2004-05-19 04:28:54 +08:00
--crossbuild=*) NGX_PLATFORM="$value" ;;
2003-11-26 04:44:56 +08:00
--builddir=*) NGX_OBJS="$value" ;;
2003-11-26 04:44:56 +08:00
2004-02-18 01:53:12 +08:00
--with-rtsig_module) EVENT_RTSIG=YES ;;
2004-02-03 05:19:52 +08:00
--with-select_module) EVENT_SELECT=YES ;;
2004-02-10 04:47:18 +08:00
--without-select_module) EVENT_SELECT=NONE ;;
2004-02-03 05:19:52 +08:00
--with-poll_module) EVENT_POLL=YES ;;
2004-02-10 04:47:18 +08:00
--without-poll_module) EVENT_POLL=NONE ;;
2004-02-03 05:19:52 +08:00
--with-aio_module) EVENT_AIO=YES ;;
2004-01-23 17:26:18 +08:00
2004-02-24 04:57:12 +08:00
--with-threads=*) USE_THREADS="$value" ;;
--with-threads) USE_THREADS="pthreads" ;;
--without-http) HTTP=NO ;;
--http-log-path=*) NGX_HTTP_LOG_PATH="$value" ;;
--http-client-body-temp-path=*) NGX_HTTP_CLIENT_TEMP_PATH="$value" ;;
--http-proxy-temp-path=*) NGX_HTTP_PROXY_TEMP_PATH="$value" ;;
--http-fastcgi-temp-path=*) NGX_HTTP_FASTCGI_TEMP_PATH="$value" ;;
2004-07-08 23:17:47 +08:00
--with-http_ssl_module) HTTP_SSL=YES ;;
nginx-0.3.8-RELEASE import *) Security: nginx now checks URI got from a backend in "X-Accel-Redirect" header line or in SSI file for the "/../" paths and zeroes. *) Change: nginx now does not treat the empty user name in the "Authorization" header line as valid one. *) Feature: the "ssl_session_timeout" directives of the ngx_http_ssl_module and ngx_imap_ssl_module. *) Feature: the "auth_http_header" directive of the ngx_imap_auth_http_module. *) Feature: the "add_header" directive. *) Feature: the ngx_http_realip_module. *) Feature: the new variables to use in the "log_format" directive: $bytes_sent, $apache_bytes_sent, $status, $time_gmt, $uri, $request_time, $request_length, $upstream_status, $upstream_response_time, $gzip_ratio, $uid_got, $uid_set, $connection, $pipe, and $msec. The parameters in the "%name" form will be canceled soon. *) Change: now the false variable values in the "if" directive are the empty string "" and string starting with "0". *) Bugfix: while using proxied or FastCGI-server nginx may leave connections and temporary files with client requests in open state. *) Bugfix: the worker processes did not flush the buffered logs on graceful exit. *) Bugfix: if the request URI was changes by the "rewrite" directive and the request was proxied in location given by regular expression, then the incorrect request was transferred to backend; the bug had appeared in 0.2.6. *) Bugfix: the "expires" directive did not remove the previous "Expires" header. *) Bugfix: nginx may stop to accept requests if the "rtsig" method and several worker processes were used. *) Bugfix: the "\"" and "\'" escape symbols were incorrectly handled in SSI commands. *) Bugfix: if the response was ended just after the SSI command and gzipping was used, then the response did not transferred complete or did not transferred at all.
2005-11-10 01:25:55 +08:00
--with-http_realip_module) HTTP_REALIP=YES ;;
2004-06-23 00:43:09 +08:00
--without-http_charset_module) HTTP_CHARSET=NO ;;
2003-11-26 04:44:56 +08:00
--without-http_gzip_module) HTTP_GZIP=NO ;;
2004-07-08 23:17:47 +08:00
--without-http_ssi_module) HTTP_SSI=NO ;;
--without-http_userid_module) HTTP_USERID=NO ;;
--without-http_access_module) HTTP_ACCESS=NO ;;
--without-http_auth_basic_module) HTTP_AUTH_BASIC=NO ;;
--without-http_autoindex_module) HTTP_AUTOINDEX=NO ;;
2004-06-24 15:53:37 +08:00
--without-http_status_module) HTTP_STATUS=NO ;;
--without-http_geo_module) HTTP_GEO=NO ;;
--without-http_referer) HTTP_REFERER=NO ;;
2004-06-24 15:53:37 +08:00
--without-http_rewrite_module) HTTP_REWRITE=NO ;;
2003-11-26 04:44:56 +08:00
--without-http_proxy_module) HTTP_PROXY=NO ;;
--without-http_fastcgi_module) HTTP_FASTCGI=NO ;;
--without-http_epmty_gif_module) HTTP_EMPTY_GIF=NO ;;
2003-11-26 04:44:56 +08:00
# STUB
--with-http_stub_status_module) HTTP_STUB_STATUS=YES ;;
--with-imap) IMAP=YES ;;
--with-imap_ssl_module) IMAP_SSL=YES ;;
--add-module=*) NGX_ADDONS="$NGX_ADDONS $value" ;;
2003-11-26 04:44:56 +08:00
--with-cc=*) CC="$value" ;;
2004-03-12 05:34:52 +08:00
--with-cpp=*) CPP="$value" ;;
--with-cc-opt=*) NGX_CC_OPT="$value" ;;
--with-ld-opt=*) NGX_LD_OPT="$value" ;;
2004-03-11 04:56:39 +08:00
--with-cpu-opt=*) CPU="$value" ;;
--with-debug) NGX_DEBUG=YES ;;
2003-11-26 04:44:56 +08:00
2004-02-20 00:48:14 +08:00
--without-pcre) USE_PCRE=DISABLED ;;
2003-11-26 04:44:56 +08:00
--with-pcre=*) PCRE="$value" ;;
2004-03-11 04:56:39 +08:00
--with-pcre-opt=*) PCRE_OPT="$value" ;;
2004-07-26 02:34:14 +08:00
--with-openssl=*) OPENSSL="$value" ;;
--with-openssl-opt=*) OPENSSL_OPT="$value" ;;
2004-07-26 02:34:14 +08:00
2003-11-26 04:44:56 +08:00
--with-md5=*) MD5="$value" ;;
2004-03-11 04:56:39 +08:00
--with-md5-opt=*) MD5_OPT="$value" ;;
--with-md5-asm) MD5_ASM=YES ;;
2003-11-26 04:44:56 +08:00
--with-zlib=*) ZLIB="$value" ;;
2004-03-11 01:55:19 +08:00
--with-zlib-opt=*) ZLIB_OPT="$value" ;;
2004-03-11 04:56:39 +08:00
--with-zlib-asm=*) ZLIB_ASM="$value" ;;
2003-11-26 04:44:56 +08:00
--test-build-devpoll) NGX_TEST_BUILD_DEVPOLL=YES ;;
--test-build-epoll) NGX_TEST_BUILD_EPOLL=YES ;;
--test-build-rtsig) NGX_TEST_BUILD_RTSIG=YES ;;
--test-build-solaris-sendfilev) NGX_TEST_BUILD_SOLARIS_SENDFILEV=YES ;;
2003-11-26 04:44:56 +08:00
*)
echo "$0: error: invalid option \"$option\""
exit 1
;;
esac
done
2003-12-15 04:10:27 +08:00
if [ $help = yes ]; then
2004-01-23 17:26:18 +08:00
cat << END
--help this message
--prefix=PATH set the installation prefix
--sbin-path=PATH set path to the nginx binary file
--conf-path=PATH set path to the nginx.conf file
--error-log-path=PATH set path to the error log
--pid-path=PATH set path to nginx.pid file
--user=USER set non-privilege user
for the worker processes
--group=GROUP set non-privilege group
for the worker processes
--builddir=DIR set the build directory
--with-rtsig_module enable rtsig module
--with-select_module enable select module
--without-select_module disable select module
--with-poll_module enable poll module
--without-poll_module disable poll module
--with-http_ssl_module enable ngx_http_ssl_module
--without-http_charset_module disable ngx_http_charset_module
--without-http_gzip_module disable ngx_http_gzip_module
--without-http_ssi_module disable ngx_http_ssi_module
--without-http_userid_module disable ngx_http_userid_module
--without-http_access_module disable ngx_http_access_module
--without-http_auth_basic_module disable ngx_http_auth_basic_module
--without-http_autoindex_module disable ngx_http_autoindex_module
--without-http_geo_module disable ngx_http_geo_module
--without-http_rewrite_module disable ngx_http_rewrite_module
--without-http_proxy_module disable ngx_http_proxy_module
--without-http_fastcgi_module disable ngx_http_fastcgi_module
--http-log-path=PATH set path to the http access log
--http-client-body-temp-path=PATH set path to the http client request body
temporary files path
--http-proxy-temp-path=PATH set path to the http proxy temporary
files path
--http-fastcgi-temp-path=PATH set path to the http fastcgi temporary
files path
--without-http disable HTTP server
--with-imap enable IMAP4/POP3 proxy module
--with-cc=PATH set path to C compiler
--with-cpp=PATH set path to C preprocessor
--with-cc-opt=OPTIONS set additional options for C compiler
--with-ld-opt=OPTIONS set additional options for linker
--with-cpu-opt=CPU build for specified CPU, the valid values:
pentium, pentiumpro, pentium4, sparc64
--without-pcre disable PCRE libarary usage
--with-pcre=DIR set path to PCRE library sources
--with-pcre-opt=OPTIONS set additional options for PCRE building
--with-md5=DIR set path to md5 library sources
--with-md5-opt=OPTIONS set additional options for md5 building
--with-md5-asm use md5 assembler sources
--with-zlib=DIR set path to zlib library sources
--with-zlib-opt=OPTIONS set additional options for zlib building
--with-zlib-asm=CPU use zlib assembler sources optimized
for specified CPU, the valid values:
pentium, pentiumpro
--with-openssl=DIR set path to OpenSSL library sources
--with-openssl-opt=OPTIONS set additional options for OpenSSL building
--with-debug enable the debugging logging
2003-11-26 04:44:56 +08:00
END
2003-11-26 04:44:56 +08:00
exit 1
fi
2004-04-22 02:54:33 +08:00
if [ $HTTP = NO ]; then
HTTP_CHARSET=NO
HTTP_GZIP=NO
HTTP_SSI=NO
HTTP_USERID=NO
HTTP_ACCESS=NO
HTTP_STATUS=NO
HTTP_REWRITE=NO
HTTP_PROXY=NO
HTTP_FASTCGI=NO
fi
if [ ".$NGX_PLATFORM" = ".win32" ]; then
NGX_WINE=$WINE
2004-04-22 02:54:33 +08:00
fi
2004-05-19 04:28:54 +08:00
NGX_PREFIX=${NGX_PREFIX:-/usr/local/nginx}
2004-05-19 04:28:54 +08:00
case ".$NGX_SBIN_PATH" in
2004-09-28 00:03:21 +08:00
./*)
;;
2004-05-19 04:28:54 +08:00
2004-09-28 00:03:21 +08:00
.)
NGX_SBIN_PATH=$NGX_PREFIX/sbin/nginx
2004-09-28 00:03:21 +08:00
;;
2004-05-19 04:28:54 +08:00
2004-09-28 00:03:21 +08:00
*)
NGX_SBIN_PATH=$NGX_PREFIX/$NGX_SBIN_PATH
2004-09-28 00:03:21 +08:00
;;
esac
2004-05-19 04:28:54 +08:00
2004-09-28 00:03:21 +08:00
case ".$NGX_CONF_PATH" in
2004-09-28 00:03:21 +08:00
./*)
;;
.)
NGX_CONF_PATH=$NGX_PREFIX/conf/nginx.conf
2004-09-28 00:03:21 +08:00
;;
*)
NGX_CONF_PATH=$NGX_PREFIX/$NGX_CONF_PATH
2004-09-28 00:03:21 +08:00
;;
esac
case ".$NGX_PID_PATH" in
2004-09-28 00:03:21 +08:00
./*)
;;
.)
NGX_PID_PATH=$NGX_PREFIX/logs/nginx.pid
2004-09-28 00:03:21 +08:00
;;
*)
NGX_PID_PATH=$NGX_PREFIX/$NGX_PID_PATH
2004-09-28 00:03:21 +08:00
;;
esac
case ".$NGX_ERROR_LOG_PATH" in
2004-09-28 00:03:21 +08:00
./*)
;;
.)
NGX_ERROR_LOG_PATH=$NGX_PREFIX/logs/error.log
2004-09-28 00:03:21 +08:00
;;
.stderr)
NGX_ERROR_LOG_PATH=
;;
2004-09-28 00:03:21 +08:00
*)
NGX_ERROR_LOG_PATH=$NGX_PREFIX/$NGX_ERROR_LOG_PATH
2004-09-28 00:03:21 +08:00
;;
esac
case ".$NGX_HTTP_LOG_PATH" in
2004-09-28 00:03:21 +08:00
./*)
;;
.)
NGX_HTTP_LOG_PATH=$NGX_PREFIX/logs/access.log
2004-09-28 00:03:21 +08:00
;;
*)
NGX_HTTP_LOG_PATH=$NGX_PREFIX/$NGX_HTTP_LOG_PATH
2004-09-28 00:03:21 +08:00
;;
esac
case ".$NGX_HTTP_CLIENT_TEMP_PATH" in
./*)
;;
.)
NGX_HTTP_CLIENT_TEMP_PATH=$NGX_PREFIX/client_body_temp
;;
*)
NGX_HTTP_CLIENT_TEMP_PATH=$NGX_PREFIX/$NGX_HTTP_CLIENT_TEMP_PATH
;;
esac
case ".$NGX_HTTP_PROXY_TEMP_PATH" in
./*)
;;
.)
NGX_HTTP_PROXY_TEMP_PATH=$NGX_PREFIX/proxy_temp
;;
*)
NGX_HTTP_PROXY_TEMP_PATH=$NGX_PREFIX/$NGX_HTTP_PROXY_TEMP_PATH
;;
esac
case ".$NGX_HTTP_FASTCGI_TEMP_PATH" in
./*)
;;
.)
NGX_HTTP_FASTCGI_TEMP_PATH=$NGX_PREFIX/fastcgi_temp
;;
*)
NGX_HTTP_FASTCGI_TEMP_PATH=$NGX_PREFIX/$NGX_HTTP_FASTCGI_TEMP_PATH
;;
esac