276e06a14c
*) 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.
402 lines
11 KiB
Text
402 lines
11 KiB
Text
|
|
# Copyright (C) Igor Sysoev
|
|
|
|
|
|
help=no
|
|
|
|
NGX_PREFIX=
|
|
NGX_SBIN_PATH=
|
|
NGX_CONF_PATH=
|
|
NGX_ERROR_LOG_PATH=
|
|
NGX_PID_PATH=
|
|
NGX_USER=
|
|
NGX_GROUP=
|
|
|
|
CC=${CC:-gcc}
|
|
CPP=
|
|
NGX_OBJS=objs
|
|
|
|
NGX_DEBUG=NO
|
|
NGX_CC_OPT=
|
|
NGX_LD_OPT=
|
|
CPU=NO
|
|
|
|
NGX_TEST_BUILD_DEVPOLL=NO
|
|
NGX_TEST_BUILD_EPOLL=NO
|
|
NGX_TEST_BUILD_RTSIG=NO
|
|
NGX_TEST_BUILD_SOLARIS_SENDFILEV=NO
|
|
|
|
NGX_PLATFORM=
|
|
NGX_WINE=
|
|
|
|
EVENT_FOUND=NO
|
|
|
|
EVENT_RTSIG=NO
|
|
EVENT_SELECT=NO
|
|
EVENT_POLL=NO
|
|
EVENT_AIO=NO
|
|
|
|
USE_THREADS=NO
|
|
|
|
HTTP=YES
|
|
|
|
NGX_HTTP_LOG_PATH=
|
|
NGX_HTTP_CLIENT_TEMP_PATH=
|
|
NGX_HTTP_PROXY_TEMP_PATH=
|
|
NGX_HTTP_FASTCGI_TEMP_PATH=
|
|
|
|
HTTP_CHARSET=YES
|
|
HTTP_GZIP=YES
|
|
HTTP_SSL=NO
|
|
HTTP_SSI=YES
|
|
HTTP_POSTPONE=NO
|
|
HTTP_REALIP=NO
|
|
HTTP_ACCESS=YES
|
|
HTTP_AUTH_BASIC=YES
|
|
HTTP_USERID=YES
|
|
HTTP_AUTOINDEX=YES
|
|
HTTP_STATUS=NO
|
|
HTTP_GEO=YES
|
|
HTTP_REWRITE=YES
|
|
HTTP_PROXY=YES
|
|
HTTP_FASTCGI=YES
|
|
|
|
# STUB
|
|
HTTP_STUB_STATUS=NO
|
|
|
|
IMAP=NO
|
|
IMAP_SSL=NO
|
|
|
|
NGX_ADDONS=
|
|
|
|
USE_PCRE=NO
|
|
PCRE=NONE
|
|
PCRE_OPT=
|
|
|
|
USE_OPENSSL=NO
|
|
OPENSSL=NONE
|
|
|
|
USE_MD5=NO
|
|
MD5=NONE
|
|
MD5_OPT=
|
|
MD5_ASM=NO
|
|
|
|
USE_ZLIB=NO
|
|
ZLIB=NONE
|
|
ZLIB_OPT=
|
|
ZLIB_ASM=NO
|
|
|
|
|
|
for option
|
|
do
|
|
case "$option" in
|
|
-*=*) value=`echo "$option" | sed -e 's/[-_a-zA-Z0-9]*=//'` ;;
|
|
*) value="" ;;
|
|
esac
|
|
|
|
case "$option" in
|
|
--help) help=yes ;;
|
|
|
|
--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" ;;
|
|
|
|
--crossbuild=*) NGX_PLATFORM="$value" ;;
|
|
|
|
--builddir=*) NGX_OBJS="$value" ;;
|
|
|
|
--with-rtsig_module) EVENT_RTSIG=YES ;;
|
|
--with-select_module) EVENT_SELECT=YES ;;
|
|
--without-select_module) EVENT_SELECT=NONE ;;
|
|
--with-poll_module) EVENT_POLL=YES ;;
|
|
--without-poll_module) EVENT_POLL=NONE ;;
|
|
--with-aio_module) EVENT_AIO=YES ;;
|
|
|
|
--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" ;;
|
|
|
|
--with-http_ssl_module) HTTP_SSL=YES ;;
|
|
--with-http_realip_module) HTTP_REALIP=YES ;;
|
|
--without-http_charset_module) HTTP_CHARSET=NO ;;
|
|
--without-http_gzip_module) HTTP_GZIP=NO ;;
|
|
--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 ;;
|
|
--without-http_status_module) HTTP_STATUS=NO ;;
|
|
--without-http_geo_module) HTTP_GEO=NO ;;
|
|
--without-http_rewrite_module) HTTP_REWRITE=NO ;;
|
|
--without-http_proxy_module) HTTP_PROXY=NO ;;
|
|
--without-http_fastcgi_module) HTTP_FASTCGI=NO ;;
|
|
|
|
# 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" ;;
|
|
|
|
--with-cc=*) CC="$value" ;;
|
|
--with-cpp=*) CPP="$value" ;;
|
|
--with-cc-opt=*) NGX_CC_OPT="$value" ;;
|
|
--with-ld-opt=*) NGX_LD_OPT="$value" ;;
|
|
--with-cpu-opt=*) CPU="$value" ;;
|
|
--with-debug) NGX_DEBUG=YES ;;
|
|
|
|
--without-pcre) USE_PCRE=DISABLED ;;
|
|
--with-pcre=*) PCRE="$value" ;;
|
|
--with-pcre-opt=*) PCRE_OPT="$value" ;;
|
|
|
|
--with-openssl=*) OPENSSL="$value" ;;
|
|
--with-openssl-opt=*) OPENSSL_OPT="$value" ;;
|
|
|
|
--with-md5=*) MD5="$value" ;;
|
|
--with-md5-opt=*) MD5_OPT="$value" ;;
|
|
--with-md5-asm) MD5_ASM=YES ;;
|
|
|
|
--with-zlib=*) ZLIB="$value" ;;
|
|
--with-zlib-opt=*) ZLIB_OPT="$value" ;;
|
|
--with-zlib-asm=*) ZLIB_ASM="$value" ;;
|
|
|
|
--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 ;;
|
|
|
|
*)
|
|
echo "$0: error: invalid option \"$option\""
|
|
exit 1
|
|
;;
|
|
esac
|
|
done
|
|
|
|
|
|
if [ $help = yes ]; then
|
|
|
|
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
|
|
|
|
END
|
|
|
|
exit 1
|
|
fi
|
|
|
|
|
|
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
|
|
fi
|
|
|
|
|
|
NGX_PREFIX=${NGX_PREFIX:-/usr/local/nginx}
|
|
|
|
|
|
case ".$NGX_SBIN_PATH" in
|
|
./*)
|
|
;;
|
|
|
|
.)
|
|
NGX_SBIN_PATH=$NGX_PREFIX/sbin/nginx
|
|
;;
|
|
|
|
*)
|
|
NGX_SBIN_PATH=$NGX_PREFIX/$NGX_SBIN_PATH
|
|
;;
|
|
esac
|
|
|
|
|
|
case ".$NGX_CONF_PATH" in
|
|
./*)
|
|
;;
|
|
|
|
.)
|
|
NGX_CONF_PATH=$NGX_PREFIX/conf/nginx.conf
|
|
;;
|
|
|
|
*)
|
|
NGX_CONF_PATH=$NGX_PREFIX/$NGX_CONF_PATH
|
|
;;
|
|
esac
|
|
|
|
|
|
case ".$NGX_PID_PATH" in
|
|
./*)
|
|
;;
|
|
|
|
.)
|
|
NGX_PID_PATH=$NGX_PREFIX/logs/nginx.pid
|
|
;;
|
|
|
|
*)
|
|
NGX_PID_PATH=$NGX_PREFIX/$NGX_PID_PATH
|
|
;;
|
|
esac
|
|
|
|
|
|
case ".$NGX_ERROR_LOG_PATH" in
|
|
./*)
|
|
;;
|
|
|
|
.)
|
|
NGX_ERROR_LOG_PATH=$NGX_PREFIX/logs/error.log
|
|
;;
|
|
|
|
.stderr)
|
|
NGX_ERROR_LOG_PATH=
|
|
;;
|
|
|
|
*)
|
|
NGX_ERROR_LOG_PATH=$NGX_PREFIX/$NGX_ERROR_LOG_PATH
|
|
;;
|
|
esac
|
|
|
|
|
|
case ".$NGX_HTTP_LOG_PATH" in
|
|
./*)
|
|
;;
|
|
|
|
.)
|
|
NGX_HTTP_LOG_PATH=$NGX_PREFIX/logs/access.log
|
|
;;
|
|
|
|
*)
|
|
NGX_HTTP_LOG_PATH=$NGX_PREFIX/$NGX_HTTP_LOG_PATH
|
|
;;
|
|
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
|