2003-11-26 04:44:56 +08:00
|
|
|
|
2004-09-30 00:00:49 +08:00
|
|
|
# Copyright (C) Igor Sysoev
|
2012-01-18 23:07:43 +08:00
|
|
|
# Copyright (C) Nginx, Inc.
|
2004-09-30 00:00:49 +08:00
|
|
|
|
|
|
|
|
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
|
|
|
have=NGX_FREEBSD . auto/have_headers
|
2004-10-21 23:34:38 +08:00
|
|
|
|
2003-11-26 04:44:56 +08:00
|
|
|
CORE_INCS="$UNIX_INCS"
|
|
|
|
CORE_DEPS="$UNIX_DEPS $FREEBSD_DEPS"
|
2004-01-23 17:26:18 +08:00
|
|
|
CORE_SRCS="$UNIX_SRCS $FREEBSD_SRCS"
|
2003-11-26 04:44:56 +08:00
|
|
|
|
2004-10-21 23:34:38 +08:00
|
|
|
ngx_spacer='
|
|
|
|
'
|
2004-03-11 01:55:19 +08:00
|
|
|
|
2003-11-26 04:44:56 +08:00
|
|
|
|
2004-10-21 23:34:38 +08:00
|
|
|
# __FreeBSD_version and sysctl kern.osreldate are the best ways
|
|
|
|
# to determine whether some capability exists and is safe to use.
|
2006-09-07 03:07:31 +08:00
|
|
|
# __FreeBSD_version is used for the testing of the build environment.
|
2004-10-21 23:34:38 +08:00
|
|
|
# sysctl kern.osreldate is used for the testing of the kernel capabilities.
|
2004-02-18 01:53:12 +08:00
|
|
|
|
2003-11-26 04:44:56 +08:00
|
|
|
version=`grep "#define __FreeBSD_version" /usr/include/osreldate.h \
|
|
|
|
| sed -e 's/^.* \(.*\)$/\1/'`
|
|
|
|
|
2004-10-21 23:34:38 +08:00
|
|
|
osreldate=`/sbin/sysctl -n kern.osreldate`
|
|
|
|
|
2003-11-26 04:44:56 +08:00
|
|
|
|
2004-02-25 01:31:46 +08:00
|
|
|
# setproctitle() in libutil
|
|
|
|
|
|
|
|
if [ \( $version -ge 500000 -a $version -lt 500012 \) \
|
|
|
|
-o $version -lt 410002 ]
|
|
|
|
then
|
|
|
|
echo " + setproctitle() in libutil"
|
|
|
|
|
|
|
|
CORE_LIBS="$CORE_LIBS -lutil"
|
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
|
|
|
NGX_SETPROCTITLE_LIB="-lutil"
|
2004-02-25 01:31:46 +08:00
|
|
|
fi
|
|
|
|
|
2003-11-26 04:44:56 +08:00
|
|
|
# sendfile
|
|
|
|
|
2004-10-21 23:34:38 +08:00
|
|
|
if [ $osreldate -gt 300007 ]; then
|
2005-10-19 20:33:58 +08:00
|
|
|
echo " + sendfile() found"
|
2004-02-25 01:31:46 +08:00
|
|
|
|
2004-11-26 00:17:31 +08:00
|
|
|
have=NGX_HAVE_SENDFILE . auto/have
|
2003-11-26 04:44:56 +08:00
|
|
|
CORE_SRCS="$CORE_SRCS $FREEBSD_SENDFILE_SRCS"
|
|
|
|
fi
|
|
|
|
|
Simplified sendfile(SF_NODISKIO) usage.
Starting with FreeBSD 11, there is no need to use AIO operations to preload
data into cache for sendfile(SF_NODISKIO) to work. Instead, sendfile()
handles non-blocking loading data from disk by itself. It still can, however,
return EBUSY if a page is already being loaded (for example, by a different
process). If this happens, we now post an event for the next event loop
iteration, so sendfile() is retried "after a short period", as manpage
recommends.
The limit of the number of EBUSY tolerated without any progress is preserved,
but now it does not result in an alert, since on an idle system event loop
iteration might be very short and EBUSY can happen many times in a row.
Instead, SF_NODISKIO is simply disabled for one call once the limit is
reached.
With this change, sendfile(SF_NODISKIO) is now used automatically as long as
sendfile() is enabled, and no longer requires "aio on;".
2021-12-28 00:48:33 +08:00
|
|
|
if [ $osreldate -gt 1100093 ]; then
|
|
|
|
echo " + sendfile()'s SF_NODISKIO found"
|
2009-08-30 17:52:39 +08:00
|
|
|
|
Simplified sendfile(SF_NODISKIO) usage.
Starting with FreeBSD 11, there is no need to use AIO operations to preload
data into cache for sendfile(SF_NODISKIO) to work. Instead, sendfile()
handles non-blocking loading data from disk by itself. It still can, however,
return EBUSY if a page is already being loaded (for example, by a different
process). If this happens, we now post an event for the next event loop
iteration, so sendfile() is retried "after a short period", as manpage
recommends.
The limit of the number of EBUSY tolerated without any progress is preserved,
but now it does not result in an alert, since on an idle system event loop
iteration might be very short and EBUSY can happen many times in a row.
Instead, SF_NODISKIO is simply disabled for one call once the limit is
reached.
With this change, sendfile(SF_NODISKIO) is now used automatically as long as
sendfile() is enabled, and no longer requires "aio on;".
2021-12-28 00:48:33 +08:00
|
|
|
have=NGX_HAVE_SENDFILE_NODISKIO . auto/have
|
2009-08-30 17:52:39 +08:00
|
|
|
fi
|
|
|
|
|
2011-05-10 19:39:13 +08:00
|
|
|
# POSIX semaphores
|
|
|
|
# http://www.freebsd.org/cgi/query-pr.cgi?pr=kern/127545
|
|
|
|
|
|
|
|
if [ $osreldate -ge 701106 ]; then
|
|
|
|
echo " + POSIX semaphores should work"
|
|
|
|
else
|
|
|
|
have=NGX_HAVE_POSIX_SEM . auto/nohave
|
|
|
|
fi
|
|
|
|
|
2003-11-26 04:44:56 +08:00
|
|
|
|
|
|
|
# kqueue
|
|
|
|
|
2004-10-21 23:34:38 +08:00
|
|
|
if [ \( $osreldate -lt 500000 -a $osreldate -ge 410000 \) \
|
|
|
|
-o $osreldate -ge 500011 ]
|
2003-11-26 04:44:56 +08:00
|
|
|
then
|
2005-10-19 20:33:58 +08:00
|
|
|
echo " + kqueue found"
|
2004-02-25 01:31:46 +08:00
|
|
|
|
2004-11-26 00:17:31 +08:00
|
|
|
have=NGX_HAVE_KQUEUE . auto/have
|
|
|
|
have=NGX_HAVE_CLEAR_EVENT . auto/have
|
2003-11-26 04:44:56 +08:00
|
|
|
EVENT_MODULES="$EVENT_MODULES $KQUEUE_MODULE"
|
2004-03-30 14:27:36 +08:00
|
|
|
CORE_SRCS="$CORE_SRCS $KQUEUE_SRCS"
|
2004-02-03 05:19:52 +08:00
|
|
|
EVENT_FOUND=YES
|
2003-11-26 04:44:56 +08:00
|
|
|
fi
|
|
|
|
|
2005-02-16 21:40:36 +08:00
|
|
|
|
2004-10-21 23:34:38 +08:00
|
|
|
NGX_KQUEUE_CHECKED=YES
|
|
|
|
|
2003-11-26 04:44:56 +08:00
|
|
|
|
2015-02-12 01:18:55 +08:00
|
|
|
# kqueue's NOTE_LOWAT
|
2003-11-26 04:44:56 +08:00
|
|
|
|
|
|
|
if [ \( $version -lt 500000 -a $version -ge 430000 \) \
|
|
|
|
-o $version -ge 500018 ]
|
|
|
|
then
|
2005-10-19 20:33:58 +08:00
|
|
|
echo " + kqueue's NOTE_LOWAT found"
|
2004-11-26 00:17:31 +08:00
|
|
|
have=NGX_HAVE_LOWAT_EVENT . auto/have
|
2004-02-03 05:19:52 +08:00
|
|
|
fi
|
|
|
|
|
2005-10-19 20:33:58 +08:00
|
|
|
# kqueue's EVFILT_TIMER
|
|
|
|
|
|
|
|
if [ \( $version -lt 500000 -a $version -ge 440001 \) \
|
|
|
|
-o $version -ge 500023 ]
|
|
|
|
then
|
|
|
|
echo " + kqueue's EVFILT_TIMER found"
|
|
|
|
have=NGX_HAVE_TIMER_EVENT . auto/have
|
|
|
|
fi
|
|
|
|
|
2004-02-03 05:19:52 +08:00
|
|
|
|
2012-03-21 21:58:51 +08:00
|
|
|
# cpuset_setaffinity()
|
|
|
|
|
|
|
|
if [ $version -ge 701000 ]; then
|
|
|
|
echo " + cpuset_setaffinity() found"
|
|
|
|
have=NGX_HAVE_CPUSET_SETAFFINITY . auto/have
|
|
|
|
fi
|