forked from Hakase/nginx-build
Initial commit
This commit is contained in:
+25
@@ -0,0 +1,25 @@
|
|||||||
|
# Patch ignore
|
||||||
|
*~
|
||||||
|
*.orig
|
||||||
|
*.rej
|
||||||
|
*.patch
|
||||||
|
|
||||||
|
# Build files
|
||||||
|
/objs
|
||||||
|
.openssl
|
||||||
|
*.obj
|
||||||
|
*.o
|
||||||
|
*.so
|
||||||
|
*.suo
|
||||||
|
*.lib
|
||||||
|
*.bak
|
||||||
|
*.dwo
|
||||||
|
Makefile
|
||||||
|
|
||||||
|
# Log files
|
||||||
|
*.log
|
||||||
|
|
||||||
|
|
||||||
|
# ETC.
|
||||||
|
autopatch.sh
|
||||||
|
|
||||||
+36
@@ -0,0 +1,36 @@
|
|||||||
|
[submodule "lib/ct-submit"]
|
||||||
|
path = lib/ct-submit
|
||||||
|
url = https://github.com/grahamedgecombe/ct-submit.git
|
||||||
|
[submodule "lib/naxsi"]
|
||||||
|
path = lib/naxsi
|
||||||
|
url = https://github.com/nbs-system/naxsi.git
|
||||||
|
[submodule "lib/nginx-ct"]
|
||||||
|
path = lib/nginx-ct
|
||||||
|
url = https://github.com/grahamedgecombe/nginx-ct.git
|
||||||
|
[submodule "lib/nginx-dav-ext-module"]
|
||||||
|
path = lib/nginx-dav-ext-module
|
||||||
|
url = https://github.com/arut/nginx-dav-ext-module.git
|
||||||
|
[submodule "lib/nginx-rtmp-module"]
|
||||||
|
path = lib/nginx-rtmp-module
|
||||||
|
url = https://github.com/arut/nginx-rtmp-module.git
|
||||||
|
[submodule "lib/ngx_brotli"]
|
||||||
|
path = lib/ngx_brotli
|
||||||
|
url = https://github.com/google/ngx_brotli.git
|
||||||
|
[submodule "lib/ngx_devel_kit"]
|
||||||
|
path = lib/ngx_devel_kit
|
||||||
|
url = https://github.com/simplresty/ngx_devel_kit.git
|
||||||
|
[submodule "lib/ngx-fancyindex"]
|
||||||
|
path = lib/ngx-fancyindex
|
||||||
|
url = https://github.com/aperezdc/ngx-fancyindex.git
|
||||||
|
[submodule "lib/redis2-nginx-module"]
|
||||||
|
path = lib/redis2-nginx-module
|
||||||
|
url = https://github.com/openresty/redis2-nginx-module.git
|
||||||
|
[submodule "lib/_s/headers-more-nginx-module"]
|
||||||
|
path = lib/_s/headers-more-nginx-module
|
||||||
|
url = https://github.com/openresty/headers-more-nginx-module.git
|
||||||
|
[submodule "lib/_s/ngx_cache_purge"]
|
||||||
|
path = lib/_s/ngx_cache_purge
|
||||||
|
url = https://github.com/FRiCKLE/ngx_cache_purge.git
|
||||||
|
[submodule "lib/_s/set-misc-nginx-module"]
|
||||||
|
path = lib/_s/set-misc-nginx-module
|
||||||
|
url = https://github.com/openresty/set-misc-nginx-module.git
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
# Hakase-nginx
|
||||||
|
|
||||||
|
My nginx build files.
|
||||||
|
- [x] Complete tasks
|
||||||
|
- [x] Change git
|
||||||
|
|
||||||
|
- [ ] Incomplete tasks
|
||||||
|
- [ ] TLS v1.3
|
||||||
|
- [ ] Auto build (rpm, deb, etc.)
|
||||||
|
- [ ] ETC.
|
||||||
@@ -0,0 +1,86 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
#--with-cc-opt='-m64 -march=native -DTCP_FASTOPEN=23 -g -fstack-protector-strong -flto -fuse-ld=gold --param=ssp-buffer-size=4 -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -gsplit-dwarf' \
|
||||||
|
#--with-openssl-opt="enable-weak-ssl-ciphers enable-tls1_3 -DCFLAGS='-march=native -O3 -flto -fuse-linker-plugin'" \
|
||||||
|
#--with-openssl-opt="enable-weak-ssl-ciphers enable-tls1_3 -DCFLAGS='-march=native -O3 -flto -fuse-linker-plugin'" \
|
||||||
|
|
||||||
|
auto/configure \
|
||||||
|
--with-cc-opt='-DTCP_FASTOPEN=23 -m64 -g -O3 -march=native -flto -fstack-protector-strong -fuse-ld=gold -fuse-linker-plugin --param=ssp-buffer-size=4 -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -gsplit-dwarf --param=ssp-buffer-size=4 -DNGX_HTTP_HEADERS' \
|
||||||
|
--with-ld-opt='-ljemalloc -Wl,-z,relro' \
|
||||||
|
--builddir=objs --prefix=/usr/local/nginx \
|
||||||
|
--conf-path=/etc/nginx/nginx.conf \
|
||||||
|
--pid-path=/var/run/nginx.pid \
|
||||||
|
--lock-path=/var/lock/nginx.lock \
|
||||||
|
--http-log-path=/var/log/nginx/access.log \
|
||||||
|
--error-log-path=/var/log/nginx/error.log \
|
||||||
|
--sbin-path=/usr/sbin/nginx \
|
||||||
|
--http-client-body-temp-path=/var/lib/nginx/client_body_temp \
|
||||||
|
--http-proxy-temp-path=/var/lib/nginx/proxy_temp \
|
||||||
|
--http-fastcgi-temp-path=/var/lib/nginx/fastcgi_temp \
|
||||||
|
--http-scgi-temp-path=/var/lib/nginx/scgi_temp \
|
||||||
|
--http-uwsgi-temp-path=/var/lib/nginx/uwsgi_temp \
|
||||||
|
--with-pcre=./lib/pcre-8.41 \
|
||||||
|
--with-pcre-jit \
|
||||||
|
--with-zlib=./lib/zlib-1.2.11 \
|
||||||
|
--with-openssl=./lib/openssl-1.1.0g \
|
||||||
|
--with-openssl-opt="enable-weak-ssl-ciphers -DCFLAGS='-march=native -O3 -flto -fuse-linker-plugin'" \
|
||||||
|
--with-select_module \
|
||||||
|
--with-http_v2_hpack_enc \
|
||||||
|
--with-http_realip_module \
|
||||||
|
--with-http_addition_module \
|
||||||
|
--with-http_sub_module \
|
||||||
|
--with-http_dav_module \
|
||||||
|
--with-http_stub_status_module \
|
||||||
|
--with-http_flv_module \
|
||||||
|
--with-http_mp4_module \
|
||||||
|
--with-http_geoip_module \
|
||||||
|
--with-http_gunzip_module \
|
||||||
|
--with-http_slice_module \
|
||||||
|
--with-http_gzip_static_module \
|
||||||
|
--with-http_auth_request_module \
|
||||||
|
--with-http_dav_module \
|
||||||
|
--with-http_random_index_module \
|
||||||
|
--with-http_secure_link_module \
|
||||||
|
--with-http_image_filter_module \
|
||||||
|
--with-file-aio \
|
||||||
|
--with-threads \
|
||||||
|
--with-google_perftools_module \
|
||||||
|
--with-libatomic \
|
||||||
|
--with-mail \
|
||||||
|
--with-compat \
|
||||||
|
--with-stream \
|
||||||
|
--with-http_ssl_module \
|
||||||
|
--with-mail_ssl_module \
|
||||||
|
--with-http_v2_module \
|
||||||
|
--with-http_spdy_module \
|
||||||
|
--with-stream_ssl_module \
|
||||||
|
--with-stream_geoip_module \
|
||||||
|
--with-stream_realip_module \
|
||||||
|
--with-stream_ssl_preread_module \
|
||||||
|
--add-module=./lib/ngx_devel_kit \
|
||||||
|
--add-module=./lib/ngx_brotli \
|
||||||
|
--add-module=./lib/ngx_pagespeed ${PS_NGX_EXTRA_FLAGS} \
|
||||||
|
--add-module=./lib/ngx-fancyindex \
|
||||||
|
--add-module=./lib/nginx-ct \
|
||||||
|
--add-module=./lib/nginx-dav-ext-module \
|
||||||
|
--add-module=./lib/_s/headers-more-nginx-module \
|
||||||
|
--add-module=./lib/_s/ngx_cache_purge \
|
||||||
|
--add-module=./lib/_s/set-misc-nginx-module \
|
||||||
|
--add-module=./lib/naxsi/naxsi_src
|
||||||
|
|
||||||
|
# --add-module=./lib/nginx-rtmp-module \
|
||||||
|
#cd lib/boringssl
|
||||||
|
|
||||||
|
#cmake ./
|
||||||
|
#make -j8
|
||||||
|
|
||||||
|
#cd ../../
|
||||||
|
|
||||||
|
#touch lib/openssl-1.1.0g/.openssl/include/openssl/ssl.h
|
||||||
|
#touch lib/boringssl/.openssl/include/openssl/ssl.h
|
||||||
|
make -j8 install
|
||||||
|
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
rm /usr/sbin/nginx.old
|
||||||
|
systemctl restart nginx
|
||||||
|
|
||||||
+14
@@ -0,0 +1,14 @@
|
|||||||
|
|
||||||
|
# Copyright (C) Igor Sysoev
|
||||||
|
# Copyright (C) Nginx, Inc.
|
||||||
|
|
||||||
|
|
||||||
|
# aCC: HP ANSI C++ B3910B A.03.55.02
|
||||||
|
|
||||||
|
# C89 mode
|
||||||
|
|
||||||
|
CFLAGS="$CFLAGS -Ae"
|
||||||
|
CC_TEST_FLAGS="-Ae"
|
||||||
|
|
||||||
|
PCRE_OPT="$PCRE_OPT -Ae"
|
||||||
|
ZLIB_OPT="$ZLIB_OPT -Ae"
|
||||||
+71
@@ -0,0 +1,71 @@
|
|||||||
|
|
||||||
|
# Copyright (C) Igor Sysoev
|
||||||
|
# Copyright (C) Nginx, Inc.
|
||||||
|
|
||||||
|
|
||||||
|
# Borland C++ 5.5
|
||||||
|
|
||||||
|
# optimizations
|
||||||
|
|
||||||
|
# maximize speed
|
||||||
|
CFLAGS="$CFLAGS -O2"
|
||||||
|
|
||||||
|
case $CPU in
|
||||||
|
pentium)
|
||||||
|
# optimize for Pentium and Athlon
|
||||||
|
CPU_OPT="-5"
|
||||||
|
;;
|
||||||
|
|
||||||
|
pentiumpro)
|
||||||
|
# optimize for Pentium Pro, Pentium II and Pentium III
|
||||||
|
CPU_OPT="-6"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# __stdcall
|
||||||
|
#CPU_OPT="$CPU_OPT -ps"
|
||||||
|
# __fastcall
|
||||||
|
#CPU_OPT="$CPU_OPT -pr"
|
||||||
|
|
||||||
|
CFLAGS="$CFLAGS $CPU_OPT"
|
||||||
|
|
||||||
|
# multithreaded
|
||||||
|
CFLAGS="$CFLAGS -tWM"
|
||||||
|
|
||||||
|
# stop on warning
|
||||||
|
CFLAGS="$CFLAGS -w!"
|
||||||
|
|
||||||
|
# disable logo
|
||||||
|
CFLAGS="$CFLAGS -q"
|
||||||
|
|
||||||
|
|
||||||
|
# precompiled headers
|
||||||
|
CORE_DEPS="$CORE_DEPS $NGX_OBJS/ngx_config.csm"
|
||||||
|
NGX_PCH="$NGX_OBJS/ngx_config.csm"
|
||||||
|
NGX_BUILD_PCH="-H=$NGX_OBJS/ngx_config.csm"
|
||||||
|
NGX_USE_PCH="-Hu -H=$NGX_OBJS/ngx_config.csm"
|
||||||
|
|
||||||
|
|
||||||
|
# Win32 GUI mode application
|
||||||
|
#LINK="\$(CC) -laa"
|
||||||
|
|
||||||
|
|
||||||
|
# the resource file
|
||||||
|
NGX_RES="$NGX_OBJS/nginx.res"
|
||||||
|
NGX_RCC="brcc32 -fo$NGX_OBJS/nginx.res \$(CORE_INCS) $NGX_WIN32_RC"
|
||||||
|
# the pragma allows to link the resource file using bcc32 and
|
||||||
|
# to avoid the direct ilink32 calling and the c0w32.obj's WinMain/main problem
|
||||||
|
NGX_PRAGMA="#pragma resource \"$NGX_OBJS/nginx.res\""
|
||||||
|
|
||||||
|
|
||||||
|
ngx_include_opt="-I"
|
||||||
|
ngx_objout="-o"
|
||||||
|
ngx_binout="-e"
|
||||||
|
ngx_objext="obj"
|
||||||
|
|
||||||
|
ngx_long_start='@&&|
|
||||||
|
'
|
||||||
|
ngx_long_end='|'
|
||||||
|
|
||||||
|
ngx_regex_dirsep='\\'
|
||||||
|
ngx_dirsep="\\"
|
||||||
+46
@@ -0,0 +1,46 @@
|
|||||||
|
|
||||||
|
# Copyright (C) Igor Sysoev
|
||||||
|
# Copyright (C) Nginx, Inc.
|
||||||
|
|
||||||
|
|
||||||
|
# Compaq C V6.5-207
|
||||||
|
|
||||||
|
ngx_include_opt="-I"
|
||||||
|
|
||||||
|
# warnings
|
||||||
|
|
||||||
|
CFLAGS="$CFLAGS -msg_enable level6 -msg_fatal level6"
|
||||||
|
|
||||||
|
CFLAGS="$CFLAGS -msg_disable unknownmacro"
|
||||||
|
CFLAGS="$CFLAGS -msg_disable unusedincl"
|
||||||
|
CFLAGS="$CFLAGS -msg_disable unnecincl"
|
||||||
|
CFLAGS="$CFLAGS -msg_disable nestincl"
|
||||||
|
CFLAGS="$CFLAGS -msg_disable strctpadding"
|
||||||
|
CFLAGS="$CFLAGS -msg_disable ansialiascast"
|
||||||
|
CFLAGS="$CFLAGS -msg_disable inlinestoclsmod"
|
||||||
|
CFLAGS="$CFLAGS -msg_disable cxxkeyword"
|
||||||
|
CFLAGS="$CFLAGS -msg_disable longlongsufx"
|
||||||
|
CFLAGS="$CFLAGS -msg_disable valuepres"
|
||||||
|
|
||||||
|
# STUB
|
||||||
|
CFLAGS="$CFLAGS -msg_disable truncintcast"
|
||||||
|
CFLAGS="$CFLAGS -msg_disable trunclongcast"
|
||||||
|
|
||||||
|
CFLAGS="$CFLAGS -msg_disable truncintasn"
|
||||||
|
CFLAGS="$CFLAGS -msg_disable trunclongint"
|
||||||
|
CFLAGS="$CFLAGS -msg_disable intconcastsgn"
|
||||||
|
CFLAGS="$CFLAGS -msg_disable intconstsign"
|
||||||
|
CFLAGS="$CFLAGS -msg_disable switchlong"
|
||||||
|
CFLAGS="$CFLAGS -msg_disable subscrbounds2"
|
||||||
|
|
||||||
|
CFLAGS="$CFLAGS -msg_disable hexoctunsign"
|
||||||
|
|
||||||
|
CFLAGS="$CFLAGS -msg_disable ignorecallval"
|
||||||
|
CFLAGS="$CFLAGS -msg_disable nonstandcast"
|
||||||
|
CFLAGS="$CFLAGS -msg_disable embedcomment"
|
||||||
|
CFLAGS="$CFLAGS -msg_disable unreachcode"
|
||||||
|
CFLAGS="$CFLAGS -msg_disable questcompare2"
|
||||||
|
CFLAGS="$CFLAGS -msg_disable unusedtop"
|
||||||
|
CFLAGS="$CFLAGS -msg_disable unrefdecl"
|
||||||
|
|
||||||
|
CFLAGS="$CFLAGS -msg_disable bitnotint"
|
||||||
@@ -0,0 +1,98 @@
|
|||||||
|
|
||||||
|
# Copyright (C) Nginx, Inc.
|
||||||
|
|
||||||
|
|
||||||
|
# clang
|
||||||
|
|
||||||
|
|
||||||
|
NGX_CLANG_VER=`$CC -v 2>&1 | grep 'version' 2>&1 \
|
||||||
|
| sed -e 's/^.* version \(.*\)/\1/'`
|
||||||
|
|
||||||
|
echo " + clang version: $NGX_CLANG_VER"
|
||||||
|
|
||||||
|
have=NGX_COMPILER value="\"clang $NGX_CLANG_VER\"" . auto/define
|
||||||
|
|
||||||
|
|
||||||
|
CC_TEST_FLAGS="-pipe"
|
||||||
|
|
||||||
|
|
||||||
|
# optimizations
|
||||||
|
|
||||||
|
#NGX_CLANG_OPT="-O2"
|
||||||
|
#NGX_CLANG_OPT="-Oz"
|
||||||
|
NGX_CLANG_OPT="-O"
|
||||||
|
|
||||||
|
case $CPU in
|
||||||
|
pentium)
|
||||||
|
# optimize for Pentium
|
||||||
|
CPU_OPT="-march=pentium"
|
||||||
|
NGX_CPU_CACHE_LINE=32
|
||||||
|
;;
|
||||||
|
|
||||||
|
pentiumpro | pentium3)
|
||||||
|
# optimize for Pentium Pro, Pentium II and Pentium III
|
||||||
|
CPU_OPT="-march=pentiumpro"
|
||||||
|
NGX_CPU_CACHE_LINE=32
|
||||||
|
;;
|
||||||
|
|
||||||
|
pentium4)
|
||||||
|
# optimize for Pentium 4
|
||||||
|
CPU_OPT="-march=pentium4"
|
||||||
|
NGX_CPU_CACHE_LINE=128
|
||||||
|
;;
|
||||||
|
|
||||||
|
athlon)
|
||||||
|
# optimize for Athlon
|
||||||
|
CPU_OPT="-march=athlon"
|
||||||
|
NGX_CPU_CACHE_LINE=64
|
||||||
|
;;
|
||||||
|
|
||||||
|
opteron)
|
||||||
|
# optimize for Opteron
|
||||||
|
CPU_OPT="-march=opteron"
|
||||||
|
NGX_CPU_CACHE_LINE=64
|
||||||
|
;;
|
||||||
|
|
||||||
|
esac
|
||||||
|
|
||||||
|
CC_AUX_FLAGS="$CC_AUX_FLAGS $CPU_OPT"
|
||||||
|
|
||||||
|
|
||||||
|
CFLAGS="$CFLAGS -pipe $CPU_OPT"
|
||||||
|
|
||||||
|
if [ ".$PCRE_OPT" = "." ]; then
|
||||||
|
PCRE_OPT="-O2 -pipe $CPU_OPT"
|
||||||
|
else
|
||||||
|
PCRE_OPT="$PCRE_OPT -pipe"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ".$ZLIB_OPT" = "." ]; then
|
||||||
|
ZLIB_OPT="-O2 -pipe $CPU_OPT"
|
||||||
|
else
|
||||||
|
ZLIB_OPT="$ZLIB_OPT -pipe"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# warnings
|
||||||
|
|
||||||
|
CFLAGS="$CFLAGS $NGX_CLANG_OPT -Wall -Wextra -Wpointer-arith"
|
||||||
|
CFLAGS="$CFLAGS -Wconditional-uninitialized"
|
||||||
|
#CFLAGS="$CFLAGS -Wmissing-prototypes"
|
||||||
|
|
||||||
|
# we have a lot of unused function arguments
|
||||||
|
CFLAGS="$CFLAGS -Wno-unused-parameter"
|
||||||
|
|
||||||
|
# deprecated system OpenSSL library on OS X
|
||||||
|
if [ "$NGX_SYSTEM" = "Darwin" ]; then
|
||||||
|
CFLAGS="$CFLAGS -Wno-deprecated-declarations"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# stop on warning
|
||||||
|
CFLAGS="$CFLAGS -Werror"
|
||||||
|
|
||||||
|
# debug
|
||||||
|
CFLAGS="$CFLAGS -g"
|
||||||
|
|
||||||
|
if [ ".$CPP" = "." ]; then
|
||||||
|
CPP="$CC -E"
|
||||||
|
fi
|
||||||
+254
@@ -0,0 +1,254 @@
|
|||||||
|
|
||||||
|
# Copyright (C) Igor Sysoev
|
||||||
|
# Copyright (C) Nginx, Inc.
|
||||||
|
|
||||||
|
|
||||||
|
LINK="\$(CC)"
|
||||||
|
|
||||||
|
MAIN_LINK=
|
||||||
|
MODULE_LINK="-shared"
|
||||||
|
|
||||||
|
ngx_include_opt="-I "
|
||||||
|
ngx_compile_opt="-c"
|
||||||
|
ngx_pic_opt="-fPIC"
|
||||||
|
ngx_objout="-o "
|
||||||
|
ngx_binout="-o "
|
||||||
|
ngx_objext="o"
|
||||||
|
ngx_binext=
|
||||||
|
ngx_modext=".so"
|
||||||
|
|
||||||
|
ngx_long_start=
|
||||||
|
ngx_long_end=
|
||||||
|
|
||||||
|
ngx_regex_dirsep="\/"
|
||||||
|
ngx_dirsep='/'
|
||||||
|
|
||||||
|
ngx_regex_cont=' \\\
|
||||||
|
'
|
||||||
|
ngx_cont=' \
|
||||||
|
'
|
||||||
|
ngx_tab=' \
|
||||||
|
'
|
||||||
|
ngx_spacer=
|
||||||
|
|
||||||
|
ngx_long_regex_cont=$ngx_regex_cont
|
||||||
|
ngx_long_cont=$ngx_cont
|
||||||
|
|
||||||
|
. auto/cc/name
|
||||||
|
|
||||||
|
if test -n "$CFLAGS"; then
|
||||||
|
|
||||||
|
CC_TEST_FLAGS="$CFLAGS $NGX_CC_OPT"
|
||||||
|
|
||||||
|
case $NGX_CC_NAME in
|
||||||
|
|
||||||
|
ccc)
|
||||||
|
# Compaq C V6.5-207
|
||||||
|
|
||||||
|
ngx_include_opt="-I"
|
||||||
|
;;
|
||||||
|
|
||||||
|
sunc)
|
||||||
|
|
||||||
|
MAIN_LINK=
|
||||||
|
MODULE_LINK="-G"
|
||||||
|
|
||||||
|
case "$NGX_MACHINE" in
|
||||||
|
|
||||||
|
i86pc)
|
||||||
|
NGX_AUX=" src/os/unix/ngx_sunpro_x86.il"
|
||||||
|
;;
|
||||||
|
|
||||||
|
sun4u | sun4v)
|
||||||
|
NGX_AUX=" src/os/unix/ngx_sunpro_sparc64.il"
|
||||||
|
;;
|
||||||
|
|
||||||
|
esac
|
||||||
|
|
||||||
|
case $CPU in
|
||||||
|
|
||||||
|
amd64)
|
||||||
|
NGX_AUX=" src/os/unix/ngx_sunpro_amd64.il"
|
||||||
|
;;
|
||||||
|
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
|
||||||
|
esac
|
||||||
|
|
||||||
|
else
|
||||||
|
|
||||||
|
case $NGX_CC_NAME in
|
||||||
|
gcc)
|
||||||
|
# gcc 2.7.2.3, 2.8.1, 2.95.4, egcs-1.1.2
|
||||||
|
# 3.0.4, 3.1.1, 3.2.3, 3.3.2, 3.3.3, 3.3.4, 3.4.0, 3.4.2
|
||||||
|
# 4.0.0, 4.0.1, 4.1.0
|
||||||
|
|
||||||
|
. auto/cc/gcc
|
||||||
|
;;
|
||||||
|
|
||||||
|
clang)
|
||||||
|
# Clang C compiler
|
||||||
|
|
||||||
|
. auto/cc/clang
|
||||||
|
;;
|
||||||
|
|
||||||
|
icc)
|
||||||
|
# Intel C++ compiler 7.1, 8.0, 8.1
|
||||||
|
|
||||||
|
. auto/cc/icc
|
||||||
|
;;
|
||||||
|
|
||||||
|
sunc)
|
||||||
|
# Sun C 5.7 Patch 117837-04 2005/05/11
|
||||||
|
|
||||||
|
. auto/cc/sunc
|
||||||
|
;;
|
||||||
|
|
||||||
|
ccc)
|
||||||
|
# Compaq C V6.5-207
|
||||||
|
|
||||||
|
. auto/cc/ccc
|
||||||
|
;;
|
||||||
|
|
||||||
|
acc)
|
||||||
|
# aCC: HP ANSI C++ B3910B A.03.55.02
|
||||||
|
|
||||||
|
. auto/cc/acc
|
||||||
|
;;
|
||||||
|
|
||||||
|
msvc*)
|
||||||
|
# MSVC++ 6.0 SP2, MSVC++ Toolkit 2003
|
||||||
|
|
||||||
|
. auto/cc/msvc
|
||||||
|
;;
|
||||||
|
|
||||||
|
owc)
|
||||||
|
# Open Watcom C 1.0, 1.2
|
||||||
|
|
||||||
|
. auto/cc/owc
|
||||||
|
;;
|
||||||
|
|
||||||
|
bcc)
|
||||||
|
# Borland C++ 5.5
|
||||||
|
|
||||||
|
. auto/cc/bcc
|
||||||
|
;;
|
||||||
|
|
||||||
|
esac
|
||||||
|
|
||||||
|
CC_TEST_FLAGS="$CC_TEST_FLAGS $NGX_CC_OPT"
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
CFLAGS="$CFLAGS $NGX_CC_OPT"
|
||||||
|
NGX_TEST_LD_OPT="$NGX_LD_OPT"
|
||||||
|
|
||||||
|
if [ "$NGX_PLATFORM" != win32 ]; then
|
||||||
|
|
||||||
|
if test -n "$NGX_LD_OPT"; then
|
||||||
|
ngx_feature=--with-ld-opt=\"$NGX_LD_OPT\"
|
||||||
|
ngx_feature_name=
|
||||||
|
ngx_feature_run=no
|
||||||
|
ngx_feature_incs=
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs=
|
||||||
|
ngx_feature_test=
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
if [ $ngx_found = no ]; then
|
||||||
|
echo $0: error: the invalid value in --with-ld-opt=\"$NGX_LD_OPT\"
|
||||||
|
echo
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
ngx_feature="-Wl,-E switch"
|
||||||
|
ngx_feature_name=
|
||||||
|
ngx_feature_run=no
|
||||||
|
ngx_feature_incs=
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs=-Wl,-E
|
||||||
|
ngx_feature_test=
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
if [ $ngx_found = yes ]; then
|
||||||
|
MAIN_LINK="-Wl,-E"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
if [ "$NGX_CC_NAME" = "sunc" ]; then
|
||||||
|
echo "checking for gcc builtin atomic operations ... disabled"
|
||||||
|
else
|
||||||
|
ngx_feature="gcc builtin atomic operations"
|
||||||
|
ngx_feature_name=NGX_HAVE_GCC_ATOMIC
|
||||||
|
ngx_feature_run=yes
|
||||||
|
ngx_feature_incs=
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs=
|
||||||
|
ngx_feature_test="long n = 0;
|
||||||
|
if (!__sync_bool_compare_and_swap(&n, 0, 1))
|
||||||
|
return 1;
|
||||||
|
if (__sync_fetch_and_add(&n, 1) != 1)
|
||||||
|
return 1;
|
||||||
|
if (n != 2)
|
||||||
|
return 1;
|
||||||
|
__sync_synchronize();"
|
||||||
|
. auto/feature
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
if [ "$NGX_CC_NAME" = "ccc" ]; then
|
||||||
|
echo "checking for C99 variadic macros ... disabled"
|
||||||
|
else
|
||||||
|
ngx_feature="C99 variadic macros"
|
||||||
|
ngx_feature_name="NGX_HAVE_C99_VARIADIC_MACROS"
|
||||||
|
ngx_feature_run=yes
|
||||||
|
ngx_feature_incs="#include <stdio.h>
|
||||||
|
#define var(dummy, ...) sprintf(__VA_ARGS__)"
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs=
|
||||||
|
ngx_feature_test="char buf[30]; buf[0] = '0';
|
||||||
|
var(0, buf, \"%d\", 1);
|
||||||
|
if (buf[0] != '1') return 1"
|
||||||
|
. auto/feature
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
ngx_feature="gcc variadic macros"
|
||||||
|
ngx_feature_name="NGX_HAVE_GCC_VARIADIC_MACROS"
|
||||||
|
ngx_feature_run=yes
|
||||||
|
ngx_feature_incs="#include <stdio.h>
|
||||||
|
#define var(dummy, args...) sprintf(args)"
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs=
|
||||||
|
ngx_feature_test="char buf[30]; buf[0] = '0';
|
||||||
|
var(0, buf, \"%d\", 1);
|
||||||
|
if (buf[0] != '1') return 1"
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
|
||||||
|
ngx_feature="gcc builtin 64 bit byteswap"
|
||||||
|
ngx_feature_name="NGX_HAVE_GCC_BSWAP64"
|
||||||
|
ngx_feature_run=no
|
||||||
|
ngx_feature_incs=
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs=
|
||||||
|
ngx_feature_test="if (__builtin_bswap64(0)) return 1"
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
|
||||||
|
# ngx_feature="inline"
|
||||||
|
# ngx_feature_name=
|
||||||
|
# ngx_feature_run=no
|
||||||
|
# ngx_feature_incs="int inline f(void) { return 1 }"
|
||||||
|
# ngx_feature_path=
|
||||||
|
# ngx_feature_libs=
|
||||||
|
# ngx_feature_test=
|
||||||
|
# . auto/feature
|
||||||
|
#
|
||||||
|
# if [ $ngx_found = yes ]; then
|
||||||
|
# fi
|
||||||
|
|
||||||
|
fi
|
||||||
+179
@@ -0,0 +1,179 @@
|
|||||||
|
|
||||||
|
# Copyright (C) Igor Sysoev
|
||||||
|
# Copyright (C) Nginx, Inc.
|
||||||
|
|
||||||
|
|
||||||
|
# gcc 2.7.2.3, 2.8.1, 2.95.4, egcs-1.1.2
|
||||||
|
# 3.0.4, 3.1.1, 3.2.3, 3.3.2, 3.3.3, 3.3.4, 3.4.0, 3.4.2
|
||||||
|
# 4.0.0, 4.0.1, 4.1.0
|
||||||
|
|
||||||
|
|
||||||
|
NGX_GCC_VER=`$CC -v 2>&1 | grep 'gcc version' 2>&1 \
|
||||||
|
| sed -e 's/^.* version \(.*\)/\1/'`
|
||||||
|
|
||||||
|
echo " + gcc version: $NGX_GCC_VER"
|
||||||
|
|
||||||
|
have=NGX_COMPILER value="\"gcc $NGX_GCC_VER\"" . auto/define
|
||||||
|
|
||||||
|
|
||||||
|
# Solaris 7's /usr/ccs/bin/as does not support "-pipe"
|
||||||
|
|
||||||
|
CC_TEST_FLAGS="-pipe"
|
||||||
|
|
||||||
|
ngx_feature="gcc -pipe switch"
|
||||||
|
ngx_feature_name=
|
||||||
|
ngx_feature_run=no
|
||||||
|
ngx_feature_incs=
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs=
|
||||||
|
ngx_feature_test=
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
CC_TEST_FLAGS=
|
||||||
|
|
||||||
|
if [ $ngx_found = yes ]; then
|
||||||
|
PIPE="-pipe"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
case "$NGX_MACHINE" in
|
||||||
|
|
||||||
|
sun4u | sun4v | sparc | sparc64 )
|
||||||
|
# "-mcpu=v9" enables the "casa" assembler instruction
|
||||||
|
CFLAGS="$CFLAGS -mcpu=v9"
|
||||||
|
;;
|
||||||
|
|
||||||
|
esac
|
||||||
|
|
||||||
|
|
||||||
|
# optimizations
|
||||||
|
|
||||||
|
#NGX_GCC_OPT="-O2"
|
||||||
|
#NGX_GCC_OPT="-Os"
|
||||||
|
NGX_GCC_OPT="-O"
|
||||||
|
|
||||||
|
#CFLAGS="$CFLAGS -fomit-frame-pointer"
|
||||||
|
|
||||||
|
case $CPU in
|
||||||
|
pentium)
|
||||||
|
# optimize for Pentium and Athlon
|
||||||
|
CPU_OPT="-march=pentium"
|
||||||
|
NGX_CPU_CACHE_LINE=32
|
||||||
|
;;
|
||||||
|
|
||||||
|
pentiumpro | pentium3)
|
||||||
|
# optimize for Pentium Pro, Pentium II and Pentium III
|
||||||
|
CPU_OPT="-march=pentiumpro"
|
||||||
|
NGX_CPU_CACHE_LINE=32
|
||||||
|
;;
|
||||||
|
|
||||||
|
pentium4)
|
||||||
|
# optimize for Pentium 4, gcc 3.x
|
||||||
|
CPU_OPT="-march=pentium4"
|
||||||
|
NGX_CPU_CACHE_LINE=128
|
||||||
|
;;
|
||||||
|
|
||||||
|
athlon)
|
||||||
|
# optimize for Athlon, gcc 3.x
|
||||||
|
CPU_OPT="-march=athlon"
|
||||||
|
NGX_CPU_CACHE_LINE=64
|
||||||
|
;;
|
||||||
|
|
||||||
|
opteron)
|
||||||
|
# optimize for Opteron, gcc 3.x
|
||||||
|
CPU_OPT="-march=opteron"
|
||||||
|
NGX_CPU_CACHE_LINE=64
|
||||||
|
;;
|
||||||
|
|
||||||
|
sparc32)
|
||||||
|
# build 32-bit UltraSparc binary
|
||||||
|
CPU_OPT="-m32"
|
||||||
|
CORE_LINK="$CORE_LINK -m32"
|
||||||
|
NGX_CPU_CACHE_LINE=64
|
||||||
|
;;
|
||||||
|
|
||||||
|
sparc64)
|
||||||
|
# build 64-bit UltraSparc binary
|
||||||
|
CPU_OPT="-m64"
|
||||||
|
CORE_LINK="$CORE_LINK -m64"
|
||||||
|
NGX_CPU_CACHE_LINE=64
|
||||||
|
;;
|
||||||
|
|
||||||
|
ppc64)
|
||||||
|
# build 64-bit PowerPC binary
|
||||||
|
CPU_OPT="-m64"
|
||||||
|
CPU_OPT="$CPU_OPT -falign-functions=32 -falign-labels=32"
|
||||||
|
CPU_OPT="$CPU_OPT -falign-loops=32 -falign-jumps=32"
|
||||||
|
CORE_LINK="$CORE_LINK -m64"
|
||||||
|
NGX_CPU_CACHE_LINE=128
|
||||||
|
;;
|
||||||
|
|
||||||
|
esac
|
||||||
|
|
||||||
|
CC_AUX_FLAGS="$CC_AUX_FLAGS $CPU_OPT"
|
||||||
|
|
||||||
|
case "$NGX_GCC_VER" in
|
||||||
|
2.7*)
|
||||||
|
# batch build
|
||||||
|
CPU_OPT=
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
|
||||||
|
CFLAGS="$CFLAGS $PIPE $CPU_OPT"
|
||||||
|
|
||||||
|
if [ ".$PCRE_OPT" = "." ]; then
|
||||||
|
PCRE_OPT="-O2 -fomit-frame-pointer $PIPE $CPU_OPT"
|
||||||
|
else
|
||||||
|
PCRE_OPT="$PCRE_OPT $PIPE"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ".$ZLIB_OPT" = "." ]; then
|
||||||
|
ZLIB_OPT="-O2 -fomit-frame-pointer $PIPE $CPU_OPT"
|
||||||
|
else
|
||||||
|
ZLIB_OPT="$ZLIB_OPT $PIPE"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# warnings
|
||||||
|
|
||||||
|
# -W requires at least -O
|
||||||
|
CFLAGS="$CFLAGS ${NGX_GCC_OPT:--O} -W"
|
||||||
|
|
||||||
|
CFLAGS="$CFLAGS -Wall -Wpointer-arith"
|
||||||
|
#CFLAGS="$CFLAGS -Wconversion"
|
||||||
|
#CFLAGS="$CFLAGS -Winline"
|
||||||
|
#CFLAGS="$CFLAGS -Wmissing-prototypes"
|
||||||
|
|
||||||
|
case "$NGX_GCC_VER" in
|
||||||
|
2.*)
|
||||||
|
# we have a lot of the unused function arguments
|
||||||
|
CFLAGS="$CFLAGS -Wno-unused"
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
# we have a lot of the unused function arguments
|
||||||
|
CFLAGS="$CFLAGS -Wno-unused-parameter"
|
||||||
|
# 4.2.1 shows the warning in wrong places
|
||||||
|
#CFLAGS="$CFLAGS -Wunreachable-code"
|
||||||
|
|
||||||
|
# deprecated system OpenSSL library on OS X
|
||||||
|
if [ "$NGX_SYSTEM" = "Darwin" ]; then
|
||||||
|
CFLAGS="$CFLAGS -Wno-deprecated-declarations"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
|
||||||
|
# stop on warning
|
||||||
|
CFLAGS="$CFLAGS -Werror"
|
||||||
|
|
||||||
|
# debug
|
||||||
|
CFLAGS="$CFLAGS -g"
|
||||||
|
|
||||||
|
# DragonFly's gcc3 generates DWARF
|
||||||
|
#CFLAGS="$CFLAGS -g -gstabs"
|
||||||
|
|
||||||
|
if [ ".$CPP" = "." ]; then
|
||||||
|
CPP="$CC -E"
|
||||||
|
fi
|
||||||
+117
@@ -0,0 +1,117 @@
|
|||||||
|
|
||||||
|
# Copyright (C) Igor Sysoev
|
||||||
|
# Copyright (C) Nginx, Inc.
|
||||||
|
|
||||||
|
|
||||||
|
# Intel C++ compiler 7.1, 8.0, 8.1, 9.0, 11.1
|
||||||
|
|
||||||
|
NGX_ICC_VER=`$CC -V 2>&1 | grep 'Version' 2>&1 \
|
||||||
|
| sed -e 's/^.* Version \([^ ]*\) *Build.*$/\1/'`
|
||||||
|
|
||||||
|
echo " + icc version: $NGX_ICC_VER"
|
||||||
|
|
||||||
|
have=NGX_COMPILER value="\"Intel C Compiler $NGX_ICC_VER\"" . auto/define
|
||||||
|
|
||||||
|
|
||||||
|
# optimizations
|
||||||
|
|
||||||
|
CFLAGS="$CFLAGS -O"
|
||||||
|
|
||||||
|
CORE_LINK="$CORE_LINK -opt_report_file=$NGX_OBJS/opt_report_file"
|
||||||
|
|
||||||
|
|
||||||
|
case $CPU in
|
||||||
|
pentium)
|
||||||
|
# optimize for Pentium and Athlon
|
||||||
|
CPU_OPT="-march=pentium"
|
||||||
|
;;
|
||||||
|
|
||||||
|
pentiumpro)
|
||||||
|
# optimize for Pentium Pro, Pentium II and Pentium III
|
||||||
|
CPU_OPT="-mcpu=pentiumpro -march=pentiumpro"
|
||||||
|
;;
|
||||||
|
|
||||||
|
pentium4)
|
||||||
|
# optimize for Pentium 4, default
|
||||||
|
CPU_OPT="-march=pentium4"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
CFLAGS="$CFLAGS $CPU_OPT"
|
||||||
|
|
||||||
|
if [ ".$PCRE_OPT" = "." ]; then
|
||||||
|
PCRE_OPT="-O $CPU_OPT"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ".$ZLIB_OPT" = "." ]; then
|
||||||
|
ZLIB_OPT="-O $CPU_OPT"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# warnings
|
||||||
|
|
||||||
|
CFLAGS="$CFLAGS -w2"
|
||||||
|
|
||||||
|
# disable some warnings
|
||||||
|
|
||||||
|
# invalid type conversion: "int" to "char *"
|
||||||
|
CFLAGS="$CFLAGS -wd171"
|
||||||
|
# argument is incompatible with corresponding format string conversion
|
||||||
|
CFLAGS="$CFLAGS -wd181"
|
||||||
|
# zero used for undefined preprocessing identifier
|
||||||
|
CFLAGS="$CFLAGS -wd193"
|
||||||
|
# the format string ends before this argument
|
||||||
|
CFLAGS="$CFLAGS -wd268"
|
||||||
|
# invalid format string conversion
|
||||||
|
CFLAGS="$CFLAGS -wd269"
|
||||||
|
# conversion from "long long" to "size_t" may lose significant bits
|
||||||
|
CFLAGS="$CFLAGS -wd810"
|
||||||
|
# parameter was never referenced
|
||||||
|
CFLAGS="$CFLAGS -wd869"
|
||||||
|
# attribute "unused" is only allowed in a function definition, warning on pTHX_
|
||||||
|
CFLAGS="$CFLAGS -wd1301"
|
||||||
|
|
||||||
|
# STUB
|
||||||
|
# enumerated type mixed with another type
|
||||||
|
CFLAGS="$CFLAGS -wd188"
|
||||||
|
# controlling expression is constant
|
||||||
|
CFLAGS="$CFLAGS -wd279"
|
||||||
|
# operands are evaluated in unspecified order
|
||||||
|
CFLAGS="$CFLAGS -wd981"
|
||||||
|
# external definition with no prior declaration
|
||||||
|
CFLAGS="$CFLAGS -wd1418"
|
||||||
|
# external declaration in primary source file
|
||||||
|
CFLAGS="$CFLAGS -wd1419"
|
||||||
|
|
||||||
|
case "$NGX_ICC_VER" in
|
||||||
|
9.*)
|
||||||
|
# "cc" clobber ignored, warnings for Linux's htonl()/htons()
|
||||||
|
CFLAGS="$CFLAGS -wd1469"
|
||||||
|
# explicit conversion of a 64-bit integral type to a smaller
|
||||||
|
# integral type
|
||||||
|
CFLAGS="$CFLAGS -wd1683"
|
||||||
|
# conversion from pointer to same-sized integral type,
|
||||||
|
# warning on offsetof()
|
||||||
|
CFLAGS="$CFLAGS -wd1684"
|
||||||
|
# floating-point equality and inequality comparisons are unreliable,
|
||||||
|
# warning on SvTRUE()
|
||||||
|
CFLAGS="$CFLAGS -wd1572"
|
||||||
|
;;
|
||||||
|
|
||||||
|
8.*)
|
||||||
|
# "cc" clobber ignored, warnings for Linux's htonl()/htons()
|
||||||
|
CFLAGS="$CFLAGS -wd1469"
|
||||||
|
# floating-point equality and inequality comparisons are unreliable,
|
||||||
|
# warning on SvTRUE()
|
||||||
|
CFLAGS="$CFLAGS -wd1572"
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# stop on warning
|
||||||
|
CFLAGS="$CFLAGS -Werror"
|
||||||
|
|
||||||
|
# debug
|
||||||
|
CFLAGS="$CFLAGS -g"
|
||||||
+158
@@ -0,0 +1,158 @@
|
|||||||
|
|
||||||
|
# Copyright (C) Igor Sysoev
|
||||||
|
# Copyright (C) Nginx, Inc.
|
||||||
|
|
||||||
|
|
||||||
|
# MSVC 6.0 SP2 cl 12.00
|
||||||
|
# MSVC Toolkit 2003 (7.1) cl 13.10
|
||||||
|
# MSVC 2005 Express Edition SP1 (8.0) cl 14.00
|
||||||
|
# MSVC 2008 Express Edition (9.0) cl 15.00
|
||||||
|
# MSVC 2010 (10.0) cl 16.00
|
||||||
|
# MSVC 2015 (14.0) cl 19.00
|
||||||
|
|
||||||
|
|
||||||
|
NGX_MSVC_VER=`$NGX_WINE $CC 2>&1 | grep 'Compiler Version' 2>&1 \
|
||||||
|
| sed -e 's/^.* Version \(.*\)/\1/'`
|
||||||
|
|
||||||
|
echo " + cl version: $NGX_MSVC_VER"
|
||||||
|
|
||||||
|
have=NGX_COMPILER value="\"cl $NGX_MSVC_VER\"" . auto/define
|
||||||
|
|
||||||
|
|
||||||
|
ngx_msvc_ver=`echo $NGX_MSVC_VER | sed -e 's/^\([0-9]*\).*/\1/'`
|
||||||
|
|
||||||
|
|
||||||
|
# optimizations
|
||||||
|
|
||||||
|
# maximize speed, equivalent to -Og -Oi -Ot -Oy -Ob2 -Gs -GF -Gy
|
||||||
|
CFLAGS="$CFLAGS -O2"
|
||||||
|
|
||||||
|
# enable global optimization
|
||||||
|
#CFLAGS="$CFLAGS -Og"
|
||||||
|
# enable intrinsic functions
|
||||||
|
#CFLAGS="$CFLAGS -Oi"
|
||||||
|
|
||||||
|
# disable inline expansion
|
||||||
|
#CFLAGS="$CFLAGS -Ob0"
|
||||||
|
# explicit inline expansion
|
||||||
|
#CFLAGS="$CFLAGS -Ob1"
|
||||||
|
# explicit and implicit inline expansion
|
||||||
|
#CFLAGS="$CFLAGS -Ob2"
|
||||||
|
|
||||||
|
# enable frame pointer omission
|
||||||
|
#CFLAGS="$CFLAGS -Oy"
|
||||||
|
# disable stack checking calls
|
||||||
|
#CFLAGS="$CFLAGS -Gs"
|
||||||
|
|
||||||
|
# pools strings as read/write
|
||||||
|
#CFLAGS="$CFLAGS -Gf"
|
||||||
|
# pools strings as read-only
|
||||||
|
#CFLAGS="$CFLAGS -GF"
|
||||||
|
|
||||||
|
|
||||||
|
case $CPU in
|
||||||
|
pentium)
|
||||||
|
# optimize for Pentium and Athlon
|
||||||
|
CPU_OPT="-G5"
|
||||||
|
;;
|
||||||
|
|
||||||
|
pentiumpro)
|
||||||
|
# optimize for Pentium Pro, Pentium II and Pentium III
|
||||||
|
CPU_OPT="-G6"
|
||||||
|
;;
|
||||||
|
|
||||||
|
pentium4)
|
||||||
|
# optimize for Pentium 4, MSVC 7
|
||||||
|
CPU_OPT="-G7"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# __cdecl, default, must be used with OpenSSL, md5 asm, and sha1 asm
|
||||||
|
#CPU_OPT="$CPU_OPT -Gd"
|
||||||
|
# __stdcall
|
||||||
|
#CPU_OPT="$CPU_OPT -Gz"
|
||||||
|
# __fastcall
|
||||||
|
#CPU_OPT="$CPU_OPT -Gr"
|
||||||
|
|
||||||
|
|
||||||
|
CFLAGS="$CFLAGS $CPU_OPT"
|
||||||
|
|
||||||
|
|
||||||
|
# warnings
|
||||||
|
# CFLAGS="$CFLAGS -W4"
|
||||||
|
|
||||||
|
# stop on warning
|
||||||
|
# CFLAGS="$CFLAGS -WX"
|
||||||
|
|
||||||
|
CFLAGS="$CFLAGS -w"
|
||||||
|
|
||||||
|
# disable logo
|
||||||
|
CFLAGS="$CFLAGS -nologo"
|
||||||
|
|
||||||
|
# the link flags
|
||||||
|
CORE_LINK="$CORE_LINK -link -verbose:lib"
|
||||||
|
|
||||||
|
# link with libcmt.lib, multithreaded
|
||||||
|
LIBC="-MT"
|
||||||
|
# link with msvcrt.dll
|
||||||
|
# however, MSVC Toolkit 2003 has no MSVCRT.LIB
|
||||||
|
#LIBC="-MD"
|
||||||
|
|
||||||
|
CFLAGS="$CFLAGS $LIBC"
|
||||||
|
|
||||||
|
CORE_LIBS="$CORE_LIBS kernel32.lib user32.lib"
|
||||||
|
|
||||||
|
# Win32 GUI mode application
|
||||||
|
#CORE_LINK="$CORE_LINK -subsystem:windows -entry:mainCRTStartup"
|
||||||
|
|
||||||
|
# debug
|
||||||
|
# msvc under Wine issues
|
||||||
|
# C1902: Program database manager mismatch; please check your installation
|
||||||
|
if [ -z "$NGX_WINE" ]; then
|
||||||
|
CFLAGS="$CFLAGS -Zi"
|
||||||
|
CORE_LINK="$CORE_LINK -debug"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# MSVC 2005 supports C99 variadic macros
|
||||||
|
if [ "$ngx_msvc_ver" -ge 14 ]; then
|
||||||
|
have=NGX_HAVE_C99_VARIADIC_MACROS . auto/have
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# precompiled headers
|
||||||
|
CORE_DEPS="$CORE_DEPS $NGX_OBJS/ngx_config.pch"
|
||||||
|
CORE_LINK="$CORE_LINK $NGX_OBJS/ngx_pch.obj"
|
||||||
|
NGX_PCH="$NGX_OBJS/ngx_config.pch"
|
||||||
|
NGX_BUILD_PCH="-Ycngx_config.h -Fp$NGX_OBJS/ngx_config.pch"
|
||||||
|
#NGX_USE_PCH="-Yungx_config.h -Fp$NGX_OBJS/ngx_config.pch"
|
||||||
|
NGX_USE_PCH="-Fp$NGX_OBJS/ngx_config.pch"
|
||||||
|
|
||||||
|
|
||||||
|
# the resource file
|
||||||
|
NGX_RES="$NGX_OBJS/nginx.res"
|
||||||
|
NGX_RCC="rc -fo$NGX_RES \$(CORE_INCS) $NGX_WIN32_RC"
|
||||||
|
CORE_LINK="$NGX_RES $CORE_LINK"
|
||||||
|
|
||||||
|
|
||||||
|
# dynamic modules
|
||||||
|
#MAIN_LINK="-link -def:$NGX_OBJS/nginx.def"
|
||||||
|
#MODULE_LINK="-LD $NGX_OBJS/nginx.lib"
|
||||||
|
|
||||||
|
|
||||||
|
ngx_pic_opt=
|
||||||
|
ngx_objout="-Fo"
|
||||||
|
ngx_binout="-Fe"
|
||||||
|
ngx_objext="obj"
|
||||||
|
|
||||||
|
ngx_long_start='@<<
|
||||||
|
'
|
||||||
|
ngx_long_end='<<'
|
||||||
|
ngx_long_regex_cont=' \
|
||||||
|
'
|
||||||
|
ngx_long_cont='
|
||||||
|
'
|
||||||
|
|
||||||
|
# MSVC understand / in path
|
||||||
|
#ngx_regex_dirsep='\\'
|
||||||
|
#ngx_dirsep="\\"
|
||||||
@@ -0,0 +1,70 @@
|
|||||||
|
|
||||||
|
# Copyright (C) Igor Sysoev
|
||||||
|
# Copyright (C) Nginx, Inc.
|
||||||
|
|
||||||
|
|
||||||
|
if [ "$NGX_PLATFORM" != win32 ]; then
|
||||||
|
|
||||||
|
ngx_feature="C compiler"
|
||||||
|
ngx_feature_name=
|
||||||
|
ngx_feature_run=yes
|
||||||
|
ngx_feature_incs=
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs=
|
||||||
|
ngx_feature_test=
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
if [ $ngx_found = no ]; then
|
||||||
|
echo
|
||||||
|
echo $0: error: C compiler $CC is not found
|
||||||
|
echo
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
if [ "$CC" = cl ]; then
|
||||||
|
NGX_CC_NAME=msvc
|
||||||
|
echo " + using Microsoft Visual C++ compiler"
|
||||||
|
|
||||||
|
elif [ "$CC" = wcl386 ]; then
|
||||||
|
NGX_CC_NAME=owc
|
||||||
|
echo " + using Open Watcom C compiler"
|
||||||
|
|
||||||
|
elif [ "$CC" = bcc32 ]; then
|
||||||
|
NGX_CC_NAME=bcc
|
||||||
|
echo " + using Borland C++ compiler"
|
||||||
|
|
||||||
|
elif `$CC -V 2>&1 | grep '^Intel(R) C' >/dev/null 2>&1`; then
|
||||||
|
NGX_CC_NAME=icc
|
||||||
|
echo " + using Intel C++ compiler"
|
||||||
|
|
||||||
|
elif `$CC -v 2>&1 | grep 'gcc version' >/dev/null 2>&1`; then
|
||||||
|
NGX_CC_NAME=gcc
|
||||||
|
echo " + using GNU C compiler"
|
||||||
|
|
||||||
|
elif `$CC -v 2>&1 | grep 'clang version' >/dev/null 2>&1`; then
|
||||||
|
NGX_CC_NAME=clang
|
||||||
|
echo " + using Clang C compiler"
|
||||||
|
|
||||||
|
elif `$CC -v 2>&1 | grep 'LLVM version' >/dev/null 2>&1`; then
|
||||||
|
NGX_CC_NAME=clang
|
||||||
|
echo " + using Clang C compiler"
|
||||||
|
|
||||||
|
elif `$CC -V 2>&1 | grep 'Sun C' >/dev/null 2>&1`; then
|
||||||
|
NGX_CC_NAME=sunc
|
||||||
|
echo " + using Sun C compiler"
|
||||||
|
|
||||||
|
elif `$CC -V 2>&1 | grep '^Compaq C' >/dev/null 2>&1`; then
|
||||||
|
NGX_CC_NAME=ccc
|
||||||
|
echo " + using Compaq C compiler"
|
||||||
|
|
||||||
|
elif `$CC -V 2>&1 | grep '^aCC: ' >/dev/null 2>&1`; then
|
||||||
|
NGX_CC_NAME=acc
|
||||||
|
echo " + using HP aC++ compiler"
|
||||||
|
|
||||||
|
else
|
||||||
|
NGX_CC_NAME=unknown
|
||||||
|
|
||||||
|
fi
|
||||||
+103
@@ -0,0 +1,103 @@
|
|||||||
|
|
||||||
|
# Copyright (C) Igor Sysoev
|
||||||
|
# Copyright (C) Nginx, Inc.
|
||||||
|
|
||||||
|
|
||||||
|
# Open Watcom C 1.0, 1.2, 1.3
|
||||||
|
|
||||||
|
# optimizations
|
||||||
|
|
||||||
|
# maximize speed
|
||||||
|
CFLAGS="$CFLAGS -ot"
|
||||||
|
# reorder instructions for best pipeline usage
|
||||||
|
CFLAGS="$CFLAGS -op"
|
||||||
|
# inline intrinsic functions
|
||||||
|
CFLAGS="$CFLAGS -oi"
|
||||||
|
# inline expansion
|
||||||
|
CFLAGS="$CFLAGS -oe"
|
||||||
|
# disable stack checking calls
|
||||||
|
CFLAGS="$CFLAGS -s"
|
||||||
|
|
||||||
|
case $CPU in
|
||||||
|
pentium)
|
||||||
|
# optimize for Pentium and Athlon
|
||||||
|
# register-based arguments passing conventions
|
||||||
|
CPU_OPT="-5r"
|
||||||
|
# stack-based arguments passing conventions
|
||||||
|
#CPU_OPT="-5s"
|
||||||
|
;;
|
||||||
|
|
||||||
|
pentiumpro)
|
||||||
|
# optimize for Pentium Pro, Pentium II and Pentium III
|
||||||
|
# register-based arguments passing conventions
|
||||||
|
CPU_OPT="-6r"
|
||||||
|
# stack-based arguments passing conventions
|
||||||
|
#CPU_OPT="-6s"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
CFLAGS="$CFLAGS $CPU_OPT"
|
||||||
|
|
||||||
|
|
||||||
|
# warnings
|
||||||
|
|
||||||
|
# maximum level
|
||||||
|
CFLAGS="$CFLAGS -wx"
|
||||||
|
#CFLAGS="$CFLAGS -w3"
|
||||||
|
|
||||||
|
# stop on warning
|
||||||
|
CFLAGS="$CFLAGS -we"
|
||||||
|
|
||||||
|
# built target is NT
|
||||||
|
CFLAGS="$CFLAGS -bt=nt"
|
||||||
|
|
||||||
|
# multithreaded
|
||||||
|
CFLAGS="$CFLAGS -bm"
|
||||||
|
|
||||||
|
# debug
|
||||||
|
CFLAGS="$CFLAGS -d2"
|
||||||
|
|
||||||
|
# quiet
|
||||||
|
CFLAGS="$CFLAGS -zq"
|
||||||
|
|
||||||
|
# Open Watcom C 1.2
|
||||||
|
have=NGX_HAVE_C99_VARIADIC_MACROS . auto/have
|
||||||
|
|
||||||
|
|
||||||
|
# the precompiled headers
|
||||||
|
#CORE_DEPS="$CORE_DEPS $NGX_OBJS/ngx_config.pch"
|
||||||
|
#NGX_PCH="$NGX_OBJS/ngx_config.pch"
|
||||||
|
#NGX_BUILD_PCH="-fhq=$NGX_OBJS/ngx_config.pch"
|
||||||
|
#NGX_USE_PCH="-fh=$NGX_OBJS/ngx_config.pch"
|
||||||
|
|
||||||
|
|
||||||
|
# the link flags, built target is NT GUI mode application
|
||||||
|
#CORE_LINK="$CORE_LINK -l=nt_win"
|
||||||
|
|
||||||
|
|
||||||
|
# the resource file
|
||||||
|
NGX_RCC="wrc \$(CORE_INCS) -fo=$NGX_OBJS/nginx.res "
|
||||||
|
NGX_RCC="$NGX_RCC $NGX_WIN32_RC $NGX_OBJS/nginx.exe"
|
||||||
|
|
||||||
|
|
||||||
|
ngx_include_opt="-i="
|
||||||
|
ngx_objout="-fo"
|
||||||
|
ngx_binout="-fe="
|
||||||
|
ngx_objext="obj"
|
||||||
|
|
||||||
|
ngx_regex_dirsep='\\'
|
||||||
|
ngx_dirsep="\\"
|
||||||
|
|
||||||
|
ngx_long_start=' '
|
||||||
|
ngx_long_end=' '
|
||||||
|
ngx_long_regex_cont=' \&\
|
||||||
|
'
|
||||||
|
ngx_long_cont=' &
|
||||||
|
'
|
||||||
|
|
||||||
|
ngx_regex_cont=' \&\
|
||||||
|
'
|
||||||
|
ngx_cont=' &
|
||||||
|
'
|
||||||
|
ngx_tab=' &
|
||||||
|
'
|
||||||
+163
@@ -0,0 +1,163 @@
|
|||||||
|
|
||||||
|
# Copyright (C) Igor Sysoev
|
||||||
|
# Copyright (C) Nginx, Inc.
|
||||||
|
|
||||||
|
|
||||||
|
# Sun C 5.7 Patch 117837-04 2005/05/11 Sun Studio 10
|
||||||
|
# Sun C 5.8 2005/10/13 Sun Studio 11
|
||||||
|
# Sun C 5.9 SunOS_i386 2007/05/03 Sun Studio 12
|
||||||
|
# Sun C 5.9 SunOS_sparc 2007/05/03
|
||||||
|
# Sun C 5.10 SunOS_i386 2009/06/03 Sun Studio 12.1
|
||||||
|
# Sun C 5.11 SunOS_i386 2010/08/13 Oracle Solaris Studio 12.2
|
||||||
|
# Sun C 5.12 SunOS_i386 2011/11/16 Oracle Solaris Studio 12.3
|
||||||
|
# Sun C 5.13 SunOS_i386 2014/10/20 Oracle Solaris Studio 12.4
|
||||||
|
# Sun C 5.14 SunOS_i386 2016/05/31 Oracle Developer Studio 12.5
|
||||||
|
|
||||||
|
NGX_SUNC_VER=`$CC -V 2>&1 | grep 'Sun C' 2>&1 \
|
||||||
|
| sed -e 's/^.* Sun C \(.*\)/\1/'`
|
||||||
|
|
||||||
|
echo " + Sun C version: $NGX_SUNC_VER"
|
||||||
|
|
||||||
|
have=NGX_COMPILER value="\"Sun C $NGX_SUNC_VER\"" . auto/define
|
||||||
|
|
||||||
|
|
||||||
|
cat << END > $NGX_AUTOTEST.c
|
||||||
|
|
||||||
|
int main(void) {
|
||||||
|
printf("%d", __SUNPRO_C);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
END
|
||||||
|
|
||||||
|
eval "$CC -o $NGX_AUTOTEST $NGX_AUTOTEST.c >> $NGX_ERR 2>&1"
|
||||||
|
|
||||||
|
if [ -x $NGX_AUTOTEST ]; then
|
||||||
|
ngx_sunc_ver=`$NGX_AUTOTEST`
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -rf $NGX_AUTOTEST*
|
||||||
|
|
||||||
|
# 1424 == 0x590, Sun Studio 12
|
||||||
|
|
||||||
|
if [ "$ngx_sunc_ver" -ge 1424 ]; then
|
||||||
|
ngx_sparc32="-m32"
|
||||||
|
ngx_sparc64="-m64"
|
||||||
|
ngx_amd64="-m64"
|
||||||
|
|
||||||
|
else
|
||||||
|
ngx_sparc32="-xarch=v8plus"
|
||||||
|
ngx_sparc64="-xarch=v9"
|
||||||
|
ngx_amd64="-xarch=amd64"
|
||||||
|
fi
|
||||||
|
|
||||||
|
case "$NGX_MACHINE" in
|
||||||
|
|
||||||
|
i86pc)
|
||||||
|
NGX_AUX=" src/os/unix/ngx_sunpro_x86.il"
|
||||||
|
;;
|
||||||
|
|
||||||
|
sun4u | sun4v)
|
||||||
|
NGX_AUX=" src/os/unix/ngx_sunpro_sparc64.il"
|
||||||
|
;;
|
||||||
|
|
||||||
|
esac
|
||||||
|
|
||||||
|
MAIN_LINK=
|
||||||
|
MODULE_LINK="-G"
|
||||||
|
|
||||||
|
|
||||||
|
# optimizations
|
||||||
|
|
||||||
|
# 20736 == 0x5100, Sun Studio 12.1
|
||||||
|
|
||||||
|
if [ "$ngx_sunc_ver" -ge 20736 ]; then
|
||||||
|
ngx_fast="-fast"
|
||||||
|
|
||||||
|
else
|
||||||
|
# older versions had problems with bit-fields
|
||||||
|
ngx_fast="-fast -xalias_level=any"
|
||||||
|
fi
|
||||||
|
|
||||||
|
IPO=-xipo
|
||||||
|
CFLAGS="$CFLAGS $ngx_fast $IPO"
|
||||||
|
CORE_LINK="$CORE_LINK $ngx_fast $IPO"
|
||||||
|
|
||||||
|
|
||||||
|
case $CPU in
|
||||||
|
pentium)
|
||||||
|
# optimize for Pentium and Athlon
|
||||||
|
CPU_OPT="-xchip=pentium"
|
||||||
|
;;
|
||||||
|
|
||||||
|
pentiumpro)
|
||||||
|
# optimize for Pentium Pro, Pentium II
|
||||||
|
CPU_OPT="-xchip=pentium_pro"
|
||||||
|
;;
|
||||||
|
|
||||||
|
pentium3)
|
||||||
|
# optimize for Pentium III
|
||||||
|
CPU_OPT="-xchip=pentium3"
|
||||||
|
#CPU_OPT="$CPU_OPT -xarch=sse"
|
||||||
|
CPU_OPT="$CPU_OPT -xcache=16/32/4:256/32/4"
|
||||||
|
;;
|
||||||
|
|
||||||
|
pentium4)
|
||||||
|
# optimize for Pentium 4
|
||||||
|
CPU_OPT="-xchip=pentium4"
|
||||||
|
#CPU_OPT="$CPU_OPT -xarch=sse2"
|
||||||
|
CPU_OPT="$CPU_OPT -xcache=8/64/4:256/128/8"
|
||||||
|
;;
|
||||||
|
|
||||||
|
opteron)
|
||||||
|
# optimize for Opteron
|
||||||
|
CPU_OPT="-xchip=opteron"
|
||||||
|
#CPU_OPT="$CPU_OPT -xarch=sse2"
|
||||||
|
CPU_OPT="$CPU_OPT -xcache=64/64/2:1024/64/16"
|
||||||
|
;;
|
||||||
|
|
||||||
|
sparc32)
|
||||||
|
# build 32-bit UltraSparc binary
|
||||||
|
CPU_OPT="$ngx_sparc32"
|
||||||
|
CORE_LINK="$CORE_LINK $ngx_sparc32"
|
||||||
|
CC_AUX_FLAGS="$CC_AUX_FLAGS $ngx_sparc32"
|
||||||
|
NGX_CPU_CACHE_LINE=64
|
||||||
|
;;
|
||||||
|
|
||||||
|
sparc64)
|
||||||
|
# build 64-bit UltraSparc binary
|
||||||
|
CPU_OPT="$ngx_sparc64"
|
||||||
|
CORE_LINK="$CORE_LINK $ngx_sparc64"
|
||||||
|
CC_AUX_FLAGS="$CC_AUX_FLAGS $ngx_sparc64"
|
||||||
|
NGX_CPU_CACHE_LINE=64
|
||||||
|
;;
|
||||||
|
|
||||||
|
amd64)
|
||||||
|
# build 64-bit amd64 binary
|
||||||
|
CPU_OPT="$ngx_amd64"
|
||||||
|
CORE_LINK="$CORE_LINK $ngx_amd64"
|
||||||
|
CC_AUX_FLAGS="$CC_AUX_FLAGS $ngx_amd64"
|
||||||
|
NGX_AUX=" src/os/unix/ngx_sunpro_amd64.il"
|
||||||
|
NGX_CPU_CACHE_LINE=64
|
||||||
|
;;
|
||||||
|
|
||||||
|
esac
|
||||||
|
|
||||||
|
|
||||||
|
CFLAGS="$CFLAGS $CPU_OPT"
|
||||||
|
|
||||||
|
|
||||||
|
if [ ".$PCRE_OPT" = "." ]; then
|
||||||
|
PCRE_OPT="$ngx_fast $IPO $CPU_OPT"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ".$ZLIB_OPT" = "." ]; then
|
||||||
|
ZLIB_OPT="$ngx_fast $IPO $CPU_OPT"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# stop on warning
|
||||||
|
CFLAGS="$CFLAGS -errwarn=%all"
|
||||||
|
|
||||||
|
# debug
|
||||||
|
CFLAGS="$CFLAGS -g"
|
||||||
+116
@@ -0,0 +1,116 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# Copyright (C) Igor Sysoev
|
||||||
|
# Copyright (C) Nginx, Inc.
|
||||||
|
|
||||||
|
|
||||||
|
LC_ALL=C
|
||||||
|
export LC_ALL
|
||||||
|
|
||||||
|
. auto/options
|
||||||
|
. auto/init
|
||||||
|
. auto/sources
|
||||||
|
|
||||||
|
test -d $NGX_OBJS || mkdir -p $NGX_OBJS
|
||||||
|
|
||||||
|
echo > $NGX_AUTO_HEADERS_H
|
||||||
|
echo > $NGX_AUTOCONF_ERR
|
||||||
|
|
||||||
|
echo "#define NGX_CONFIGURE \"$NGX_CONFIGURE\"" > $NGX_AUTO_CONFIG_H
|
||||||
|
|
||||||
|
|
||||||
|
if [ $NGX_DEBUG = YES ]; then
|
||||||
|
have=NGX_DEBUG . auto/have
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
if test -z "$NGX_PLATFORM"; then
|
||||||
|
echo "checking for OS"
|
||||||
|
|
||||||
|
NGX_SYSTEM=`uname -s 2>/dev/null`
|
||||||
|
NGX_RELEASE=`uname -r 2>/dev/null`
|
||||||
|
NGX_MACHINE=`uname -m 2>/dev/null`
|
||||||
|
|
||||||
|
echo " + $NGX_SYSTEM $NGX_RELEASE $NGX_MACHINE"
|
||||||
|
|
||||||
|
NGX_PLATFORM="$NGX_SYSTEM:$NGX_RELEASE:$NGX_MACHINE";
|
||||||
|
|
||||||
|
case "$NGX_SYSTEM" in
|
||||||
|
MINGW32_* | MINGW64_* | MSYS_*)
|
||||||
|
NGX_PLATFORM=win32
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
else
|
||||||
|
echo "building for $NGX_PLATFORM"
|
||||||
|
NGX_SYSTEM=$NGX_PLATFORM
|
||||||
|
fi
|
||||||
|
|
||||||
|
. auto/cc/conf
|
||||||
|
|
||||||
|
if [ "$NGX_PLATFORM" != win32 ]; then
|
||||||
|
. auto/headers
|
||||||
|
fi
|
||||||
|
|
||||||
|
. auto/os/conf
|
||||||
|
|
||||||
|
if [ "$NGX_PLATFORM" != win32 ]; then
|
||||||
|
. auto/unix
|
||||||
|
fi
|
||||||
|
|
||||||
|
. auto/threads
|
||||||
|
. auto/modules
|
||||||
|
. auto/lib/conf
|
||||||
|
|
||||||
|
case ".$NGX_PREFIX" in
|
||||||
|
.)
|
||||||
|
NGX_PREFIX=${NGX_PREFIX:-/usr/local/nginx}
|
||||||
|
have=NGX_PREFIX value="\"$NGX_PREFIX/\"" . auto/define
|
||||||
|
;;
|
||||||
|
|
||||||
|
.!)
|
||||||
|
NGX_PREFIX=
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
have=NGX_PREFIX value="\"$NGX_PREFIX/\"" . auto/define
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if [ ".$NGX_CONF_PREFIX" != "." ]; then
|
||||||
|
have=NGX_CONF_PREFIX value="\"$NGX_CONF_PREFIX/\"" . auto/define
|
||||||
|
fi
|
||||||
|
|
||||||
|
have=NGX_SBIN_PATH value="\"$NGX_SBIN_PATH\"" . auto/define
|
||||||
|
have=NGX_CONF_PATH value="\"$NGX_CONF_PATH\"" . auto/define
|
||||||
|
have=NGX_PID_PATH value="\"$NGX_PID_PATH\"" . auto/define
|
||||||
|
have=NGX_LOCK_PATH value="\"$NGX_LOCK_PATH\"" . auto/define
|
||||||
|
have=NGX_ERROR_LOG_PATH value="\"$NGX_ERROR_LOG_PATH\"" . auto/define
|
||||||
|
|
||||||
|
have=NGX_HTTP_LOG_PATH value="\"$NGX_HTTP_LOG_PATH\"" . auto/define
|
||||||
|
have=NGX_HTTP_CLIENT_TEMP_PATH value="\"$NGX_HTTP_CLIENT_TEMP_PATH\""
|
||||||
|
. auto/define
|
||||||
|
have=NGX_HTTP_PROXY_TEMP_PATH value="\"$NGX_HTTP_PROXY_TEMP_PATH\""
|
||||||
|
. auto/define
|
||||||
|
have=NGX_HTTP_FASTCGI_TEMP_PATH value="\"$NGX_HTTP_FASTCGI_TEMP_PATH\""
|
||||||
|
. auto/define
|
||||||
|
have=NGX_HTTP_UWSGI_TEMP_PATH value="\"$NGX_HTTP_UWSGI_TEMP_PATH\""
|
||||||
|
. auto/define
|
||||||
|
have=NGX_HTTP_SCGI_TEMP_PATH value="\"$NGX_HTTP_SCGI_TEMP_PATH\""
|
||||||
|
. auto/define
|
||||||
|
|
||||||
|
. auto/make
|
||||||
|
. auto/lib/make
|
||||||
|
. auto/install
|
||||||
|
|
||||||
|
# STUB
|
||||||
|
. auto/stubs
|
||||||
|
|
||||||
|
have=NGX_USER value="\"$NGX_USER\"" . auto/define
|
||||||
|
have=NGX_GROUP value="\"$NGX_GROUP\"" . auto/define
|
||||||
|
|
||||||
|
if [ ".$NGX_BUILD" != "." ]; then
|
||||||
|
have=NGX_BUILD value="\"$NGX_BUILD\"" . auto/define
|
||||||
|
fi
|
||||||
|
|
||||||
|
. auto/summary
|
||||||
+12
@@ -0,0 +1,12 @@
|
|||||||
|
|
||||||
|
# Copyright (C) Igor Sysoev
|
||||||
|
# Copyright (C) Nginx, Inc.
|
||||||
|
|
||||||
|
|
||||||
|
cat << END >> $NGX_AUTO_CONFIG_H
|
||||||
|
|
||||||
|
#ifndef $have
|
||||||
|
#define $have $value
|
||||||
|
#endif
|
||||||
|
|
||||||
|
END
|
||||||
@@ -0,0 +1,50 @@
|
|||||||
|
|
||||||
|
# Copyright (C) Igor Sysoev
|
||||||
|
# Copyright (C) Nginx, Inc.
|
||||||
|
|
||||||
|
|
||||||
|
echo $ngx_n "checking for system byte ordering ...$ngx_c"
|
||||||
|
|
||||||
|
cat << END >> $NGX_AUTOCONF_ERR
|
||||||
|
|
||||||
|
----------------------------------------
|
||||||
|
checking for system byte ordering
|
||||||
|
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
cat << END > $NGX_AUTOTEST.c
|
||||||
|
|
||||||
|
int main(void) {
|
||||||
|
int i = 0x11223344;
|
||||||
|
char *p;
|
||||||
|
|
||||||
|
p = (char *) &i;
|
||||||
|
if (*p == 0x44) return 0;
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
END
|
||||||
|
|
||||||
|
ngx_test="$CC $CC_TEST_FLAGS $CC_AUX_FLAGS \
|
||||||
|
-o $NGX_AUTOTEST $NGX_AUTOTEST.c $NGX_LD_OPT $ngx_feature_libs"
|
||||||
|
|
||||||
|
eval "$ngx_test >> $NGX_AUTOCONF_ERR 2>&1"
|
||||||
|
|
||||||
|
if [ -x $NGX_AUTOTEST ]; then
|
||||||
|
if $NGX_AUTOTEST >/dev/null 2>&1; then
|
||||||
|
echo " little endian"
|
||||||
|
have=NGX_HAVE_LITTLE_ENDIAN . auto/have
|
||||||
|
else
|
||||||
|
echo " big endian"
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -rf $NGX_AUTOTEST*
|
||||||
|
|
||||||
|
else
|
||||||
|
rm -rf $NGX_AUTOTEST*
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo "$0: error: cannot detect system byte ordering"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
+123
@@ -0,0 +1,123 @@
|
|||||||
|
|
||||||
|
# Copyright (C) Igor Sysoev
|
||||||
|
# Copyright (C) Nginx, Inc.
|
||||||
|
|
||||||
|
|
||||||
|
echo $ngx_n "checking for $ngx_feature ...$ngx_c"
|
||||||
|
|
||||||
|
cat << END >> $NGX_AUTOCONF_ERR
|
||||||
|
|
||||||
|
----------------------------------------
|
||||||
|
checking for $ngx_feature
|
||||||
|
|
||||||
|
END
|
||||||
|
|
||||||
|
ngx_found=no
|
||||||
|
|
||||||
|
if test -n "$ngx_feature_name"; then
|
||||||
|
ngx_have_feature=`echo $ngx_feature_name \
|
||||||
|
| tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ`
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test -n "$ngx_feature_path"; then
|
||||||
|
for ngx_temp in $ngx_feature_path; do
|
||||||
|
ngx_feature_inc_path="$ngx_feature_inc_path -I $ngx_temp"
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
cat << END > $NGX_AUTOTEST.c
|
||||||
|
|
||||||
|
#include <sys/types.h>
|
||||||
|
$NGX_INCLUDE_UNISTD_H
|
||||||
|
$ngx_feature_incs
|
||||||
|
|
||||||
|
int main(void) {
|
||||||
|
$ngx_feature_test;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
ngx_test="$CC $CC_TEST_FLAGS $CC_AUX_FLAGS $ngx_feature_inc_path \
|
||||||
|
-o $NGX_AUTOTEST $NGX_AUTOTEST.c $NGX_TEST_LD_OPT $ngx_feature_libs"
|
||||||
|
|
||||||
|
ngx_feature_inc_path=
|
||||||
|
|
||||||
|
eval "/bin/sh -c \"$ngx_test\" >> $NGX_AUTOCONF_ERR 2>&1"
|
||||||
|
|
||||||
|
|
||||||
|
if [ -x $NGX_AUTOTEST ]; then
|
||||||
|
|
||||||
|
case "$ngx_feature_run" in
|
||||||
|
|
||||||
|
yes)
|
||||||
|
# /bin/sh is used to intercept "Killed" or "Abort trap" messages
|
||||||
|
if /bin/sh -c $NGX_AUTOTEST >> $NGX_AUTOCONF_ERR 2>&1; then
|
||||||
|
echo " found"
|
||||||
|
ngx_found=yes
|
||||||
|
|
||||||
|
if test -n "$ngx_feature_name"; then
|
||||||
|
have=$ngx_have_feature . auto/have
|
||||||
|
fi
|
||||||
|
|
||||||
|
else
|
||||||
|
echo " found but is not working"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
|
||||||
|
value)
|
||||||
|
# /bin/sh is used to intercept "Killed" or "Abort trap" messages
|
||||||
|
if /bin/sh -c $NGX_AUTOTEST >> $NGX_AUTOCONF_ERR 2>&1; then
|
||||||
|
echo " found"
|
||||||
|
ngx_found=yes
|
||||||
|
|
||||||
|
cat << END >> $NGX_AUTO_CONFIG_H
|
||||||
|
|
||||||
|
#ifndef $ngx_feature_name
|
||||||
|
#define $ngx_feature_name `$NGX_AUTOTEST`
|
||||||
|
#endif
|
||||||
|
|
||||||
|
END
|
||||||
|
else
|
||||||
|
echo " found but is not working"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
|
||||||
|
bug)
|
||||||
|
# /bin/sh is used to intercept "Killed" or "Abort trap" messages
|
||||||
|
if /bin/sh -c $NGX_AUTOTEST >> $NGX_AUTOCONF_ERR 2>&1; then
|
||||||
|
echo " not found"
|
||||||
|
|
||||||
|
else
|
||||||
|
echo " found"
|
||||||
|
ngx_found=yes
|
||||||
|
|
||||||
|
if test -n "$ngx_feature_name"; then
|
||||||
|
have=$ngx_have_feature . auto/have
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
echo " found"
|
||||||
|
ngx_found=yes
|
||||||
|
|
||||||
|
if test -n "$ngx_feature_name"; then
|
||||||
|
have=$ngx_have_feature . auto/have
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
|
||||||
|
esac
|
||||||
|
|
||||||
|
else
|
||||||
|
echo " not found"
|
||||||
|
|
||||||
|
echo "----------" >> $NGX_AUTOCONF_ERR
|
||||||
|
cat $NGX_AUTOTEST.c >> $NGX_AUTOCONF_ERR
|
||||||
|
echo "----------" >> $NGX_AUTOCONF_ERR
|
||||||
|
echo $ngx_test >> $NGX_AUTOCONF_ERR
|
||||||
|
echo "----------" >> $NGX_AUTOCONF_ERR
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -rf $NGX_AUTOTEST*
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
|
||||||
|
# Copyright (C) Igor Sysoev
|
||||||
|
# Copyright (C) Nginx, Inc.
|
||||||
|
|
||||||
|
|
||||||
|
cat << END >> $NGX_AUTO_CONFIG_H
|
||||||
|
|
||||||
|
#ifndef $have
|
||||||
|
#define $have 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
END
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
|
||||||
|
# Copyright (C) Igor Sysoev
|
||||||
|
# Copyright (C) Nginx, Inc.
|
||||||
|
|
||||||
|
|
||||||
|
cat << END >> $NGX_AUTO_HEADERS_H
|
||||||
|
|
||||||
|
#ifndef $have
|
||||||
|
#define $have 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
END
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
|
||||||
|
# Copyright (C) Igor Sysoev
|
||||||
|
# Copyright (C) Nginx, Inc.
|
||||||
|
|
||||||
|
|
||||||
|
ngx_include="unistd.h"; . auto/include
|
||||||
|
ngx_include="inttypes.h"; . auto/include
|
||||||
|
ngx_include="limits.h"; . auto/include
|
||||||
|
ngx_include="sys/filio.h"; . auto/include
|
||||||
|
ngx_include="sys/param.h"; . auto/include
|
||||||
|
ngx_include="sys/mount.h"; . auto/include
|
||||||
|
ngx_include="sys/statvfs.h"; . auto/include
|
||||||
|
ngx_include="crypt.h"; . auto/include
|
||||||
@@ -0,0 +1,58 @@
|
|||||||
|
|
||||||
|
# Copyright (C) Igor Sysoev
|
||||||
|
# Copyright (C) Nginx, Inc.
|
||||||
|
|
||||||
|
|
||||||
|
echo $ngx_n "checking for $ngx_include ...$ngx_c"
|
||||||
|
|
||||||
|
cat << END >> $NGX_AUTOCONF_ERR
|
||||||
|
|
||||||
|
----------------------------------------
|
||||||
|
checking for $ngx_include
|
||||||
|
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
ngx_found=no
|
||||||
|
|
||||||
|
cat << END > $NGX_AUTOTEST.c
|
||||||
|
|
||||||
|
$NGX_INCLUDE_SYS_PARAM_H
|
||||||
|
#include <$ngx_include>
|
||||||
|
|
||||||
|
int main(void) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
ngx_test="$CC -o $NGX_AUTOTEST $NGX_AUTOTEST.c"
|
||||||
|
|
||||||
|
eval "$ngx_test >> $NGX_AUTOCONF_ERR 2>&1"
|
||||||
|
|
||||||
|
if [ -x $NGX_AUTOTEST ]; then
|
||||||
|
|
||||||
|
ngx_found=yes
|
||||||
|
|
||||||
|
echo " found"
|
||||||
|
|
||||||
|
ngx_name=`echo $ngx_include \
|
||||||
|
| tr abcdefghijklmnopqrstuvwxyz/. ABCDEFGHIJKLMNOPQRSTUVWXYZ__`
|
||||||
|
|
||||||
|
|
||||||
|
have=NGX_HAVE_$ngx_name . auto/have_headers
|
||||||
|
|
||||||
|
eval "NGX_INCLUDE_$ngx_name='#include <$ngx_include>'"
|
||||||
|
|
||||||
|
else
|
||||||
|
echo " not found"
|
||||||
|
|
||||||
|
echo "----------" >> $NGX_AUTOCONF_ERR
|
||||||
|
cat $NGX_AUTOTEST.c >> $NGX_AUTOCONF_ERR
|
||||||
|
echo "----------" >> $NGX_AUTOCONF_ERR
|
||||||
|
echo $ngx_test >> $NGX_AUTOCONF_ERR
|
||||||
|
echo "----------" >> $NGX_AUTOCONF_ERR
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -rf $NGX_AUTOTEST*
|
||||||
@@ -0,0 +1,51 @@
|
|||||||
|
|
||||||
|
# Copyright (C) Igor Sysoev
|
||||||
|
# Copyright (C) Nginx, Inc.
|
||||||
|
|
||||||
|
|
||||||
|
NGX_MAKEFILE=$NGX_OBJS/Makefile
|
||||||
|
NGX_MODULES_C=$NGX_OBJS/ngx_modules.c
|
||||||
|
|
||||||
|
NGX_AUTO_HEADERS_H=$NGX_OBJS/ngx_auto_headers.h
|
||||||
|
NGX_AUTO_CONFIG_H=$NGX_OBJS/ngx_auto_config.h
|
||||||
|
|
||||||
|
NGX_AUTOTEST=$NGX_OBJS/autotest
|
||||||
|
NGX_AUTOCONF_ERR=$NGX_OBJS/autoconf.err
|
||||||
|
|
||||||
|
# STUBs
|
||||||
|
NGX_ERR=$NGX_OBJS/autoconf.err
|
||||||
|
MAKEFILE=$NGX_OBJS/Makefile
|
||||||
|
|
||||||
|
|
||||||
|
NGX_PCH=
|
||||||
|
NGX_USE_PCH=
|
||||||
|
|
||||||
|
|
||||||
|
# check the echo's "-n" option and "\c" capability
|
||||||
|
|
||||||
|
if echo "test\c" | grep c >/dev/null; then
|
||||||
|
|
||||||
|
if echo -n test | grep n >/dev/null; then
|
||||||
|
ngx_n=
|
||||||
|
ngx_c=
|
||||||
|
|
||||||
|
else
|
||||||
|
ngx_n=-n
|
||||||
|
ngx_c=
|
||||||
|
fi
|
||||||
|
|
||||||
|
else
|
||||||
|
ngx_n=
|
||||||
|
ngx_c='\c'
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# create Makefile
|
||||||
|
|
||||||
|
cat << END > Makefile
|
||||||
|
|
||||||
|
default: build
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -rf Makefile $NGX_OBJS
|
||||||
|
END
|
||||||
+218
@@ -0,0 +1,218 @@
|
|||||||
|
|
||||||
|
# Copyright (C) Igor Sysoev
|
||||||
|
# Copyright (C) Nginx, Inc.
|
||||||
|
|
||||||
|
|
||||||
|
if [ $USE_PERL != NO ]; then
|
||||||
|
|
||||||
|
cat << END >> $NGX_MAKEFILE
|
||||||
|
|
||||||
|
install_perl_modules:
|
||||||
|
cd $NGX_OBJS/src/http/modules/perl && \$(MAKE) install
|
||||||
|
END
|
||||||
|
|
||||||
|
NGX_INSTALL_PERL_MODULES=install_perl_modules
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
case ".$NGX_SBIN_PATH" in
|
||||||
|
./*)
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
NGX_SBIN_PATH=$NGX_PREFIX/$NGX_SBIN_PATH
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
|
||||||
|
case ".$NGX_MODULES_PATH" in
|
||||||
|
./*)
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
NGX_MODULES_PATH=$NGX_PREFIX/$NGX_MODULES_PATH
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
NGX_MODULES_PATH=`dirname $NGX_MODULES_PATH/.`
|
||||||
|
|
||||||
|
|
||||||
|
case ".$NGX_CONF_PATH" in
|
||||||
|
./*)
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
NGX_CONF_PATH=$NGX_PREFIX/$NGX_CONF_PATH
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
|
||||||
|
NGX_CONF_PREFIX=`dirname $NGX_CONF_PATH`
|
||||||
|
|
||||||
|
|
||||||
|
case ".$NGX_PID_PATH" in
|
||||||
|
./*)
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
NGX_PID_PATH=$NGX_PREFIX/$NGX_PID_PATH
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
|
||||||
|
case ".$NGX_ERROR_LOG_PATH" in
|
||||||
|
./* | .)
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
NGX_ERROR_LOG_PATH=$NGX_PREFIX/$NGX_ERROR_LOG_PATH
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
|
||||||
|
case ".$NGX_HTTP_LOG_PATH" in
|
||||||
|
./*)
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
NGX_HTTP_LOG_PATH=$NGX_PREFIX/$NGX_HTTP_LOG_PATH
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
|
||||||
|
if test -f man/nginx.8 ; then
|
||||||
|
NGX_MAN=man/nginx.8
|
||||||
|
else
|
||||||
|
NGX_MAN=docs/man/nginx.8
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test -d html ; then
|
||||||
|
NGX_HTML=html
|
||||||
|
else
|
||||||
|
NGX_HTML=docs/html
|
||||||
|
fi
|
||||||
|
|
||||||
|
cat << END >> $NGX_MAKEFILE
|
||||||
|
|
||||||
|
manpage: $NGX_OBJS/nginx.8
|
||||||
|
|
||||||
|
$NGX_OBJS/nginx.8: $NGX_MAN $NGX_AUTO_CONFIG_H
|
||||||
|
sed -e "s|%%PREFIX%%|$NGX_PREFIX|" \\
|
||||||
|
-e "s|%%PID_PATH%%|$NGX_PID_PATH|" \\
|
||||||
|
-e "s|%%CONF_PATH%%|$NGX_CONF_PATH|" \\
|
||||||
|
-e "s|%%ERROR_LOG_PATH%%|${NGX_ERROR_LOG_PATH:-stderr}|" \\
|
||||||
|
< $NGX_MAN > \$@
|
||||||
|
|
||||||
|
install: build $NGX_INSTALL_PERL_MODULES
|
||||||
|
test -d '\$(DESTDIR)$NGX_PREFIX' || mkdir -p '\$(DESTDIR)$NGX_PREFIX'
|
||||||
|
|
||||||
|
test -d '\$(DESTDIR)`dirname "$NGX_SBIN_PATH"`' \\
|
||||||
|
|| mkdir -p '\$(DESTDIR)`dirname "$NGX_SBIN_PATH"`'
|
||||||
|
test ! -f '\$(DESTDIR)$NGX_SBIN_PATH' \\
|
||||||
|
|| mv '\$(DESTDIR)$NGX_SBIN_PATH' \\
|
||||||
|
'\$(DESTDIR)$NGX_SBIN_PATH.old'
|
||||||
|
cp $NGX_OBJS/nginx '\$(DESTDIR)$NGX_SBIN_PATH'
|
||||||
|
|
||||||
|
test -d '\$(DESTDIR)$NGX_CONF_PREFIX' \\
|
||||||
|
|| mkdir -p '\$(DESTDIR)$NGX_CONF_PREFIX'
|
||||||
|
|
||||||
|
cp conf/koi-win '\$(DESTDIR)$NGX_CONF_PREFIX'
|
||||||
|
cp conf/koi-utf '\$(DESTDIR)$NGX_CONF_PREFIX'
|
||||||
|
cp conf/win-utf '\$(DESTDIR)$NGX_CONF_PREFIX'
|
||||||
|
|
||||||
|
test -f '\$(DESTDIR)$NGX_CONF_PREFIX/mime.types' \\
|
||||||
|
|| cp conf/mime.types '\$(DESTDIR)$NGX_CONF_PREFIX'
|
||||||
|
cp conf/mime.types '\$(DESTDIR)$NGX_CONF_PREFIX/mime.types.default'
|
||||||
|
|
||||||
|
test -f '\$(DESTDIR)$NGX_CONF_PREFIX/fastcgi_params' \\
|
||||||
|
|| cp conf/fastcgi_params '\$(DESTDIR)$NGX_CONF_PREFIX'
|
||||||
|
cp conf/fastcgi_params \\
|
||||||
|
'\$(DESTDIR)$NGX_CONF_PREFIX/fastcgi_params.default'
|
||||||
|
|
||||||
|
test -f '\$(DESTDIR)$NGX_CONF_PREFIX/fastcgi.conf' \\
|
||||||
|
|| cp conf/fastcgi.conf '\$(DESTDIR)$NGX_CONF_PREFIX'
|
||||||
|
cp conf/fastcgi.conf '\$(DESTDIR)$NGX_CONF_PREFIX/fastcgi.conf.default'
|
||||||
|
|
||||||
|
test -f '\$(DESTDIR)$NGX_CONF_PREFIX/uwsgi_params' \\
|
||||||
|
|| cp conf/uwsgi_params '\$(DESTDIR)$NGX_CONF_PREFIX'
|
||||||
|
cp conf/uwsgi_params \\
|
||||||
|
'\$(DESTDIR)$NGX_CONF_PREFIX/uwsgi_params.default'
|
||||||
|
|
||||||
|
test -f '\$(DESTDIR)$NGX_CONF_PREFIX/scgi_params' \\
|
||||||
|
|| cp conf/scgi_params '\$(DESTDIR)$NGX_CONF_PREFIX'
|
||||||
|
cp conf/scgi_params \\
|
||||||
|
'\$(DESTDIR)$NGX_CONF_PREFIX/scgi_params.default'
|
||||||
|
|
||||||
|
test -f '\$(DESTDIR)$NGX_CONF_PATH' \\
|
||||||
|
|| cp conf/nginx.conf '\$(DESTDIR)$NGX_CONF_PATH'
|
||||||
|
cp conf/nginx.conf '\$(DESTDIR)$NGX_CONF_PREFIX/nginx.conf.default'
|
||||||
|
|
||||||
|
test -d '\$(DESTDIR)`dirname "$NGX_PID_PATH"`' \\
|
||||||
|
|| mkdir -p '\$(DESTDIR)`dirname "$NGX_PID_PATH"`'
|
||||||
|
|
||||||
|
test -d '\$(DESTDIR)`dirname "$NGX_HTTP_LOG_PATH"`' \\
|
||||||
|
|| mkdir -p '\$(DESTDIR)`dirname "$NGX_HTTP_LOG_PATH"`'
|
||||||
|
|
||||||
|
test -d '\$(DESTDIR)$NGX_PREFIX/html' \\
|
||||||
|
|| cp -R $NGX_HTML '\$(DESTDIR)$NGX_PREFIX'
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
if test -n "$NGX_ERROR_LOG_PATH"; then
|
||||||
|
cat << END >> $NGX_MAKEFILE
|
||||||
|
|
||||||
|
test -d '\$(DESTDIR)`dirname "$NGX_ERROR_LOG_PATH"`' \\
|
||||||
|
|| mkdir -p '\$(DESTDIR)`dirname "$NGX_ERROR_LOG_PATH"`'
|
||||||
|
END
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
if test -n "$DYNAMIC_MODULES"; then
|
||||||
|
cat << END >> $NGX_MAKEFILE
|
||||||
|
|
||||||
|
test -d '\$(DESTDIR)$NGX_MODULES_PATH' \\
|
||||||
|
|| mkdir -p '\$(DESTDIR)$NGX_MODULES_PATH'
|
||||||
|
END
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
for ngx_module in $DYNAMIC_MODULES
|
||||||
|
do
|
||||||
|
ngx_module=$ngx_module$ngx_modext
|
||||||
|
|
||||||
|
cat << END >> $NGX_MAKEFILE
|
||||||
|
|
||||||
|
test ! -f '\$(DESTDIR)$NGX_MODULES_PATH/$ngx_module' \\
|
||||||
|
|| mv '\$(DESTDIR)$NGX_MODULES_PATH/$ngx_module' \\
|
||||||
|
'\$(DESTDIR)$NGX_MODULES_PATH/$ngx_module.old'
|
||||||
|
cp $NGX_OBJS/$ngx_module '\$(DESTDIR)$NGX_MODULES_PATH/$ngx_module'
|
||||||
|
END
|
||||||
|
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
|
# create Makefile
|
||||||
|
|
||||||
|
cat << END >> Makefile
|
||||||
|
|
||||||
|
build:
|
||||||
|
\$(MAKE) -f $NGX_MAKEFILE
|
||||||
|
|
||||||
|
install:
|
||||||
|
\$(MAKE) -f $NGX_MAKEFILE install
|
||||||
|
|
||||||
|
modules:
|
||||||
|
\$(MAKE) -f $NGX_MAKEFILE modules
|
||||||
|
|
||||||
|
upgrade:
|
||||||
|
$NGX_SBIN_PATH -t
|
||||||
|
|
||||||
|
kill -USR2 \`cat $NGX_PID_PATH\`
|
||||||
|
sleep 1
|
||||||
|
test -f $NGX_PID_PATH.oldbin
|
||||||
|
|
||||||
|
kill -QUIT \`cat $NGX_PID_PATH.oldbin\`
|
||||||
|
END
|
||||||
@@ -0,0 +1,54 @@
|
|||||||
|
|
||||||
|
# Copyright (C) Igor Sysoev
|
||||||
|
# Copyright (C) Nginx, Inc.
|
||||||
|
|
||||||
|
|
||||||
|
if [ $USE_PCRE = YES -o $PCRE != NONE ]; then
|
||||||
|
. auto/lib/pcre/conf
|
||||||
|
|
||||||
|
else
|
||||||
|
if [ $USE_PCRE = DISABLED -a $HTTP = YES -a $HTTP_REWRITE = YES ]; then
|
||||||
|
|
||||||
|
cat << END
|
||||||
|
|
||||||
|
$0: error: the HTTP rewrite module requires the PCRE library.
|
||||||
|
You can either disable the module by using --without-http_rewrite_module
|
||||||
|
option or you have to enable the PCRE support.
|
||||||
|
|
||||||
|
END
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
if [ $USE_OPENSSL = YES ]; then
|
||||||
|
. auto/lib/openssl/conf
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $USE_ZLIB = YES ]; then
|
||||||
|
. auto/lib/zlib/conf
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $USE_LIBXSLT != NO ]; then
|
||||||
|
. auto/lib/libxslt/conf
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $USE_LIBGD != NO ]; then
|
||||||
|
. auto/lib/libgd/conf
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $USE_PERL != NO ]; then
|
||||||
|
. auto/lib/perl/conf
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $USE_GEOIP != NO ]; then
|
||||||
|
. auto/lib/geoip/conf
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $NGX_GOOGLE_PERFTOOLS = YES ]; then
|
||||||
|
. auto/lib/google-perftools/conf
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $NGX_LIBATOMIC != NO ]; then
|
||||||
|
. auto/lib/libatomic/conf
|
||||||
|
fi
|
||||||
@@ -0,0 +1,97 @@
|
|||||||
|
|
||||||
|
# Copyright (C) Igor Sysoev
|
||||||
|
# Copyright (C) Nginx, Inc.
|
||||||
|
|
||||||
|
|
||||||
|
ngx_feature="GeoIP library"
|
||||||
|
ngx_feature_name=
|
||||||
|
ngx_feature_run=no
|
||||||
|
ngx_feature_incs="#include <GeoIP.h>"
|
||||||
|
ngx_feature_path="geoip/include"
|
||||||
|
ngx_feature_libs="geoip/lib/geoip.lib"
|
||||||
|
ngx_feature_test="GeoIP_open(NULL, 0)"
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
|
||||||
|
if [ $ngx_found = no ]; then
|
||||||
|
|
||||||
|
# FreeBSD port
|
||||||
|
|
||||||
|
ngx_feature="GeoIP library in /usr/local/"
|
||||||
|
ngx_feature_path="/usr/local/include"
|
||||||
|
|
||||||
|
if [ $NGX_RPATH = YES ]; then
|
||||||
|
ngx_feature_libs="-R/usr/local/lib -L/usr/local/lib -lGeoIP"
|
||||||
|
else
|
||||||
|
ngx_feature_libs="-L/usr/local/lib -lGeoIP"
|
||||||
|
fi
|
||||||
|
|
||||||
|
. auto/feature
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
if [ $ngx_found = no ]; then
|
||||||
|
|
||||||
|
# NetBSD port
|
||||||
|
|
||||||
|
ngx_feature="GeoIP library in /usr/pkg/"
|
||||||
|
ngx_feature_path="/usr/pkg/include"
|
||||||
|
|
||||||
|
if [ $NGX_RPATH = YES ]; then
|
||||||
|
ngx_feature_libs="-R/usr/pkg/lib -L/usr/pkg/lib -lGeoIP"
|
||||||
|
else
|
||||||
|
ngx_feature_libs="-L/usr/pkg/lib -lGeoIP"
|
||||||
|
fi
|
||||||
|
|
||||||
|
. auto/feature
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
if [ $ngx_found = no ]; then
|
||||||
|
|
||||||
|
# MacPorts
|
||||||
|
|
||||||
|
ngx_feature="GeoIP library in /opt/local/"
|
||||||
|
ngx_feature_path="/opt/local/include"
|
||||||
|
|
||||||
|
if [ $NGX_RPATH = YES ]; then
|
||||||
|
ngx_feature_libs="-R/opt/local/lib -L/opt/local/lib -lGeoIP"
|
||||||
|
else
|
||||||
|
ngx_feature_libs="-L/opt/local/lib -lGeoIP"
|
||||||
|
fi
|
||||||
|
|
||||||
|
. auto/feature
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
if [ $ngx_found = yes ]; then
|
||||||
|
|
||||||
|
CORE_INCS="$CORE_INCS $ngx_feature_path"
|
||||||
|
|
||||||
|
if [ $USE_GEOIP = YES ]; then
|
||||||
|
CORE_LIBS="$CORE_LIBS $ngx_feature_libs"
|
||||||
|
fi
|
||||||
|
|
||||||
|
NGX_LIB_GEOIP=$ngx_feature_libs
|
||||||
|
|
||||||
|
ngx_feature="GeoIP IPv6 support"
|
||||||
|
ngx_feature_name="NGX_HAVE_GEOIP_V6"
|
||||||
|
ngx_feature_run=no
|
||||||
|
ngx_feature_incs="#include <stdio.h>
|
||||||
|
#include <GeoIP.h>"
|
||||||
|
#ngx_feature_path=
|
||||||
|
#ngx_feature_libs=
|
||||||
|
ngx_feature_test="printf(\"%d\", GEOIP_CITY_EDITION_REV0_V6);"
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
else
|
||||||
|
|
||||||
|
cat << END
|
||||||
|
|
||||||
|
$0: error: the GeoIP module requires the GeoIP library.
|
||||||
|
You can either do not enable the module or install the library.
|
||||||
|
|
||||||
|
END
|
||||||
|
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
@@ -0,0 +1,61 @@
|
|||||||
|
|
||||||
|
# Copyright (C) Igor Sysoev
|
||||||
|
# Copyright (C) Nginx, Inc.
|
||||||
|
|
||||||
|
|
||||||
|
ngx_feature="Google perftools"
|
||||||
|
ngx_feature_name=
|
||||||
|
ngx_feature_run=no
|
||||||
|
ngx_feature_incs=
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs="-lprofiler"
|
||||||
|
ngx_feature_test="ProfilerStop()"
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
|
||||||
|
if [ $ngx_found = no ]; then
|
||||||
|
|
||||||
|
# FreeBSD port
|
||||||
|
|
||||||
|
ngx_feature="Google perftools in /usr/local/"
|
||||||
|
|
||||||
|
if [ $NGX_RPATH = YES ]; then
|
||||||
|
ngx_feature_libs="-R/usr/local/lib -L/usr/local/lib -lprofiler"
|
||||||
|
else
|
||||||
|
ngx_feature_libs="-L/usr/local/lib -lprofiler"
|
||||||
|
fi
|
||||||
|
|
||||||
|
. auto/feature
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
if [ $ngx_found = no ]; then
|
||||||
|
|
||||||
|
# MacPorts
|
||||||
|
|
||||||
|
ngx_feature="Google perftools in /opt/local/"
|
||||||
|
|
||||||
|
if [ $NGX_RPATH = YES ]; then
|
||||||
|
ngx_feature_libs="-R/opt/local/lib -L/opt/local/lib -lprofiler"
|
||||||
|
else
|
||||||
|
ngx_feature_libs="-L/opt/local/lib -lprofiler"
|
||||||
|
fi
|
||||||
|
|
||||||
|
. auto/feature
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
if [ $ngx_found = yes ]; then
|
||||||
|
CORE_LIBS="$CORE_LIBS $ngx_feature_libs"
|
||||||
|
|
||||||
|
else
|
||||||
|
|
||||||
|
cat << END
|
||||||
|
|
||||||
|
$0: error: the Google perftools module requires the Google perftools
|
||||||
|
library. You can either do not enable the module or install the library.
|
||||||
|
|
||||||
|
END
|
||||||
|
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
|
||||||
|
# Copyright (C) Igor Sysoev
|
||||||
|
# Copyright (C) Nginx, Inc.
|
||||||
|
|
||||||
|
|
||||||
|
if [ $NGX_LIBATOMIC != YES ]; then
|
||||||
|
|
||||||
|
have=NGX_HAVE_LIBATOMIC . auto/have
|
||||||
|
CORE_INCS="$CORE_INCS $NGX_LIBATOMIC/src"
|
||||||
|
LINK_DEPS="$LINK_DEPS $NGX_LIBATOMIC/src/libatomic_ops.a"
|
||||||
|
CORE_LIBS="$CORE_LIBS $NGX_LIBATOMIC/src/libatomic_ops.a"
|
||||||
|
|
||||||
|
else
|
||||||
|
|
||||||
|
ngx_feature="atomic_ops library"
|
||||||
|
ngx_feature_name=NGX_HAVE_LIBATOMIC
|
||||||
|
ngx_feature_run=yes
|
||||||
|
ngx_feature_incs="#define AO_REQUIRE_CAS
|
||||||
|
#include <atomic_ops.h>"
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs="-latomic_ops"
|
||||||
|
ngx_feature_test="long n = 0;
|
||||||
|
if (!AO_compare_and_swap(&n, 0, 1))
|
||||||
|
return 1;
|
||||||
|
if (AO_fetch_and_add(&n, 1) != 1)
|
||||||
|
return 1;
|
||||||
|
if (n != 2)
|
||||||
|
return 1;
|
||||||
|
AO_nop();"
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
if [ $ngx_found = yes ]; then
|
||||||
|
CORE_LIBS="$CORE_LIBS $ngx_feature_libs"
|
||||||
|
else
|
||||||
|
|
||||||
|
cat << END
|
||||||
|
|
||||||
|
$0: error: libatomic_ops library was not found.
|
||||||
|
|
||||||
|
END
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
|
||||||
|
# Copyright (C) Igor Sysoev
|
||||||
|
# Copyright (C) Nginx, Inc.
|
||||||
|
|
||||||
|
|
||||||
|
cat << END >> $NGX_MAKEFILE
|
||||||
|
|
||||||
|
$NGX_LIBATOMIC/src/libatomic_ops.a: $NGX_LIBATOMIC/Makefile
|
||||||
|
cd $NGX_LIBATOMIC && \$(MAKE)
|
||||||
|
|
||||||
|
$NGX_LIBATOMIC/Makefile: $NGX_MAKEFILE
|
||||||
|
cd $NGX_LIBATOMIC \\
|
||||||
|
&& if [ -f Makefile ]; then \$(MAKE) distclean; fi \\
|
||||||
|
&& ./configure
|
||||||
|
|
||||||
|
END
|
||||||
@@ -0,0 +1,93 @@
|
|||||||
|
|
||||||
|
# Copyright (C) Igor Sysoev
|
||||||
|
# Copyright (C) Nginx, Inc.
|
||||||
|
|
||||||
|
|
||||||
|
ngx_feature="GD library"
|
||||||
|
ngx_feature_name=
|
||||||
|
ngx_feature_run=no
|
||||||
|
ngx_feature_incs="#include <gd.h>"
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs="-lgd"
|
||||||
|
ngx_feature_test="gdImagePtr img = gdImageCreateFromGifPtr(1, NULL);"
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
|
||||||
|
if [ $ngx_found = no ]; then
|
||||||
|
|
||||||
|
# FreeBSD port
|
||||||
|
|
||||||
|
ngx_feature="GD library in /usr/local/"
|
||||||
|
ngx_feature_path="/usr/local/include"
|
||||||
|
|
||||||
|
if [ $NGX_RPATH = YES ]; then
|
||||||
|
ngx_feature_libs="-R/usr/local/lib -L/usr/local/lib -lgd"
|
||||||
|
else
|
||||||
|
ngx_feature_libs="-L/usr/local/lib -lgd"
|
||||||
|
fi
|
||||||
|
|
||||||
|
. auto/feature
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
if [ $ngx_found = no ]; then
|
||||||
|
|
||||||
|
# NetBSD port
|
||||||
|
|
||||||
|
ngx_feature="GD library in /usr/pkg/"
|
||||||
|
ngx_feature_path="/usr/pkg/include"
|
||||||
|
|
||||||
|
if [ $NGX_RPATH = YES ]; then
|
||||||
|
ngx_feature_libs="-R/usr/pkg/lib -L/usr/pkg/lib -lgd"
|
||||||
|
else
|
||||||
|
ngx_feature_libs="-L/usr/pkg/lib -lgd"
|
||||||
|
fi
|
||||||
|
|
||||||
|
. auto/feature
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
if [ $ngx_found = no ]; then
|
||||||
|
|
||||||
|
# MacPorts
|
||||||
|
|
||||||
|
ngx_feature="GD library in /opt/local/"
|
||||||
|
ngx_feature_path="/opt/local/include"
|
||||||
|
|
||||||
|
if [ $NGX_RPATH = YES ]; then
|
||||||
|
ngx_feature_libs="-R/opt/local/lib -L/opt/local/lib -lgd"
|
||||||
|
else
|
||||||
|
ngx_feature_libs="-L/opt/local/lib -lgd"
|
||||||
|
fi
|
||||||
|
|
||||||
|
. auto/feature
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
if [ $ngx_found = yes ]; then
|
||||||
|
|
||||||
|
CORE_INCS="$CORE_INCS $ngx_feature_path"
|
||||||
|
|
||||||
|
if [ $USE_LIBGD = YES ]; then
|
||||||
|
CORE_LIBS="$CORE_LIBS $ngx_feature_libs"
|
||||||
|
fi
|
||||||
|
|
||||||
|
NGX_LIB_LIBGD=$ngx_feature_libs
|
||||||
|
|
||||||
|
ngx_feature="GD WebP support"
|
||||||
|
ngx_feature_name="NGX_HAVE_GD_WEBP"
|
||||||
|
ngx_feature_test="gdImagePtr img = gdImageCreateFromWebpPtr(1, NULL);"
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
else
|
||||||
|
|
||||||
|
cat << END
|
||||||
|
|
||||||
|
$0: error: the HTTP image filter module requires the GD library.
|
||||||
|
You can either do not enable the module or install the libraries.
|
||||||
|
|
||||||
|
END
|
||||||
|
|
||||||
|
exit 1
|
||||||
|
|
||||||
|
fi
|
||||||
@@ -0,0 +1,165 @@
|
|||||||
|
|
||||||
|
# Copyright (C) Igor Sysoev
|
||||||
|
# Copyright (C) Nginx, Inc.
|
||||||
|
|
||||||
|
|
||||||
|
ngx_feature="libxslt"
|
||||||
|
ngx_feature_name=
|
||||||
|
ngx_feature_run=no
|
||||||
|
ngx_feature_incs="#include <libxml/parser.h>
|
||||||
|
#include <libxml/tree.h>
|
||||||
|
#include <libxslt/xslt.h>
|
||||||
|
#include <libxslt/xsltInternals.h>
|
||||||
|
#include <libxslt/transform.h>
|
||||||
|
#include <libxslt/xsltutils.h>"
|
||||||
|
ngx_feature_path="/usr/include/libxml2"
|
||||||
|
ngx_feature_libs="-lxml2 -lxslt"
|
||||||
|
ngx_feature_test="xmlParserCtxtPtr ctxt = NULL;
|
||||||
|
xsltStylesheetPtr sheet = NULL;
|
||||||
|
xmlDocPtr doc;
|
||||||
|
doc = xmlParseChunk(ctxt, NULL, 0, 0);
|
||||||
|
xsltApplyStylesheet(sheet, doc, NULL);"
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
|
||||||
|
if [ $ngx_found = no ]; then
|
||||||
|
|
||||||
|
# FreeBSD port
|
||||||
|
|
||||||
|
ngx_feature="libxslt in /usr/local/"
|
||||||
|
ngx_feature_path="/usr/local/include/libxml2 /usr/local/include"
|
||||||
|
|
||||||
|
if [ $NGX_RPATH = YES ]; then
|
||||||
|
ngx_feature_libs="-R/usr/local/lib -L/usr/local/lib -lxml2 -lxslt"
|
||||||
|
else
|
||||||
|
ngx_feature_libs="-L/usr/local/lib -lxml2 -lxslt"
|
||||||
|
fi
|
||||||
|
|
||||||
|
. auto/feature
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
if [ $ngx_found = no ]; then
|
||||||
|
|
||||||
|
# NetBSD port
|
||||||
|
|
||||||
|
ngx_feature="libxslt in /usr/pkg/"
|
||||||
|
ngx_feature_path="/usr/pkg/include/libxml2 /usr/pkg/include"
|
||||||
|
|
||||||
|
if [ $NGX_RPATH = YES ]; then
|
||||||
|
ngx_feature_libs="-R/usr/pkg/lib -L/usr/pkg/lib -lxml2 -lxslt"
|
||||||
|
else
|
||||||
|
ngx_feature_libs="-L/usr/pkg/lib -lxml2 -lxslt"
|
||||||
|
fi
|
||||||
|
|
||||||
|
. auto/feature
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
if [ $ngx_found = no ]; then
|
||||||
|
|
||||||
|
# MacPorts
|
||||||
|
|
||||||
|
ngx_feature="libxslt in /opt/local/"
|
||||||
|
ngx_feature_path="/opt/local/include/libxml2 /opt/local/include"
|
||||||
|
|
||||||
|
if [ $NGX_RPATH = YES ]; then
|
||||||
|
ngx_feature_libs="-R/opt/local/lib -L/opt/local/lib -lxml2 -lxslt"
|
||||||
|
else
|
||||||
|
ngx_feature_libs="-L/opt/local/lib -lxml2 -lxslt"
|
||||||
|
fi
|
||||||
|
|
||||||
|
. auto/feature
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
if [ $ngx_found = yes ]; then
|
||||||
|
|
||||||
|
CORE_INCS="$CORE_INCS $ngx_feature_path"
|
||||||
|
|
||||||
|
if [ $USE_LIBXSLT = YES ]; then
|
||||||
|
CORE_LIBS="$CORE_LIBS $ngx_feature_libs"
|
||||||
|
fi
|
||||||
|
|
||||||
|
NGX_LIB_LIBXSLT=$ngx_feature_libs
|
||||||
|
|
||||||
|
else
|
||||||
|
|
||||||
|
cat << END
|
||||||
|
|
||||||
|
$0: error: the HTTP XSLT module requires the libxml2/libxslt
|
||||||
|
libraries. You can either do not enable the module or install the libraries.
|
||||||
|
|
||||||
|
END
|
||||||
|
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
ngx_feature="libexslt"
|
||||||
|
ngx_feature_name=NGX_HAVE_EXSLT
|
||||||
|
ngx_feature_run=no
|
||||||
|
ngx_feature_incs="#include <libexslt/exslt.h>"
|
||||||
|
ngx_feature_path="/usr/include/libxml2"
|
||||||
|
ngx_feature_libs="-lexslt"
|
||||||
|
ngx_feature_test="exsltRegisterAll();"
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
if [ $ngx_found = no ]; then
|
||||||
|
|
||||||
|
# FreeBSD port
|
||||||
|
|
||||||
|
ngx_feature="libexslt in /usr/local/"
|
||||||
|
ngx_feature_path="/usr/local/include/libxml2 /usr/local/include"
|
||||||
|
|
||||||
|
if [ $NGX_RPATH = YES ]; then
|
||||||
|
ngx_feature_libs="-R/usr/local/lib -L/usr/local/lib -lexslt"
|
||||||
|
else
|
||||||
|
ngx_feature_libs="-L/usr/local/lib -lexslt"
|
||||||
|
fi
|
||||||
|
|
||||||
|
. auto/feature
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
if [ $ngx_found = no ]; then
|
||||||
|
|
||||||
|
# NetBSD port
|
||||||
|
|
||||||
|
ngx_feature="libexslt in /usr/pkg/"
|
||||||
|
ngx_feature_path="/usr/pkg/include/libxml2 /usr/local/include"
|
||||||
|
|
||||||
|
if [ $NGX_RPATH = YES ]; then
|
||||||
|
ngx_feature_libs="-R/usr/pkg/lib -L/usr/pkg/lib -lexslt"
|
||||||
|
else
|
||||||
|
ngx_feature_libs="-L/usr/pkg/lib -lexslt"
|
||||||
|
fi
|
||||||
|
|
||||||
|
. auto/feature
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
if [ $ngx_found = no ]; then
|
||||||
|
|
||||||
|
# MacPorts
|
||||||
|
|
||||||
|
ngx_feature="libexslt in /opt/local/"
|
||||||
|
ngx_feature_path="/opt/local/include/libxml2 /opt/local/include"
|
||||||
|
|
||||||
|
if [ $NGX_RPATH = YES ]; then
|
||||||
|
ngx_feature_libs="-R/opt/local/lib -L/opt/local/lib -lexslt"
|
||||||
|
else
|
||||||
|
ngx_feature_libs="-L/opt/local/lib -lexslt"
|
||||||
|
fi
|
||||||
|
|
||||||
|
. auto/feature
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
if [ $ngx_found = yes ]; then
|
||||||
|
if [ $USE_LIBXSLT = YES ]; then
|
||||||
|
CORE_LIBS="$CORE_LIBS -lexslt"
|
||||||
|
fi
|
||||||
|
|
||||||
|
NGX_LIB_LIBXSLT="$NGX_LIB_LIBXSLT -lexslt"
|
||||||
|
fi
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
|
||||||
|
# Copyright (C) Igor Sysoev
|
||||||
|
# Copyright (C) Nginx, Inc.
|
||||||
|
|
||||||
|
|
||||||
|
if [ $PCRE != NONE -a $PCRE != NO -a $PCRE != YES ]; then
|
||||||
|
. auto/lib/pcre/make
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $OPENSSL != NONE -a $OPENSSL != NO -a $OPENSSL != YES ]; then
|
||||||
|
. auto/lib/openssl/make
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $ZLIB != NONE -a $ZLIB != NO -a $ZLIB != YES ]; then
|
||||||
|
. auto/lib/zlib/make
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $NGX_LIBATOMIC != NO -a $NGX_LIBATOMIC != YES ]; then
|
||||||
|
. auto/lib/libatomic/make
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $USE_PERL != NO ]; then
|
||||||
|
. auto/lib/perl/make
|
||||||
|
fi
|
||||||
@@ -0,0 +1,135 @@
|
|||||||
|
|
||||||
|
# Copyright (C) Igor Sysoev
|
||||||
|
# Copyright (C) Nginx, Inc.
|
||||||
|
|
||||||
|
|
||||||
|
if [ $OPENSSL != NONE ]; then
|
||||||
|
|
||||||
|
case "$CC" in
|
||||||
|
|
||||||
|
cl | bcc32)
|
||||||
|
have=NGX_OPENSSL . auto/have
|
||||||
|
have=NGX_SSL . auto/have
|
||||||
|
|
||||||
|
CFLAGS="$CFLAGS -DNO_SYS_TYPES_H"
|
||||||
|
|
||||||
|
CORE_INCS="$CORE_INCS $OPENSSL/openssl/include"
|
||||||
|
CORE_DEPS="$CORE_DEPS $OPENSSL/openssl/include/openssl/ssl.h"
|
||||||
|
|
||||||
|
if [ -f $OPENSSL/ms/do_ms.bat ]; then
|
||||||
|
# before OpenSSL 1.1.0
|
||||||
|
CORE_LIBS="$CORE_LIBS $OPENSSL/openssl/lib/ssleay32.lib"
|
||||||
|
CORE_LIBS="$CORE_LIBS $OPENSSL/openssl/lib/libeay32.lib"
|
||||||
|
else
|
||||||
|
# OpenSSL 1.1.0+
|
||||||
|
CORE_LIBS="$CORE_LIBS $OPENSSL/openssl/lib/libssl.lib"
|
||||||
|
CORE_LIBS="$CORE_LIBS $OPENSSL/openssl/lib/libcrypto.lib"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# libeay32.lib requires gdi32.lib
|
||||||
|
CORE_LIBS="$CORE_LIBS gdi32.lib"
|
||||||
|
# OpenSSL 1.0.0 requires crypt32.lib
|
||||||
|
CORE_LIBS="$CORE_LIBS crypt32.lib"
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
have=NGX_OPENSSL . auto/have
|
||||||
|
have=NGX_SSL . auto/have
|
||||||
|
|
||||||
|
CORE_INCS="$CORE_INCS $OPENSSL/.openssl/include"
|
||||||
|
CORE_DEPS="$CORE_DEPS $OPENSSL/.openssl/include/openssl/ssl.h"
|
||||||
|
CORE_LIBS="$CORE_LIBS $OPENSSL/.openssl/lib/libssl.a"
|
||||||
|
CORE_LIBS="$CORE_LIBS $OPENSSL/.openssl/lib/libcrypto.a"
|
||||||
|
CORE_LIBS="$CORE_LIBS $NGX_LIBDL"
|
||||||
|
|
||||||
|
if [ "$NGX_PLATFORM" = win32 ]; then
|
||||||
|
CORE_LIBS="$CORE_LIBS -lgdi32 -lcrypt32 -lws2_32"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
else
|
||||||
|
|
||||||
|
if [ "$NGX_PLATFORM" != win32 ]; then
|
||||||
|
|
||||||
|
OPENSSL=NO
|
||||||
|
|
||||||
|
ngx_feature="OpenSSL library"
|
||||||
|
ngx_feature_name="NGX_OPENSSL"
|
||||||
|
ngx_feature_run=no
|
||||||
|
ngx_feature_incs="#include <openssl/ssl.h>"
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs="-lssl -lcrypto $NGX_LIBDL"
|
||||||
|
ngx_feature_test="SSL_CTX_set_options(NULL, 0)"
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
if [ $ngx_found = no ]; then
|
||||||
|
|
||||||
|
# FreeBSD port
|
||||||
|
|
||||||
|
ngx_feature="OpenSSL library in /usr/local/"
|
||||||
|
ngx_feature_path="/usr/local/include"
|
||||||
|
|
||||||
|
if [ $NGX_RPATH = YES ]; then
|
||||||
|
ngx_feature_libs="-R/usr/local/lib -L/usr/local/lib -lssl -lcrypto $NGX_LIBDL"
|
||||||
|
else
|
||||||
|
ngx_feature_libs="-L/usr/local/lib -lssl -lcrypto $NGX_LIBDL"
|
||||||
|
fi
|
||||||
|
|
||||||
|
. auto/feature
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $ngx_found = no ]; then
|
||||||
|
|
||||||
|
# NetBSD port
|
||||||
|
|
||||||
|
ngx_feature="OpenSSL library in /usr/pkg/"
|
||||||
|
ngx_feature_path="/usr/pkg/include"
|
||||||
|
|
||||||
|
if [ $NGX_RPATH = YES ]; then
|
||||||
|
ngx_feature_libs="-R/usr/pkg/lib -L/usr/pkg/lib -lssl -lcrypto $NGX_LIBDL"
|
||||||
|
else
|
||||||
|
ngx_feature_libs="-L/usr/pkg/lib -lssl -lcrypto $NGX_LIBDL"
|
||||||
|
fi
|
||||||
|
|
||||||
|
. auto/feature
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $ngx_found = no ]; then
|
||||||
|
|
||||||
|
# MacPorts
|
||||||
|
|
||||||
|
ngx_feature="OpenSSL library in /opt/local/"
|
||||||
|
ngx_feature_path="/opt/local/include"
|
||||||
|
|
||||||
|
if [ $NGX_RPATH = YES ]; then
|
||||||
|
ngx_feature_libs="-R/opt/local/lib -L/opt/local/lib -lssl -lcrypto $NGX_LIBDL"
|
||||||
|
else
|
||||||
|
ngx_feature_libs="-L/opt/local/lib -lssl -lcrypto $NGX_LIBDL"
|
||||||
|
fi
|
||||||
|
|
||||||
|
. auto/feature
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $ngx_found = yes ]; then
|
||||||
|
have=NGX_SSL . auto/have
|
||||||
|
CORE_INCS="$CORE_INCS $ngx_feature_path"
|
||||||
|
CORE_LIBS="$CORE_LIBS $ngx_feature_libs"
|
||||||
|
OPENSSL=YES
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $OPENSSL != YES ]; then
|
||||||
|
|
||||||
|
cat << END
|
||||||
|
|
||||||
|
$0: error: SSL modules require the OpenSSL library.
|
||||||
|
You can either do not enable the modules, or install the OpenSSL library
|
||||||
|
into the system, or build the OpenSSL library statically from the source
|
||||||
|
with nginx by using --with-openssl=<path> option.
|
||||||
|
|
||||||
|
END
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
fi
|
||||||
@@ -0,0 +1,62 @@
|
|||||||
|
|
||||||
|
# Copyright (C) Igor Sysoev
|
||||||
|
# Copyright (C) Nginx, Inc.
|
||||||
|
|
||||||
|
|
||||||
|
case "$CC" in
|
||||||
|
|
||||||
|
cl)
|
||||||
|
|
||||||
|
cat << END >> $NGX_MAKEFILE
|
||||||
|
|
||||||
|
$OPENSSL/openssl/include/openssl/ssl.h: $NGX_MAKEFILE
|
||||||
|
\$(MAKE) -f auto/lib/openssl/makefile.msvc \
|
||||||
|
OPENSSL="$OPENSSL" OPENSSL_OPT="$OPENSSL_OPT"
|
||||||
|
|
||||||
|
END
|
||||||
|
|
||||||
|
;;
|
||||||
|
|
||||||
|
bcc32)
|
||||||
|
|
||||||
|
ngx_opt=`echo "-DOPENSSL=\"$OPENSSL\" -DOPENSSL_OPT=\"$OPENSSL_OPT\"" \
|
||||||
|
| sed -e "s/\//$ngx_regex_dirsep/g"`
|
||||||
|
|
||||||
|
cat << END >> $NGX_MAKEFILE
|
||||||
|
|
||||||
|
`echo "$OPENSSL\\openssl\\lib\\libeay32.lib: \
|
||||||
|
$OPENSSL\\openssl\\include\\openssl\\ssl.h" \
|
||||||
|
| sed -e "s/\//$ngx_regex_dirsep/g"`
|
||||||
|
|
||||||
|
`echo "$OPENSSL\\openssl\\lib\\ssleay32.lib: \
|
||||||
|
$OPENSSL\\openssl\\include\\openssl\\ssl.h" \
|
||||||
|
| sed -e "s/\//$ngx_regex_dirsep/g"`
|
||||||
|
|
||||||
|
`echo "$OPENSSL\\openssl\\include\\openssl\\ssl.h: $NGX_MAKEFILE" \
|
||||||
|
| sed -e "s/\//$ngx_regex_dirsep/g"`
|
||||||
|
\$(MAKE) -f auto/lib/openssl/makefile.bcc $ngx_opt
|
||||||
|
|
||||||
|
END
|
||||||
|
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
case $OPENSSL in
|
||||||
|
/*) ngx_prefix="$OPENSSL/.openssl" ;;
|
||||||
|
*) ngx_prefix="$PWD/$OPENSSL/.openssl" ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
cat << END >> $NGX_MAKEFILE
|
||||||
|
|
||||||
|
$OPENSSL/.openssl/include/openssl/ssl.h: $NGX_MAKEFILE
|
||||||
|
cd $OPENSSL \\
|
||||||
|
&& if [ -f Makefile ]; then \$(MAKE) clean; fi \\
|
||||||
|
&& ./config --prefix=$ngx_prefix no-shared $OPENSSL_OPT \\
|
||||||
|
&& \$(MAKE) \\
|
||||||
|
&& \$(MAKE) install_sw LIBDIR=lib
|
||||||
|
|
||||||
|
END
|
||||||
|
|
||||||
|
;;
|
||||||
|
|
||||||
|
esac
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
|
||||||
|
# Copyright (C) Igor Sysoev
|
||||||
|
# Copyright (C) Nginx, Inc.
|
||||||
|
|
||||||
|
|
||||||
|
all:
|
||||||
|
cd $(OPENSSL)
|
||||||
|
|
||||||
|
perl Configure BC-32 no-shared --prefix=openssl $(OPENSSL_OPT)
|
||||||
|
|
||||||
|
ms\do_nasm
|
||||||
|
|
||||||
|
$(MAKE) -f ms\bcb.mak
|
||||||
|
$(MAKE) -f ms\bcb.mak install
|
||||||
|
|
||||||
|
# Borland's make does not expand "[ch]" in
|
||||||
|
# copy "inc32\openssl\*.[ch]" "openssl\include\openssl"
|
||||||
|
copy inc32\openssl\*.h openssl\include\openssl
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
|
||||||
|
# Copyright (C) Igor Sysoev
|
||||||
|
# Copyright (C) Nginx, Inc.
|
||||||
|
# perl Configure VC-WIN32 no-shared -DPEDANTIC enable-weak-ssl-ciphers enable-ssl3 enable-ssl3-method enable-tls1_3 enable-rc5 enable-md2 enable-nextprotoneg no-heartbeats
|
||||||
|
|
||||||
|
all:
|
||||||
|
cd $(OPENSSL)
|
||||||
|
|
||||||
|
perl Configure VC-WIN64A-masm no-shared \
|
||||||
|
--prefix="%cd%/openssl" \
|
||||||
|
--openssldir="%cd%/openssl/ssl" \
|
||||||
|
$(OPENSSL_OPT)
|
||||||
|
|
||||||
|
if exist ms\do_ms.bat ( \
|
||||||
|
ms\do_nasm \
|
||||||
|
&& $(MAKE) -f ms\nt.mak \
|
||||||
|
&& $(MAKE) -f ms\nt.mak install \
|
||||||
|
) else ( \
|
||||||
|
$(MAKE) \
|
||||||
|
&& $(MAKE) install_sw \
|
||||||
|
)
|
||||||
@@ -0,0 +1,203 @@
|
|||||||
|
|
||||||
|
# Copyright (C) Igor Sysoev
|
||||||
|
# Copyright (C) Nginx, Inc.
|
||||||
|
|
||||||
|
|
||||||
|
if [ $PCRE != NONE ]; then
|
||||||
|
CORE_INCS="$CORE_INCS $PCRE"
|
||||||
|
|
||||||
|
case "$NGX_CC_NAME" in
|
||||||
|
|
||||||
|
msvc | owc | bcc)
|
||||||
|
have=NGX_PCRE . auto/have
|
||||||
|
have=PCRE_STATIC . auto/have
|
||||||
|
CORE_DEPS="$CORE_DEPS $PCRE/pcre.h"
|
||||||
|
LINK_DEPS="$LINK_DEPS $PCRE/pcre.lib"
|
||||||
|
CORE_LIBS="$CORE_LIBS $PCRE/pcre.lib"
|
||||||
|
;;
|
||||||
|
|
||||||
|
icc)
|
||||||
|
have=NGX_PCRE . auto/have
|
||||||
|
CORE_DEPS="$CORE_DEPS $PCRE/pcre.h"
|
||||||
|
|
||||||
|
LINK_DEPS="$LINK_DEPS $PCRE/.libs/libpcre.a"
|
||||||
|
|
||||||
|
echo $ngx_n "checking for PCRE library ...$ngx_c"
|
||||||
|
|
||||||
|
if [ -f $PCRE/pcre.h ]; then
|
||||||
|
ngx_pcre_ver=`grep PCRE_MAJOR $PCRE/pcre.h \
|
||||||
|
| sed -e 's/^.*PCRE_MAJOR.* \(.*\)$/\1/'`
|
||||||
|
|
||||||
|
else if [ -f $PCRE/configure.in ]; then
|
||||||
|
ngx_pcre_ver=`grep PCRE_MAJOR= $PCRE/configure.in \
|
||||||
|
| sed -e 's/^.*=\(.*\)$/\1/'`
|
||||||
|
|
||||||
|
else
|
||||||
|
ngx_pcre_ver=`grep pcre_major, $PCRE/configure.ac \
|
||||||
|
| sed -e 's/^.*pcre_major,.*\[\(.*\)\].*$/\1/'`
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo " $ngx_pcre_ver major version found"
|
||||||
|
|
||||||
|
# to allow -ipo optimization we link with the *.o but not library
|
||||||
|
|
||||||
|
case "$ngx_pcre_ver" in
|
||||||
|
4|5)
|
||||||
|
CORE_LIBS="$CORE_LIBS $PCRE/pcre.o"
|
||||||
|
;;
|
||||||
|
|
||||||
|
6)
|
||||||
|
CORE_LIBS="$CORE_LIBS $PCRE/pcre_chartables.o"
|
||||||
|
CORE_LIBS="$CORE_LIBS $PCRE/pcre_compile.o"
|
||||||
|
CORE_LIBS="$CORE_LIBS $PCRE/pcre_exec.o"
|
||||||
|
CORE_LIBS="$CORE_LIBS $PCRE/pcre_fullinfo.o"
|
||||||
|
CORE_LIBS="$CORE_LIBS $PCRE/pcre_globals.o"
|
||||||
|
CORE_LIBS="$CORE_LIBS $PCRE/pcre_tables.o"
|
||||||
|
CORE_LIBS="$CORE_LIBS $PCRE/pcre_try_flipped.o"
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
CORE_LIBS="$CORE_LIBS $PCRE/pcre_chartables.o"
|
||||||
|
CORE_LIBS="$CORE_LIBS $PCRE/pcre_compile.o"
|
||||||
|
CORE_LIBS="$CORE_LIBS $PCRE/pcre_exec.o"
|
||||||
|
CORE_LIBS="$CORE_LIBS $PCRE/pcre_fullinfo.o"
|
||||||
|
CORE_LIBS="$CORE_LIBS $PCRE/pcre_globals.o"
|
||||||
|
CORE_LIBS="$CORE_LIBS $PCRE/pcre_tables.o"
|
||||||
|
CORE_LIBS="$CORE_LIBS $PCRE/pcre_try_flipped.o"
|
||||||
|
CORE_LIBS="$CORE_LIBS $PCRE/pcre_newline.o"
|
||||||
|
;;
|
||||||
|
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
have=NGX_PCRE . auto/have
|
||||||
|
|
||||||
|
if [ "$NGX_PLATFORM" = win32 ]; then
|
||||||
|
have=PCRE_STATIC . auto/have
|
||||||
|
fi
|
||||||
|
|
||||||
|
CORE_DEPS="$CORE_DEPS $PCRE/pcre.h"
|
||||||
|
LINK_DEPS="$LINK_DEPS $PCRE/.libs/libpcre.a"
|
||||||
|
CORE_LIBS="$CORE_LIBS $PCRE/.libs/libpcre.a"
|
||||||
|
;;
|
||||||
|
|
||||||
|
esac
|
||||||
|
|
||||||
|
|
||||||
|
if [ $PCRE_JIT = YES ]; then
|
||||||
|
have=NGX_HAVE_PCRE_JIT . auto/have
|
||||||
|
PCRE_CONF_OPT="$PCRE_CONF_OPT --enable-jit"
|
||||||
|
fi
|
||||||
|
|
||||||
|
else
|
||||||
|
|
||||||
|
if [ "$NGX_PLATFORM" != win32 ]; then
|
||||||
|
|
||||||
|
PCRE=NO
|
||||||
|
|
||||||
|
ngx_feature="PCRE library"
|
||||||
|
ngx_feature_name="NGX_PCRE"
|
||||||
|
ngx_feature_run=no
|
||||||
|
ngx_feature_incs="#include <pcre.h>"
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs="-lpcre"
|
||||||
|
ngx_feature_test="pcre *re;
|
||||||
|
re = pcre_compile(NULL, 0, NULL, 0, NULL);
|
||||||
|
if (re == NULL) return 1"
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
if [ $ngx_found = no ]; then
|
||||||
|
|
||||||
|
# FreeBSD port
|
||||||
|
|
||||||
|
ngx_feature="PCRE library in /usr/local/"
|
||||||
|
ngx_feature_path="/usr/local/include"
|
||||||
|
|
||||||
|
if [ $NGX_RPATH = YES ]; then
|
||||||
|
ngx_feature_libs="-R/usr/local/lib -L/usr/local/lib -lpcre"
|
||||||
|
else
|
||||||
|
ngx_feature_libs="-L/usr/local/lib -lpcre"
|
||||||
|
fi
|
||||||
|
|
||||||
|
. auto/feature
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $ngx_found = no ]; then
|
||||||
|
|
||||||
|
# RedHat RPM, Solaris package
|
||||||
|
|
||||||
|
ngx_feature="PCRE library in /usr/include/pcre/"
|
||||||
|
ngx_feature_path="/usr/include/pcre"
|
||||||
|
ngx_feature_libs="-lpcre"
|
||||||
|
|
||||||
|
. auto/feature
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $ngx_found = no ]; then
|
||||||
|
|
||||||
|
# NetBSD port
|
||||||
|
|
||||||
|
ngx_feature="PCRE library in /usr/pkg/"
|
||||||
|
ngx_feature_path="/usr/pkg/include"
|
||||||
|
|
||||||
|
if [ $NGX_RPATH = YES ]; then
|
||||||
|
ngx_feature_libs="-R/usr/pkg/lib -L/usr/pkg/lib -lpcre"
|
||||||
|
else
|
||||||
|
ngx_feature_libs="-L/usr/pkg/lib -lpcre"
|
||||||
|
fi
|
||||||
|
|
||||||
|
. auto/feature
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $ngx_found = no ]; then
|
||||||
|
|
||||||
|
# MacPorts
|
||||||
|
|
||||||
|
ngx_feature="PCRE library in /opt/local/"
|
||||||
|
ngx_feature_path="/opt/local/include"
|
||||||
|
|
||||||
|
if [ $NGX_RPATH = YES ]; then
|
||||||
|
ngx_feature_libs="-R/opt/local/lib -L/opt/local/lib -lpcre"
|
||||||
|
else
|
||||||
|
ngx_feature_libs="-L/opt/local/lib -lpcre"
|
||||||
|
fi
|
||||||
|
|
||||||
|
. auto/feature
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $ngx_found = yes ]; then
|
||||||
|
CORE_INCS="$CORE_INCS $ngx_feature_path"
|
||||||
|
CORE_LIBS="$CORE_LIBS $ngx_feature_libs"
|
||||||
|
PCRE=YES
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $PCRE = YES ]; then
|
||||||
|
ngx_feature="PCRE JIT support"
|
||||||
|
ngx_feature_name="NGX_HAVE_PCRE_JIT"
|
||||||
|
ngx_feature_test="int jit = 0;
|
||||||
|
pcre_free_study(NULL);
|
||||||
|
pcre_config(PCRE_CONFIG_JIT, &jit);
|
||||||
|
if (jit != 1) return 1;"
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
if [ $ngx_found = yes ]; then
|
||||||
|
PCRE_JIT=YES
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $PCRE != YES ]; then
|
||||||
|
cat << END
|
||||||
|
|
||||||
|
$0: error: the HTTP rewrite module requires the PCRE library.
|
||||||
|
You can either disable the module by using --without-http_rewrite_module
|
||||||
|
option, or install the PCRE library into the system, or build the PCRE library
|
||||||
|
statically from the source with nginx by using --with-pcre=<path> option.
|
||||||
|
|
||||||
|
END
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
fi
|
||||||
@@ -0,0 +1,64 @@
|
|||||||
|
|
||||||
|
# Copyright (C) Igor Sysoev
|
||||||
|
# Copyright (C) Nginx, Inc.
|
||||||
|
|
||||||
|
|
||||||
|
case "$NGX_CC_NAME" in
|
||||||
|
|
||||||
|
msvc)
|
||||||
|
ngx_makefile=makefile.msvc
|
||||||
|
ngx_opt="CPU_OPT=\"$CPU_OPT\" LIBC=$LIBC"
|
||||||
|
ngx_pcre="PCRE=\"$PCRE\""
|
||||||
|
;;
|
||||||
|
|
||||||
|
owc)
|
||||||
|
ngx_makefile=makefile.owc
|
||||||
|
ngx_opt="CPU_OPT=\"$CPU_OPT\""
|
||||||
|
ngx_pcre=`echo PCRE=\"$PCRE\" | sed -e "s/\//$ngx_regex_dirsep/g"`
|
||||||
|
;;
|
||||||
|
|
||||||
|
bcc)
|
||||||
|
ngx_makefile=makefile.bcc
|
||||||
|
ngx_opt="-DCPU_OPT=\"$CPU_OPT\""
|
||||||
|
ngx_pcre=`echo \-DPCRE=\"$PCRE\" | sed -e "s/\//$ngx_regex_dirsep/g"`
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
ngx_makefile=
|
||||||
|
;;
|
||||||
|
|
||||||
|
esac
|
||||||
|
|
||||||
|
|
||||||
|
if [ -n "$ngx_makefile" ]; then
|
||||||
|
|
||||||
|
cat << END >> $NGX_MAKEFILE
|
||||||
|
|
||||||
|
`echo "$PCRE/pcre.lib: $PCRE/pcre.h $NGX_MAKEFILE" \
|
||||||
|
| sed -e "s/\//$ngx_regex_dirsep/g"`
|
||||||
|
\$(MAKE) -f auto/lib/pcre/$ngx_makefile $ngx_pcre $ngx_opt
|
||||||
|
|
||||||
|
`echo "$PCRE/pcre.h:" | sed -e "s/\//$ngx_regex_dirsep/g"`
|
||||||
|
\$(MAKE) -f auto/lib/pcre/$ngx_makefile $ngx_pcre pcre.h
|
||||||
|
|
||||||
|
END
|
||||||
|
|
||||||
|
else
|
||||||
|
|
||||||
|
cat << END >> $NGX_MAKEFILE
|
||||||
|
|
||||||
|
$PCRE/pcre.h: $PCRE/Makefile
|
||||||
|
|
||||||
|
$PCRE/Makefile: $NGX_MAKEFILE
|
||||||
|
cd $PCRE \\
|
||||||
|
&& if [ -f Makefile ]; then \$(MAKE) distclean; fi \\
|
||||||
|
&& CC="\$(CC)" CFLAGS="$PCRE_OPT" \\
|
||||||
|
./configure --disable-shared $PCRE_CONF_OPT
|
||||||
|
|
||||||
|
$PCRE/.libs/libpcre.a: $PCRE/Makefile
|
||||||
|
cd $PCRE \\
|
||||||
|
&& \$(MAKE) libpcre.la
|
||||||
|
|
||||||
|
END
|
||||||
|
|
||||||
|
fi
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
|
||||||
|
# Copyright (C) Igor Sysoev
|
||||||
|
# Copyright (C) Nginx, Inc.
|
||||||
|
|
||||||
|
|
||||||
|
CFLAGS = -q -O2 -tWM -w-8004 $(CPU_OPT)
|
||||||
|
PCREFLAGS = -DHAVE_CONFIG_H -DPCRE_STATIC -DPOSIX_MALLOC_THRESHOLD=10 \
|
||||||
|
-DSUPPORT_PCRE8 -DHAVE_MEMMOVE
|
||||||
|
|
||||||
|
|
||||||
|
pcre.lib:
|
||||||
|
cd $(PCRE)
|
||||||
|
|
||||||
|
bcc32 -c $(CFLAGS) -I. $(PCREFLAGS) pcre_*.c
|
||||||
|
|
||||||
|
copy /y nul pcre.lst
|
||||||
|
for %n in (*.obj) do @echo +%n ^^& >> pcre.lst
|
||||||
|
echo + >> pcre.lst
|
||||||
|
|
||||||
|
tlib pcre.lib @pcre.lst
|
||||||
|
|
||||||
|
pcre.h:
|
||||||
|
cd $(PCRE)
|
||||||
|
|
||||||
|
copy /y pcre.h.generic pcre.h
|
||||||
|
copy /y config.h.generic config.h
|
||||||
|
copy /y pcre_chartables.c.dist pcre_chartables.c
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
|
||||||
|
# Copyright (C) Igor Sysoev
|
||||||
|
# Copyright (C) Nginx, Inc.
|
||||||
|
|
||||||
|
|
||||||
|
CFLAGS = -O2 -Ob1 -Oi -Gs $(LIBC) $(CPU_OPT)
|
||||||
|
PCREFLAGS = -DHAVE_CONFIG_H -DPCRE_STATIC -DPOSIX_MALLOC_THRESHOLD=10 \
|
||||||
|
-DSUPPORT_PCRE8 -DHAVE_MEMMOVE
|
||||||
|
|
||||||
|
|
||||||
|
pcre.lib:
|
||||||
|
cd $(PCRE)
|
||||||
|
|
||||||
|
cl -nologo -c $(CFLAGS) -I . $(PCREFLAGS) pcre_*.c
|
||||||
|
|
||||||
|
link -lib -out:pcre.lib -verbose:lib pcre_*.obj
|
||||||
|
|
||||||
|
pcre.h:
|
||||||
|
cd $(PCRE)
|
||||||
|
|
||||||
|
copy /y pcre.h.generic pcre.h
|
||||||
|
copy /y config.h.generic config.h
|
||||||
|
copy /y pcre_chartables.c.dist pcre_chartables.c
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
|
||||||
|
# Copyright (C) Igor Sysoev
|
||||||
|
# Copyright (C) Nginx, Inc.
|
||||||
|
|
||||||
|
|
||||||
|
CFLAGS = -c -zq -bt=nt -ot -op -oi -oe -s -bm $(CPU_OPT)
|
||||||
|
PCREFLAGS = -DHAVE_CONFIG_H -DPCRE_STATIC -DPOSIX_MALLOC_THRESHOLD=10 &
|
||||||
|
-DSUPPORT_PCRE8 -DHAVE_MEMMOVE
|
||||||
|
|
||||||
|
|
||||||
|
pcre.lib:
|
||||||
|
cd $(PCRE)
|
||||||
|
|
||||||
|
wcl386 $(CFLAGS) -i=. $(PCREFLAGS) pcre_*.c
|
||||||
|
|
||||||
|
dir /b *.obj > pcre.lst
|
||||||
|
|
||||||
|
wlib -n pcre.lib @pcre.lst
|
||||||
|
|
||||||
|
pcre.h:
|
||||||
|
cd $(PCRE)
|
||||||
|
|
||||||
|
copy /y pcre.h.generic pcre.h
|
||||||
|
copy /y config.h.generic config.h
|
||||||
|
copy /y pcre_chartables.c.dist pcre_chartables.c
|
||||||
@@ -0,0 +1,83 @@
|
|||||||
|
|
||||||
|
# Copyright (C) Igor Sysoev
|
||||||
|
# Copyright (C) Nginx, Inc.
|
||||||
|
|
||||||
|
|
||||||
|
echo "checking for perl"
|
||||||
|
|
||||||
|
|
||||||
|
NGX_PERL_VER=`$NGX_PERL -v 2>&1 | grep '^This is perl' 2>&1 \
|
||||||
|
| sed -e 's/^This is perl, \(.*\)/\1/'`
|
||||||
|
|
||||||
|
if test -n "$NGX_PERL_VER"; then
|
||||||
|
echo " + perl version: $NGX_PERL_VER"
|
||||||
|
|
||||||
|
if [ "`$NGX_PERL -e 'use 5.008006; print "OK"'`" != "OK" ]; then
|
||||||
|
echo
|
||||||
|
echo "$0: error: perl 5.8.6 or higher is required"
|
||||||
|
echo
|
||||||
|
|
||||||
|
exit 1;
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "`$NGX_PERL -MExtUtils::Embed -e 'print "OK"'`" != "OK" ]; then
|
||||||
|
echo
|
||||||
|
echo "$0: error: perl module ExtUtils::Embed is required"
|
||||||
|
echo
|
||||||
|
|
||||||
|
exit 1;
|
||||||
|
fi
|
||||||
|
|
||||||
|
NGX_PM_CFLAGS=`$NGX_PERL -MExtUtils::Embed -e ccopts`
|
||||||
|
NGX_PM_LDFLAGS=`$NGX_PERL -MConfig -e 'print $Config{lddlflags}'`
|
||||||
|
|
||||||
|
NGX_PERL_CFLAGS="$CFLAGS `$NGX_PERL -MExtUtils::Embed -e ccopts`"
|
||||||
|
|
||||||
|
# gcc 4.1/4.2 warn about unused values in pTHX_
|
||||||
|
NGX_PERL_CFLAGS=`echo $NGX_PERL_CFLAGS \
|
||||||
|
| sed -e 's/-Wunused-value/-Wno-unused-value/'`
|
||||||
|
# icc8 warns 'declaration hides parameter "my_perl"' in ENTER and LEAVE
|
||||||
|
NGX_PERL_CFLAGS=`echo $NGX_PERL_CFLAGS \
|
||||||
|
| sed -e 's/-wd171/-wd171 -wd1599/'`
|
||||||
|
|
||||||
|
ngx_perl_ldopts=`$NGX_PERL -MExtUtils::Embed -e ldopts`
|
||||||
|
|
||||||
|
ngx_perl_dlext=`$NGX_PERL -MConfig -e 'print $Config{dlext}'`
|
||||||
|
ngx_perl_libdir="src/http/modules/perl/blib/arch/auto"
|
||||||
|
ngx_perl_module="$ngx_perl_libdir/nginx/nginx.$ngx_perl_dlext"
|
||||||
|
|
||||||
|
if $NGX_PERL -V:usemultiplicity | grep define > /dev/null; then
|
||||||
|
have=NGX_HAVE_PERL_MULTIPLICITY . auto/have
|
||||||
|
echo " + perl interpreter multiplicity found"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if $NGX_PERL -V:useithreads | grep undef > /dev/null; then
|
||||||
|
# FreeBSD port wants to link with -pthread non-threaded perl
|
||||||
|
ngx_perl_ldopts=`echo $ngx_perl_ldopts | sed 's/ -pthread//'`
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$NGX_SYSTEM" = "Darwin" ]; then
|
||||||
|
# OS X system perl wants to link universal binaries
|
||||||
|
ngx_perl_ldopts=`echo $ngx_perl_ldopts \
|
||||||
|
| sed -e 's/-arch i386//' -e 's/-arch x86_64//'`
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $USE_PERL = YES ]; then
|
||||||
|
CORE_LINK="$CORE_LINK $ngx_perl_ldopts"
|
||||||
|
fi
|
||||||
|
|
||||||
|
NGX_LIB_PERL="$ngx_perl_ldopts"
|
||||||
|
|
||||||
|
if test -n "$NGX_PERL_MODULES"; then
|
||||||
|
have=NGX_PERL_MODULES value="(u_char *) \"$NGX_PERL_MODULES\""
|
||||||
|
. auto/define
|
||||||
|
NGX_PERL_MODULES_MAN=$NGX_PERL_MODULES/man3
|
||||||
|
fi
|
||||||
|
|
||||||
|
else
|
||||||
|
echo
|
||||||
|
echo "$0: error: perl 5.8.6 or higher is required"
|
||||||
|
echo
|
||||||
|
|
||||||
|
exit 1;
|
||||||
|
fi
|
||||||
@@ -0,0 +1,46 @@
|
|||||||
|
|
||||||
|
# Copyright (C) Igor Sysoev
|
||||||
|
# Copyright (C) Nginx, Inc.
|
||||||
|
|
||||||
|
|
||||||
|
cat << END >> $NGX_MAKEFILE
|
||||||
|
|
||||||
|
$NGX_OBJS/src/http/modules/perl/ngx_http_perl_module.o: \\
|
||||||
|
$NGX_OBJS/$ngx_perl_module
|
||||||
|
|
||||||
|
$NGX_OBJS/$ngx_perl_module: \\
|
||||||
|
\$(CORE_DEPS) \$(HTTP_DEPS) \\
|
||||||
|
src/http/modules/perl/ngx_http_perl_module.h \\
|
||||||
|
$NGX_OBJS/src/http/modules/perl/Makefile
|
||||||
|
cd $NGX_OBJS/src/http/modules/perl && \$(MAKE)
|
||||||
|
|
||||||
|
rm -rf $NGX_OBJS/install_perl
|
||||||
|
|
||||||
|
|
||||||
|
$NGX_OBJS/src/http/modules/perl/Makefile: \\
|
||||||
|
$NGX_AUTO_CONFIG_H \\
|
||||||
|
src/core/nginx.h \\
|
||||||
|
src/http/modules/perl/Makefile.PL \\
|
||||||
|
src/http/modules/perl/nginx.pm \\
|
||||||
|
src/http/modules/perl/nginx.xs \\
|
||||||
|
src/http/modules/perl/typemap
|
||||||
|
grep 'define NGINX_VERSION' src/core/nginx.h \\
|
||||||
|
| sed -e 's/^.*"\(.*\)".*/\1/' > \\
|
||||||
|
$NGX_OBJS/src/http/modules/perl/version
|
||||||
|
sed "s/%%VERSION%%/\`cat $NGX_OBJS/src/http/modules/perl/version\`/" \\
|
||||||
|
src/http/modules/perl/nginx.pm > \\
|
||||||
|
$NGX_OBJS/src/http/modules/perl/nginx.pm
|
||||||
|
cp -p src/http/modules/perl/nginx.xs $NGX_OBJS/src/http/modules/perl/
|
||||||
|
cp -p src/http/modules/perl/typemap $NGX_OBJS/src/http/modules/perl/
|
||||||
|
cp -p src/http/modules/perl/Makefile.PL $NGX_OBJS/src/http/modules/perl/
|
||||||
|
|
||||||
|
cd $NGX_OBJS/src/http/modules/perl \\
|
||||||
|
&& NGX_PM_CFLAGS="\$(NGX_PM_CFLAGS) -g $NGX_CC_OPT" \\
|
||||||
|
NGX_PM_LDFLAGS="$NGX_LD_OPT \$(NGX_PM_LDFLAGS)" \\
|
||||||
|
NGX_INCS="$CORE_INCS $NGX_OBJS $HTTP_INCS" \\
|
||||||
|
NGX_DEPS="\$(CORE_DEPS) \$(HTTP_DEPS)" \\
|
||||||
|
$NGX_PERL Makefile.PL \\
|
||||||
|
LIB=$NGX_PERL_MODULES \\
|
||||||
|
INSTALLSITEMAN3DIR=$NGX_PERL_MODULES_MAN
|
||||||
|
|
||||||
|
END
|
||||||
@@ -0,0 +1,79 @@
|
|||||||
|
|
||||||
|
# Copyright (C) Igor Sysoev
|
||||||
|
# Copyright (C) Nginx, Inc.
|
||||||
|
|
||||||
|
|
||||||
|
if [ $ZLIB != NONE ]; then
|
||||||
|
CORE_INCS="$CORE_INCS $ZLIB"
|
||||||
|
|
||||||
|
case "$NGX_CC_NAME" in
|
||||||
|
|
||||||
|
msvc | owc | bcc)
|
||||||
|
have=NGX_ZLIB . auto/have
|
||||||
|
LINK_DEPS="$LINK_DEPS $ZLIB/zlib.lib"
|
||||||
|
CORE_LIBS="$CORE_LIBS $ZLIB/zlib.lib"
|
||||||
|
;;
|
||||||
|
|
||||||
|
icc)
|
||||||
|
have=NGX_ZLIB . auto/have
|
||||||
|
LINK_DEPS="$LINK_DEPS $ZLIB/libz.a"
|
||||||
|
|
||||||
|
# to allow -ipo optimization we link with the *.o but not library
|
||||||
|
CORE_LIBS="$CORE_LIBS $ZLIB/adler32.o"
|
||||||
|
CORE_LIBS="$CORE_LIBS $ZLIB/crc32.o"
|
||||||
|
CORE_LIBS="$CORE_LIBS $ZLIB/deflate.o"
|
||||||
|
CORE_LIBS="$CORE_LIBS $ZLIB/trees.o"
|
||||||
|
CORE_LIBS="$CORE_LIBS $ZLIB/zutil.o"
|
||||||
|
CORE_LIBS="$CORE_LIBS $ZLIB/compress.o"
|
||||||
|
|
||||||
|
if [ $ZLIB_ASM != NO ]; then
|
||||||
|
CORE_LIBS="$CORE_LIBS $ZLIB/match.o"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
have=NGX_ZLIB . auto/have
|
||||||
|
LINK_DEPS="$LINK_DEPS $ZLIB/libz.a"
|
||||||
|
CORE_LIBS="$CORE_LIBS $ZLIB/libz.a"
|
||||||
|
#CORE_LIBS="$CORE_LIBS -L $ZLIB -lz"
|
||||||
|
;;
|
||||||
|
|
||||||
|
esac
|
||||||
|
|
||||||
|
else
|
||||||
|
|
||||||
|
if [ "$NGX_PLATFORM" != win32 ]; then
|
||||||
|
ZLIB=NO
|
||||||
|
|
||||||
|
# FreeBSD, Solaris, Linux
|
||||||
|
|
||||||
|
ngx_feature="zlib library"
|
||||||
|
ngx_feature_name="NGX_ZLIB"
|
||||||
|
ngx_feature_run=no
|
||||||
|
ngx_feature_incs="#include <zlib.h>"
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs="-lz"
|
||||||
|
ngx_feature_test="z_stream z; deflate(&z, Z_NO_FLUSH)"
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
|
||||||
|
if [ $ngx_found = yes ]; then
|
||||||
|
CORE_LIBS="$CORE_LIBS $ngx_feature_libs"
|
||||||
|
ZLIB=YES
|
||||||
|
ngx_found=no
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $ZLIB != YES ]; then
|
||||||
|
cat << END
|
||||||
|
|
||||||
|
$0: error: the HTTP gzip module requires the zlib library.
|
||||||
|
You can either disable the module by using --without-http_gzip_module
|
||||||
|
option, or install the zlib library into the system, or build the zlib library
|
||||||
|
statically from the source with nginx by using --with-zlib=<path> option.
|
||||||
|
|
||||||
|
END
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
fi
|
||||||
@@ -0,0 +1,135 @@
|
|||||||
|
|
||||||
|
# Copyright (C) Igor Sysoev
|
||||||
|
# Copyright (C) Nginx, Inc.
|
||||||
|
|
||||||
|
|
||||||
|
case "$NGX_CC_NAME" in
|
||||||
|
|
||||||
|
msvc)
|
||||||
|
ngx_makefile=makefile.msvc
|
||||||
|
ngx_opt="CPU_OPT=\"$CPU_OPT\" LIBC=$LIBC"
|
||||||
|
ngx_zlib="ZLIB=\"$ZLIB\""
|
||||||
|
|
||||||
|
;;
|
||||||
|
|
||||||
|
owc)
|
||||||
|
ngx_makefile=makefile.owc
|
||||||
|
ngx_opt="CPU_OPT=\"$CPU_OPT\""
|
||||||
|
ngx_zlib=`echo ZLIB=\"$ZLIB\" | sed -e "s/\//$ngx_regex_dirsep/g"`
|
||||||
|
;;
|
||||||
|
|
||||||
|
bcc)
|
||||||
|
ngx_makefile=makefile.bcc
|
||||||
|
ngx_opt="-DCPU_OPT=\"$CPU_OPT\""
|
||||||
|
ngx_zlib=`echo \-DZLIB=\"$ZLIB\" | sed -e "s/\//$ngx_regex_dirsep/g"`
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
ngx_makefile=
|
||||||
|
;;
|
||||||
|
|
||||||
|
esac
|
||||||
|
|
||||||
|
|
||||||
|
done=NO
|
||||||
|
|
||||||
|
|
||||||
|
case "$NGX_PLATFORM" in
|
||||||
|
|
||||||
|
win32)
|
||||||
|
|
||||||
|
if [ -n "$ngx_makefile" ]; then
|
||||||
|
cat << END >> $NGX_MAKEFILE
|
||||||
|
|
||||||
|
`echo "$ZLIB/zlib.lib: $NGX_MAKEFILE" | sed -e "s/\//$ngx_regex_dirsep/g"`
|
||||||
|
\$(MAKE) -f auto/lib/zlib/$ngx_makefile $ngx_opt $ngx_zlib
|
||||||
|
|
||||||
|
END
|
||||||
|
|
||||||
|
else
|
||||||
|
|
||||||
|
cat << END >> $NGX_MAKEFILE
|
||||||
|
|
||||||
|
$ZLIB/libz.a: $NGX_MAKEFILE
|
||||||
|
cd $ZLIB \\
|
||||||
|
&& \$(MAKE) distclean \\
|
||||||
|
&& \$(MAKE) -f win32/Makefile.gcc \\
|
||||||
|
CFLAGS="$ZLIB_OPT" CC="\$(CC)" \\
|
||||||
|
libz.a
|
||||||
|
|
||||||
|
END
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
done=YES
|
||||||
|
;;
|
||||||
|
|
||||||
|
# FreeBSD: i386
|
||||||
|
# Linux: i686
|
||||||
|
|
||||||
|
*:i386 | *:i686)
|
||||||
|
case $ZLIB_ASM in
|
||||||
|
pentium)
|
||||||
|
|
||||||
|
cat << END >> $NGX_MAKEFILE
|
||||||
|
|
||||||
|
$ZLIB/libz.a: $NGX_MAKEFILE
|
||||||
|
cd $ZLIB \\
|
||||||
|
&& \$(MAKE) distclean \\
|
||||||
|
&& cp contrib/asm586/match.S . \\
|
||||||
|
&& CFLAGS="$ZLIB_OPT -DASMV" CC="\$(CC)" \\
|
||||||
|
./configure \\
|
||||||
|
&& \$(MAKE) OBJA=match.o libz.a
|
||||||
|
|
||||||
|
END
|
||||||
|
|
||||||
|
done=YES
|
||||||
|
;;
|
||||||
|
|
||||||
|
pentiumpro)
|
||||||
|
|
||||||
|
cat << END >> $NGX_MAKEFILE
|
||||||
|
|
||||||
|
$ZLIB/libz.a: $NGX_MAKEFILE
|
||||||
|
cd $ZLIB \\
|
||||||
|
&& \$(MAKE) distclean \\
|
||||||
|
&& cp contrib/asm686/match.S . \\
|
||||||
|
&& CFLAGS="$ZLIB_OPT -DASMV" CC="\$(CC)" \\
|
||||||
|
./configure \\
|
||||||
|
&& \$(MAKE) OBJA=match.o libz.a
|
||||||
|
|
||||||
|
END
|
||||||
|
|
||||||
|
done=YES
|
||||||
|
;;
|
||||||
|
|
||||||
|
NO)
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
echo "$0: error: invalid --with-zlib-asm=$ZLIB_ASM option."
|
||||||
|
echo "The valid values are \"pentium\" and \"pentiumpro\" only".
|
||||||
|
echo
|
||||||
|
|
||||||
|
exit 1;
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
|
||||||
|
esac
|
||||||
|
|
||||||
|
|
||||||
|
if [ $done = NO ]; then
|
||||||
|
|
||||||
|
cat << END >> $NGX_MAKEFILE
|
||||||
|
|
||||||
|
$ZLIB/libz.a: $NGX_MAKEFILE
|
||||||
|
cd $ZLIB \\
|
||||||
|
&& \$(MAKE) distclean \\
|
||||||
|
&& CFLAGS="$ZLIB_OPT" CC="\$(CC)" \\
|
||||||
|
./configure \\
|
||||||
|
&& \$(MAKE) libz.a
|
||||||
|
|
||||||
|
END
|
||||||
|
|
||||||
|
fi
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
|
||||||
|
# Copyright (C) Igor Sysoev
|
||||||
|
# Copyright (C) Nginx, Inc.
|
||||||
|
|
||||||
|
|
||||||
|
CFLAGS = -q -O2 -tWM -w-8004 -w-8012 $(CPU_OPT)
|
||||||
|
|
||||||
|
zlib.lib:
|
||||||
|
cd $(ZLIB)
|
||||||
|
|
||||||
|
bcc32 -c $(CFLAGS) adler32.c crc32.c deflate.c \
|
||||||
|
trees.c zutil.c compress.c \
|
||||||
|
inflate.c inffast.c inftrees.c
|
||||||
|
|
||||||
|
tlib zlib.lib +adler32.obj +crc32.obj +deflate.obj \
|
||||||
|
+trees.obj +zutil.obj +compress.obj \
|
||||||
|
+inflate.obj +inffast.obj +inftrees.obj
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
|
||||||
|
# Copyright (C) Igor Sysoev
|
||||||
|
# Copyright (C) Nginx, Inc.
|
||||||
|
|
||||||
|
|
||||||
|
CFLAGS = -nologo -O2 -Ob1 -Oi -Gs $(LIBC) $(CPU_OPT)
|
||||||
|
|
||||||
|
zlib.lib:
|
||||||
|
cd $(ZLIB)
|
||||||
|
|
||||||
|
cl -c $(CFLAGS) adler32.c crc32.c deflate.c \
|
||||||
|
trees.c zutil.c compress.c \
|
||||||
|
inflate.c inffast.c inftrees.c
|
||||||
|
|
||||||
|
link -lib -out:zlib.lib adler32.obj crc32.obj deflate.obj \
|
||||||
|
trees.obj zutil.obj compress.obj \
|
||||||
|
inflate.obj inffast.obj inftrees.obj
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
|
||||||
|
# Copyright (C) Igor Sysoev
|
||||||
|
# Copyright (C) Nginx, Inc.
|
||||||
|
|
||||||
|
|
||||||
|
CFLAGS = -zq -bt=nt -ot -op -oi -oe -s -bm $(CPU_OPT)
|
||||||
|
|
||||||
|
zlib.lib:
|
||||||
|
cd $(ZLIB)
|
||||||
|
|
||||||
|
wcl386 -c $(CFLAGS) adler32.c crc32.c deflate.c trees.c zutil.c &
|
||||||
|
compress.c inflate.c inffast.c inftrees.c
|
||||||
|
wlib -n zlib.lib adler32.obj crc32.obj deflate.obj trees.obj &
|
||||||
|
zutil.obj compress.obj inflate.obj inffast.obj inftrees.obj
|
||||||
@@ -0,0 +1,672 @@
|
|||||||
|
|
||||||
|
# Copyright (C) Igor Sysoev
|
||||||
|
# Copyright (C) Nginx, Inc.
|
||||||
|
|
||||||
|
|
||||||
|
echo "creating $NGX_MAKEFILE"
|
||||||
|
|
||||||
|
mkdir -p $NGX_OBJS/src/core $NGX_OBJS/src/event $NGX_OBJS/src/event/modules \
|
||||||
|
$NGX_OBJS/src/os/unix $NGX_OBJS/src/os/win32 \
|
||||||
|
$NGX_OBJS/src/http $NGX_OBJS/src/http/v2 $NGX_OBJS/src/http/modules \
|
||||||
|
$NGX_OBJS/src/http/modules/perl \
|
||||||
|
$NGX_OBJS/src/mail \
|
||||||
|
$NGX_OBJS/src/stream \
|
||||||
|
$NGX_OBJS/src/misc
|
||||||
|
|
||||||
|
|
||||||
|
ngx_objs_dir=$NGX_OBJS$ngx_regex_dirsep
|
||||||
|
ngx_use_pch=`echo $NGX_USE_PCH | sed -e "s/\//$ngx_regex_dirsep/g"`
|
||||||
|
|
||||||
|
|
||||||
|
cat << END > $NGX_MAKEFILE
|
||||||
|
|
||||||
|
CC = $CC
|
||||||
|
CFLAGS = $CFLAGS
|
||||||
|
CPP = $CPP
|
||||||
|
LINK = $LINK
|
||||||
|
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
if test -n "$NGX_PERL_CFLAGS"; then
|
||||||
|
echo NGX_PERL_CFLAGS = $NGX_PERL_CFLAGS >> $NGX_MAKEFILE
|
||||||
|
echo NGX_PM_CFLAGS = $NGX_PM_CFLAGS >> $NGX_MAKEFILE
|
||||||
|
echo NGX_PM_LDFLAGS = $NGX_PM_LDFLAGS >> $NGX_MAKEFILE
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# ALL_INCS, required by the addons and by OpenWatcom C precompiled headers
|
||||||
|
|
||||||
|
ngx_incs=`echo $CORE_INCS $NGX_OBJS $HTTP_INCS $MAIL_INCS $STREAM_INCS\
|
||||||
|
| sed -e "s/ *\([^ ][^ ]*\)/$ngx_regex_cont$ngx_include_opt\1/g" \
|
||||||
|
-e "s/\//$ngx_regex_dirsep/g"`
|
||||||
|
|
||||||
|
cat << END >> $NGX_MAKEFILE
|
||||||
|
|
||||||
|
ALL_INCS = $ngx_include_opt$ngx_incs
|
||||||
|
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
ngx_all_srcs="$CORE_SRCS"
|
||||||
|
|
||||||
|
|
||||||
|
# the core dependencies and include paths
|
||||||
|
|
||||||
|
ngx_deps=`echo $CORE_DEPS $NGX_AUTO_CONFIG_H $NGX_PCH \
|
||||||
|
| sed -e "s/ *\([^ ][^ ]*\)/$ngx_regex_cont\1/g" \
|
||||||
|
-e "s/\//$ngx_regex_dirsep/g"`
|
||||||
|
|
||||||
|
ngx_incs=`echo $CORE_INCS $NGX_OBJS \
|
||||||
|
| sed -e "s/ *\([^ ][^ ]*\)/$ngx_regex_cont$ngx_include_opt\1/g" \
|
||||||
|
-e "s/\//$ngx_regex_dirsep/g"`
|
||||||
|
|
||||||
|
cat << END >> $NGX_MAKEFILE
|
||||||
|
|
||||||
|
CORE_DEPS = $ngx_deps
|
||||||
|
|
||||||
|
|
||||||
|
CORE_INCS = $ngx_include_opt$ngx_incs
|
||||||
|
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
# the http dependencies and include paths
|
||||||
|
|
||||||
|
if [ $HTTP = YES ]; then
|
||||||
|
|
||||||
|
ngx_all_srcs="$ngx_all_srcs $HTTP_SRCS"
|
||||||
|
|
||||||
|
ngx_deps=`echo $HTTP_DEPS \
|
||||||
|
| sed -e "s/ *\([^ ][^ ]*\)/$ngx_regex_cont\1/g" \
|
||||||
|
-e "s/\//$ngx_regex_dirsep/g"`
|
||||||
|
|
||||||
|
ngx_incs=`echo $HTTP_INCS \
|
||||||
|
| sed -e "s/ *\([^ ][^ ]*\)/$ngx_regex_cont$ngx_include_opt\1/g" \
|
||||||
|
-e "s/\//$ngx_regex_dirsep/g"`
|
||||||
|
|
||||||
|
cat << END >> $NGX_MAKEFILE
|
||||||
|
|
||||||
|
HTTP_DEPS = $ngx_deps
|
||||||
|
|
||||||
|
|
||||||
|
HTTP_INCS = $ngx_include_opt$ngx_incs
|
||||||
|
|
||||||
|
END
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# the mail dependencies and include paths
|
||||||
|
|
||||||
|
if [ $MAIL != NO ]; then
|
||||||
|
|
||||||
|
if [ $MAIL = YES ]; then
|
||||||
|
ngx_all_srcs="$ngx_all_srcs $MAIL_SRCS"
|
||||||
|
fi
|
||||||
|
|
||||||
|
ngx_deps=`echo $MAIL_DEPS \
|
||||||
|
| sed -e "s/ *\([^ ][^ ]*\)/$ngx_regex_cont\1/g" \
|
||||||
|
-e "s/\//$ngx_regex_dirsep/g"`
|
||||||
|
|
||||||
|
ngx_incs=`echo $MAIL_INCS \
|
||||||
|
| sed -e "s/ *\([^ ][^ ]*\)/$ngx_regex_cont$ngx_include_opt\1/g" \
|
||||||
|
-e "s/\//$ngx_regex_dirsep/g"`
|
||||||
|
|
||||||
|
cat << END >> $NGX_MAKEFILE
|
||||||
|
|
||||||
|
MAIL_DEPS = $ngx_deps
|
||||||
|
|
||||||
|
|
||||||
|
MAIL_INCS = $ngx_include_opt$ngx_incs
|
||||||
|
|
||||||
|
END
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# the stream dependencies and include paths
|
||||||
|
|
||||||
|
if [ $STREAM != NO ]; then
|
||||||
|
|
||||||
|
if [ $STREAM = YES ]; then
|
||||||
|
ngx_all_srcs="$ngx_all_srcs $STREAM_SRCS"
|
||||||
|
fi
|
||||||
|
|
||||||
|
ngx_deps=`echo $STREAM_DEPS \
|
||||||
|
| sed -e "s/ *\([^ ][^ ]*\)/$ngx_regex_cont\1/g" \
|
||||||
|
-e "s/\//$ngx_regex_dirsep/g"`
|
||||||
|
|
||||||
|
ngx_incs=`echo $STREAM_INCS \
|
||||||
|
| sed -e "s/ *\([^ ][^ ]*\)/$ngx_regex_cont$ngx_include_opt\1/g" \
|
||||||
|
-e "s/\//$ngx_regex_dirsep/g"`
|
||||||
|
|
||||||
|
cat << END >> $NGX_MAKEFILE
|
||||||
|
|
||||||
|
STREAM_DEPS = $ngx_deps
|
||||||
|
|
||||||
|
|
||||||
|
STREAM_INCS = $ngx_include_opt$ngx_incs
|
||||||
|
|
||||||
|
END
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
ngx_all_srcs="$ngx_all_srcs $MISC_SRCS"
|
||||||
|
|
||||||
|
|
||||||
|
if test -n "$NGX_ADDON_SRCS$DYNAMIC_MODULES"; then
|
||||||
|
|
||||||
|
cat << END >> $NGX_MAKEFILE
|
||||||
|
|
||||||
|
ADDON_DEPS = \$(CORE_DEPS) $NGX_ADDON_DEPS
|
||||||
|
|
||||||
|
END
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# nginx
|
||||||
|
|
||||||
|
ngx_all_srcs=`echo $ngx_all_srcs | sed -e "s/\//$ngx_regex_dirsep/g"`
|
||||||
|
|
||||||
|
for ngx_src in $NGX_ADDON_SRCS
|
||||||
|
do
|
||||||
|
ngx_obj="addon/`basename \`dirname $ngx_src\``"
|
||||||
|
|
||||||
|
test -d $NGX_OBJS/$ngx_obj || mkdir -p $NGX_OBJS/$ngx_obj
|
||||||
|
|
||||||
|
ngx_obj=`echo $ngx_obj/\`basename $ngx_src\` \
|
||||||
|
| sed -e "s/\//$ngx_regex_dirsep/g"`
|
||||||
|
|
||||||
|
ngx_all_srcs="$ngx_all_srcs $ngx_obj"
|
||||||
|
done
|
||||||
|
|
||||||
|
ngx_all_objs=`echo $ngx_all_srcs \
|
||||||
|
| sed -e "s#\([^ ]*\.\)cpp#$NGX_OBJS\/\1$ngx_objext#g" \
|
||||||
|
-e "s#\([^ ]*\.\)cc#$NGX_OBJS\/\1$ngx_objext#g" \
|
||||||
|
-e "s#\([^ ]*\.\)c#$NGX_OBJS\/\1$ngx_objext#g" \
|
||||||
|
-e "s#\([^ ]*\.\)S#$NGX_OBJS\/\1$ngx_objext#g"`
|
||||||
|
|
||||||
|
ngx_modules_c=`echo $NGX_MODULES_C | sed -e "s/\//$ngx_regex_dirsep/g"`
|
||||||
|
|
||||||
|
ngx_modules_obj=`echo $ngx_modules_c | sed -e "s/\(.*\.\)c/\1$ngx_objext/"`
|
||||||
|
|
||||||
|
|
||||||
|
if test -n "$NGX_RES"; then
|
||||||
|
ngx_res=$NGX_RES
|
||||||
|
else
|
||||||
|
ngx_res="$NGX_RC $NGX_ICONS"
|
||||||
|
ngx_rcc=`echo $NGX_RCC | sed -e "s/\//$ngx_regex_dirsep/g"`
|
||||||
|
fi
|
||||||
|
|
||||||
|
ngx_deps=`echo $ngx_all_objs $ngx_modules_obj $ngx_res $LINK_DEPS \
|
||||||
|
| sed -e "s/ *\([^ ][^ ]*\)/$ngx_regex_cont\1/g" \
|
||||||
|
-e "s/\//$ngx_regex_dirsep/g"`
|
||||||
|
|
||||||
|
ngx_objs=`echo $ngx_all_objs $ngx_modules_obj \
|
||||||
|
| sed -e "s/ *\([^ ][^ ]*\)/$ngx_long_regex_cont\1/g" \
|
||||||
|
-e "s/\//$ngx_regex_dirsep/g"`
|
||||||
|
|
||||||
|
ngx_libs=
|
||||||
|
if test -n "$NGX_LD_OPT$CORE_LIBS"; then
|
||||||
|
ngx_libs=`echo $NGX_LD_OPT $CORE_LIBS \
|
||||||
|
| sed -e "s/\//$ngx_regex_dirsep/g" -e "s/^/$ngx_long_regex_cont/"`
|
||||||
|
fi
|
||||||
|
|
||||||
|
ngx_link=${CORE_LINK:+`echo $CORE_LINK \
|
||||||
|
| sed -e "s/\//$ngx_regex_dirsep/g" -e "s/^/$ngx_long_regex_cont/"`}
|
||||||
|
|
||||||
|
ngx_main_link=${MAIN_LINK:+`echo $MAIN_LINK \
|
||||||
|
| sed -e "s/\//$ngx_regex_dirsep/g" -e "s/^/$ngx_long_regex_cont/"`}
|
||||||
|
|
||||||
|
|
||||||
|
cat << END >> $NGX_MAKEFILE
|
||||||
|
|
||||||
|
build: binary modules
|
||||||
|
|
||||||
|
binary: $NGX_OBJS${ngx_dirsep}nginx$ngx_binext
|
||||||
|
|
||||||
|
$NGX_OBJS${ngx_dirsep}nginx$ngx_binext: $ngx_deps$ngx_spacer
|
||||||
|
\$(LINK) $ngx_long_start$ngx_binout$NGX_OBJS${ngx_dirsep}nginx$ngx_long_cont$ngx_objs$ngx_libs$ngx_link$ngx_main_link
|
||||||
|
$ngx_rcc
|
||||||
|
$ngx_long_end
|
||||||
|
|
||||||
|
modules:
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
# ngx_modules.c
|
||||||
|
|
||||||
|
if test -n "$NGX_PCH"; then
|
||||||
|
ngx_cc="\$(CC) $ngx_compile_opt \$(CFLAGS) $ngx_use_pch \$(ALL_INCS)"
|
||||||
|
else
|
||||||
|
ngx_cc="\$(CC) $ngx_compile_opt \$(CFLAGS) \$(CORE_INCS)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
cat << END >> $NGX_MAKEFILE
|
||||||
|
|
||||||
|
$ngx_modules_obj: \$(CORE_DEPS)$ngx_cont$ngx_modules_c
|
||||||
|
$ngx_cc$ngx_tab$ngx_objout$ngx_modules_obj$ngx_tab$ngx_modules_c$NGX_AUX
|
||||||
|
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
# the core sources
|
||||||
|
|
||||||
|
for ngx_src in $CORE_SRCS
|
||||||
|
do
|
||||||
|
ngx_src=`echo $ngx_src | sed -e "s/\//$ngx_regex_dirsep/g"`
|
||||||
|
ngx_obj=`echo $ngx_src \
|
||||||
|
| sed -e "s#^\(.*\.\)cpp\\$#$ngx_objs_dir\1$ngx_objext#g" \
|
||||||
|
-e "s#^\(.*\.\)cc\\$#$ngx_objs_dir\1$ngx_objext#g" \
|
||||||
|
-e "s#^\(.*\.\)c\\$#$ngx_objs_dir\1$ngx_objext#g" \
|
||||||
|
-e "s#^\(.*\.\)S\\$#$ngx_objs_dir\1$ngx_objext#g"`
|
||||||
|
|
||||||
|
cat << END >> $NGX_MAKEFILE
|
||||||
|
|
||||||
|
$ngx_obj: \$(CORE_DEPS)$ngx_cont$ngx_src
|
||||||
|
$ngx_cc$ngx_tab$ngx_objout$ngx_obj$ngx_tab$ngx_src$NGX_AUX
|
||||||
|
|
||||||
|
END
|
||||||
|
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
|
# the http sources
|
||||||
|
|
||||||
|
if [ $HTTP = YES ]; then
|
||||||
|
|
||||||
|
if test -n "$NGX_PCH"; then
|
||||||
|
ngx_cc="\$(CC) $ngx_compile_opt \$(CFLAGS) $ngx_use_pch \$(ALL_INCS)"
|
||||||
|
else
|
||||||
|
ngx_cc="\$(CC) $ngx_compile_opt \$(CFLAGS) \$(CORE_INCS) \$(HTTP_INCS)"
|
||||||
|
ngx_perl_cc="\$(CC) $ngx_compile_opt \$(NGX_PERL_CFLAGS)"
|
||||||
|
ngx_perl_cc="$ngx_perl_cc \$(CORE_INCS) \$(HTTP_INCS)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
for ngx_source in $HTTP_SRCS
|
||||||
|
do
|
||||||
|
ngx_src=`echo $ngx_source | sed -e "s/\//$ngx_regex_dirsep/g"`
|
||||||
|
ngx_obj=`echo $ngx_src \
|
||||||
|
| sed -e "s#^\(.*\.\)cpp\\$#$ngx_objs_dir\1$ngx_objext#g" \
|
||||||
|
-e "s#^\(.*\.\)cc\\$#$ngx_objs_dir\1$ngx_objext#g" \
|
||||||
|
-e "s#^\(.*\.\)c\\$#$ngx_objs_dir\1$ngx_objext#g" \
|
||||||
|
-e "s#^\(.*\.\)S\\$#$ngx_objs_dir\1$ngx_objext#g"`
|
||||||
|
|
||||||
|
if [ $ngx_source = src/http/modules/perl/ngx_http_perl_module.c ]; then
|
||||||
|
|
||||||
|
cat << END >> $NGX_MAKEFILE
|
||||||
|
|
||||||
|
$ngx_obj: \$(CORE_DEPS) \$(HTTP_DEPS)$ngx_cont$ngx_src
|
||||||
|
$ngx_perl_cc$ngx_tab$ngx_objout$ngx_obj$ngx_tab$ngx_src$NGX_AUX
|
||||||
|
|
||||||
|
END
|
||||||
|
else
|
||||||
|
|
||||||
|
cat << END >> $NGX_MAKEFILE
|
||||||
|
|
||||||
|
$ngx_obj: \$(CORE_DEPS) \$(HTTP_DEPS)$ngx_cont$ngx_src
|
||||||
|
$ngx_cc$ngx_tab$ngx_objout$ngx_obj$ngx_tab$ngx_src$NGX_AUX
|
||||||
|
|
||||||
|
END
|
||||||
|
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# the mail sources
|
||||||
|
|
||||||
|
if [ $MAIL = YES ]; then
|
||||||
|
|
||||||
|
if test -n "$NGX_PCH"; then
|
||||||
|
ngx_cc="\$(CC) $ngx_compile_opt \$(CFLAGS) $ngx_use_pch \$(ALL_INCS)"
|
||||||
|
else
|
||||||
|
ngx_cc="\$(CC) $ngx_compile_opt \$(CFLAGS) \$(CORE_INCS) \$(MAIL_INCS)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
for ngx_src in $MAIL_SRCS
|
||||||
|
do
|
||||||
|
ngx_src=`echo $ngx_src | sed -e "s/\//$ngx_regex_dirsep/g"`
|
||||||
|
ngx_obj=`echo $ngx_src \
|
||||||
|
| sed -e "s#^\(.*\.\)cpp\\$#$ngx_objs_dir\1$ngx_objext#g" \
|
||||||
|
-e "s#^\(.*\.\)cc\\$#$ngx_objs_dir\1$ngx_objext#g" \
|
||||||
|
-e "s#^\(.*\.\)c\\$#$ngx_objs_dir\1$ngx_objext#g" \
|
||||||
|
-e "s#^\(.*\.\)S\\$#$ngx_objs_dir\1$ngx_objext#g"`
|
||||||
|
|
||||||
|
cat << END >> $NGX_MAKEFILE
|
||||||
|
|
||||||
|
$ngx_obj: \$(CORE_DEPS) \$(MAIL_DEPS)$ngx_cont$ngx_src
|
||||||
|
$ngx_cc$ngx_tab$ngx_objout$ngx_obj$ngx_tab$ngx_src$NGX_AUX
|
||||||
|
|
||||||
|
END
|
||||||
|
done
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# the stream sources
|
||||||
|
|
||||||
|
if [ $STREAM = YES ]; then
|
||||||
|
|
||||||
|
if test -n "$NGX_PCH"; then
|
||||||
|
ngx_cc="\$(CC) $ngx_compile_opt \$(CFLAGS) $ngx_use_pch \$(ALL_INCS)"
|
||||||
|
else
|
||||||
|
ngx_cc="\$(CC) $ngx_compile_opt \$(CFLAGS) \$(CORE_INCS) \$(STREAM_INCS)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
for ngx_src in $STREAM_SRCS
|
||||||
|
do
|
||||||
|
ngx_src=`echo $ngx_src | sed -e "s/\//$ngx_regex_dirsep/g"`
|
||||||
|
ngx_obj=`echo $ngx_src \
|
||||||
|
| sed -e "s#^\(.*\.\)cpp\\$#$ngx_objs_dir\1$ngx_objext#g" \
|
||||||
|
-e "s#^\(.*\.\)cc\\$#$ngx_objs_dir\1$ngx_objext#g" \
|
||||||
|
-e "s#^\(.*\.\)c\\$#$ngx_objs_dir\1$ngx_objext#g" \
|
||||||
|
-e "s#^\(.*\.\)S\\$#$ngx_objs_dir\1$ngx_objext#g"`
|
||||||
|
|
||||||
|
cat << END >> $NGX_MAKEFILE
|
||||||
|
|
||||||
|
$ngx_obj: \$(CORE_DEPS) \$(STREAM_DEPS)$ngx_cont$ngx_src
|
||||||
|
$ngx_cc$ngx_tab$ngx_objout$ngx_obj$ngx_tab$ngx_src$NGX_AUX
|
||||||
|
|
||||||
|
END
|
||||||
|
done
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# the misc sources
|
||||||
|
|
||||||
|
if test -n "$MISC_SRCS"; then
|
||||||
|
|
||||||
|
ngx_cc="\$(CC) $ngx_compile_opt \$(CFLAGS) $ngx_use_pch \$(ALL_INCS)"
|
||||||
|
|
||||||
|
for ngx_src in $MISC_SRCS
|
||||||
|
do
|
||||||
|
ngx_src=`echo $ngx_src | sed -e "s/\//$ngx_regex_dirsep/g"`
|
||||||
|
ngx_obj=`echo $ngx_src \
|
||||||
|
| sed -e "s#^\(.*\.\)cpp\\$#$ngx_objs_dir\1$ngx_objext#g" \
|
||||||
|
-e "s#^\(.*\.\)cc\\$#$ngx_objs_dir\1$ngx_objext#g" \
|
||||||
|
-e "s#^\(.*\.\)c\\$#$ngx_objs_dir\1$ngx_objext#g" \
|
||||||
|
-e "s#^\(.*\.\)S\\$#$ngx_objs_dir\1$ngx_objext#g"`
|
||||||
|
|
||||||
|
cat << END >> $NGX_MAKEFILE
|
||||||
|
|
||||||
|
$ngx_obj: \$(CORE_DEPS) $ngx_cont$ngx_src
|
||||||
|
$ngx_cc$ngx_tab$ngx_objout$ngx_obj$ngx_tab$ngx_src$NGX_AUX
|
||||||
|
|
||||||
|
END
|
||||||
|
done
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# the addons sources
|
||||||
|
|
||||||
|
if test -n "$NGX_ADDON_SRCS"; then
|
||||||
|
|
||||||
|
ngx_cc="\$(CC) $ngx_compile_opt \$(CFLAGS) $ngx_use_pch \$(ALL_INCS)"
|
||||||
|
|
||||||
|
for ngx_src in $NGX_ADDON_SRCS
|
||||||
|
do
|
||||||
|
ngx_obj="addon/`basename \`dirname $ngx_src\``"
|
||||||
|
|
||||||
|
ngx_obj=`echo $ngx_obj/\`basename $ngx_src\` \
|
||||||
|
| sed -e "s/\//$ngx_regex_dirsep/g"`
|
||||||
|
|
||||||
|
ngx_obj=`echo $ngx_obj \
|
||||||
|
| sed -e "s#^\(.*\.\)cpp\\$#$ngx_objs_dir\1$ngx_objext#g" \
|
||||||
|
-e "s#^\(.*\.\)cc\\$#$ngx_objs_dir\1$ngx_objext#g" \
|
||||||
|
-e "s#^\(.*\.\)c\\$#$ngx_objs_dir\1$ngx_objext#g" \
|
||||||
|
-e "s#^\(.*\.\)S\\$#$ngx_objs_dir\1$ngx_objext#g"`
|
||||||
|
|
||||||
|
ngx_src=`echo $ngx_src | sed -e "s/\//$ngx_regex_dirsep/g"`
|
||||||
|
|
||||||
|
cat << END >> $NGX_MAKEFILE
|
||||||
|
|
||||||
|
$ngx_obj: \$(ADDON_DEPS)$ngx_cont$ngx_src
|
||||||
|
$ngx_cc$ngx_tab$ngx_objout$ngx_obj$ngx_tab$ngx_src$NGX_AUX
|
||||||
|
|
||||||
|
END
|
||||||
|
done
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# the addons config.make
|
||||||
|
|
||||||
|
if test -n "$NGX_ADDONS$DYNAMIC_ADDONS"; then
|
||||||
|
|
||||||
|
for ngx_addon_dir in $NGX_ADDONS $DYNAMIC_ADDONS
|
||||||
|
do
|
||||||
|
if test -f $ngx_addon_dir/config.make; then
|
||||||
|
. $ngx_addon_dir/config.make
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# Win32 resource file
|
||||||
|
|
||||||
|
if test -n "$NGX_RES"; then
|
||||||
|
|
||||||
|
ngx_res=`echo "$NGX_RES: $NGX_RC $NGX_ICONS" \
|
||||||
|
| sed -e "s/\//$ngx_regex_dirsep/g"`
|
||||||
|
ngx_rcc=`echo $NGX_RCC | sed -e "s/\//$ngx_regex_dirsep/g"`
|
||||||
|
|
||||||
|
cat << END >> $NGX_MAKEFILE
|
||||||
|
|
||||||
|
$ngx_res
|
||||||
|
$ngx_rcc
|
||||||
|
|
||||||
|
END
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# the precompiled headers
|
||||||
|
|
||||||
|
if test -n "$NGX_PCH"; then
|
||||||
|
echo "#include <ngx_config.h>" > $NGX_OBJS/ngx_pch.c
|
||||||
|
|
||||||
|
ngx_pch="src/core/ngx_config.h $OS_CONFIG $NGX_OBJS/ngx_auto_config.h"
|
||||||
|
ngx_pch=`echo "$NGX_PCH: $ngx_pch" | sed -e "s/\//$ngx_regex_dirsep/g"`
|
||||||
|
|
||||||
|
ngx_src="\$(CC) \$(CFLAGS) $NGX_BUILD_PCH $ngx_compile_opt \$(ALL_INCS)"
|
||||||
|
ngx_src="$ngx_src $ngx_objout$NGX_OBJS/ngx_pch.obj $NGX_OBJS/ngx_pch.c"
|
||||||
|
ngx_src=`echo $ngx_src | sed -e "s/\//$ngx_regex_dirsep/g"`
|
||||||
|
|
||||||
|
cat << END >> $NGX_MAKEFILE
|
||||||
|
|
||||||
|
$ngx_pch
|
||||||
|
$ngx_src
|
||||||
|
|
||||||
|
END
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# dynamic modules
|
||||||
|
|
||||||
|
if test -n "$NGX_PCH"; then
|
||||||
|
ngx_cc="\$(CC) $ngx_compile_opt $ngx_pic_opt \$(CFLAGS) $ngx_use_pch \$(ALL_INCS)"
|
||||||
|
else
|
||||||
|
ngx_cc="\$(CC) $ngx_compile_opt $ngx_pic_opt \$(CFLAGS) \$(ALL_INCS)"
|
||||||
|
ngx_perl_cc="\$(CC) $ngx_compile_opt $ngx_pic_opt \$(NGX_PERL_CFLAGS)"
|
||||||
|
ngx_perl_cc="$ngx_perl_cc \$(ALL_INCS)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
for ngx_module in $DYNAMIC_MODULES
|
||||||
|
do
|
||||||
|
eval ngx_module_srcs="\$${ngx_module}_SRCS"
|
||||||
|
eval eval ngx_module_libs="\\\"\$${ngx_module}_LIBS\\\""
|
||||||
|
|
||||||
|
eval ngx_module_modules="\$${ngx_module}_MODULES"
|
||||||
|
eval ngx_module_order="\$${ngx_module}_ORDER"
|
||||||
|
|
||||||
|
ngx_modules_c=$NGX_OBJS/${ngx_module}_modules.c
|
||||||
|
|
||||||
|
cat << END > $ngx_modules_c
|
||||||
|
|
||||||
|
#include <ngx_config.h>
|
||||||
|
#include <ngx_core.h>
|
||||||
|
|
||||||
|
END
|
||||||
|
|
||||||
|
for mod in $ngx_module_modules
|
||||||
|
do
|
||||||
|
echo "extern ngx_module_t $mod;" >> $ngx_modules_c
|
||||||
|
done
|
||||||
|
|
||||||
|
echo >> $ngx_modules_c
|
||||||
|
echo 'ngx_module_t *ngx_modules[] = {' >> $ngx_modules_c
|
||||||
|
|
||||||
|
for mod in $ngx_module_modules
|
||||||
|
do
|
||||||
|
echo " &$mod," >> $ngx_modules_c
|
||||||
|
done
|
||||||
|
|
||||||
|
cat << END >> $ngx_modules_c
|
||||||
|
NULL
|
||||||
|
};
|
||||||
|
|
||||||
|
END
|
||||||
|
|
||||||
|
echo 'char *ngx_module_names[] = {' >> $ngx_modules_c
|
||||||
|
|
||||||
|
for mod in $ngx_module_modules
|
||||||
|
do
|
||||||
|
echo " \"$mod\"," >> $ngx_modules_c
|
||||||
|
done
|
||||||
|
|
||||||
|
cat << END >> $ngx_modules_c
|
||||||
|
NULL
|
||||||
|
};
|
||||||
|
|
||||||
|
END
|
||||||
|
|
||||||
|
echo 'char *ngx_module_order[] = {' >> $ngx_modules_c
|
||||||
|
|
||||||
|
for mod in $ngx_module_order
|
||||||
|
do
|
||||||
|
echo " \"$mod\"," >> $ngx_modules_c
|
||||||
|
done
|
||||||
|
|
||||||
|
cat << END >> $ngx_modules_c
|
||||||
|
NULL
|
||||||
|
};
|
||||||
|
|
||||||
|
END
|
||||||
|
|
||||||
|
ngx_modules_c=`echo $ngx_modules_c | sed -e "s/\//$ngx_regex_dirsep/g"`
|
||||||
|
|
||||||
|
ngx_modules_obj=`echo $ngx_modules_c \
|
||||||
|
| sed -e "s/\(.*\.\)c/\1$ngx_objext/"`
|
||||||
|
|
||||||
|
ngx_module_objs=
|
||||||
|
for ngx_src in $ngx_module_srcs
|
||||||
|
do
|
||||||
|
case "$ngx_src" in
|
||||||
|
src/*)
|
||||||
|
ngx_obj=$ngx_src
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
ngx_obj="addon/`basename \`dirname $ngx_src\``"
|
||||||
|
mkdir -p $NGX_OBJS/$ngx_obj
|
||||||
|
ngx_obj="$ngx_obj/`basename $ngx_src`"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
ngx_module_objs="$ngx_module_objs $ngx_obj"
|
||||||
|
done
|
||||||
|
|
||||||
|
ngx_module_objs=`echo $ngx_module_objs \
|
||||||
|
| sed -e "s#\([^ ]*\.\)cpp#$NGX_OBJS\/\1$ngx_objext#g" \
|
||||||
|
-e "s#\([^ ]*\.\)cc#$NGX_OBJS\/\1$ngx_objext#g" \
|
||||||
|
-e "s#\([^ ]*\.\)c#$NGX_OBJS\/\1$ngx_objext#g" \
|
||||||
|
-e "s#\([^ ]*\.\)S#$NGX_OBJS\/\1$ngx_objext#g"`
|
||||||
|
|
||||||
|
ngx_deps=`echo $ngx_module_objs $ngx_modules_obj $LINK_DEPS \
|
||||||
|
| sed -e "s/ *\([^ ][^ ]*\)/$ngx_regex_cont\1/g" \
|
||||||
|
-e "s/\//$ngx_regex_dirsep/g"`
|
||||||
|
|
||||||
|
ngx_objs=`echo $ngx_module_objs $ngx_modules_obj \
|
||||||
|
| sed -e "s/ *\([^ ][^ ]*\)/$ngx_long_regex_cont\1/g" \
|
||||||
|
-e "s/\//$ngx_regex_dirsep/g"`
|
||||||
|
|
||||||
|
ngx_obj=$NGX_OBJS$ngx_dirsep$ngx_module$ngx_modext
|
||||||
|
|
||||||
|
if [ "$NGX_PLATFORM" = win32 ]; then
|
||||||
|
ngx_module_libs="$CORE_LIBS $ngx_module_libs"
|
||||||
|
fi
|
||||||
|
|
||||||
|
ngx_libs=
|
||||||
|
if test -n "$NGX_LD_OPT$ngx_module_libs"; then
|
||||||
|
ngx_libs=`echo $NGX_LD_OPT $ngx_module_libs \
|
||||||
|
| sed -e "s/\//$ngx_regex_dirsep/g" -e "s/^/$ngx_long_regex_cont/"`
|
||||||
|
fi
|
||||||
|
|
||||||
|
ngx_link=${CORE_LINK:+`echo $CORE_LINK \
|
||||||
|
| sed -e "s/\//$ngx_regex_dirsep/g" -e "s/^/$ngx_long_regex_cont/"`}
|
||||||
|
|
||||||
|
ngx_module_link=${MODULE_LINK:+`echo $MODULE_LINK \
|
||||||
|
| sed -e "s/\//$ngx_regex_dirsep/g" -e "s/^/$ngx_long_regex_cont/"`}
|
||||||
|
|
||||||
|
|
||||||
|
cat << END >> $NGX_MAKEFILE
|
||||||
|
|
||||||
|
modules: $ngx_obj
|
||||||
|
|
||||||
|
$ngx_obj: $ngx_deps$ngx_spacer
|
||||||
|
\$(LINK) $ngx_long_start$ngx_binout$ngx_obj$ngx_long_cont$ngx_objs$ngx_libs$ngx_link$ngx_module_link
|
||||||
|
$ngx_long_end
|
||||||
|
|
||||||
|
$ngx_modules_obj: \$(CORE_DEPS)$ngx_cont$ngx_modules_c
|
||||||
|
$ngx_cc$ngx_tab$ngx_objout$ngx_modules_obj$ngx_tab$ngx_modules_c$NGX_AUX
|
||||||
|
|
||||||
|
END
|
||||||
|
|
||||||
|
for ngx_source in $ngx_module_srcs
|
||||||
|
do
|
||||||
|
case "$ngx_source" in
|
||||||
|
src/*)
|
||||||
|
ngx_obj=`echo $ngx_source | sed -e "s/\//$ngx_regex_dirsep/g"`
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
ngx_obj="addon/`basename \`dirname $ngx_source\``"
|
||||||
|
ngx_obj=`echo $ngx_obj/\`basename $ngx_source\` \
|
||||||
|
| sed -e "s/\//$ngx_regex_dirsep/g"`
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
ngx_obj=`echo $ngx_obj \
|
||||||
|
| sed -e "s#^\(.*\.\)cpp\\$#$ngx_objs_dir\1$ngx_objext#g" \
|
||||||
|
-e "s#^\(.*\.\)cc\\$#$ngx_objs_dir\1$ngx_objext#g" \
|
||||||
|
-e "s#^\(.*\.\)c\\$#$ngx_objs_dir\1$ngx_objext#g" \
|
||||||
|
-e "s#^\(.*\.\)S\\$#$ngx_objs_dir\1$ngx_objext#g"`
|
||||||
|
|
||||||
|
ngx_src=`echo $ngx_source | sed -e "s/\//$ngx_regex_dirsep/g"`
|
||||||
|
|
||||||
|
if [ $ngx_source = src/http/modules/perl/ngx_http_perl_module.c ]; then
|
||||||
|
|
||||||
|
cat << END >> $NGX_MAKEFILE
|
||||||
|
|
||||||
|
$ngx_obj: \$(ADDON_DEPS)$ngx_cont$ngx_src
|
||||||
|
$ngx_perl_cc$ngx_tab$ngx_objout$ngx_obj$ngx_tab$ngx_src$NGX_AUX
|
||||||
|
|
||||||
|
END
|
||||||
|
else
|
||||||
|
|
||||||
|
cat << END >> $NGX_MAKEFILE
|
||||||
|
|
||||||
|
$ngx_obj: \$(ADDON_DEPS)$ngx_cont$ngx_src
|
||||||
|
$ngx_cc$ngx_tab$ngx_objout$ngx_obj$ngx_tab$ngx_src$NGX_AUX
|
||||||
|
|
||||||
|
END
|
||||||
|
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
done
|
||||||
+138
@@ -0,0 +1,138 @@
|
|||||||
|
|
||||||
|
# Copyright (C) Ruslan Ermilov
|
||||||
|
# Copyright (C) Nginx, Inc.
|
||||||
|
|
||||||
|
|
||||||
|
case $ngx_module_type in
|
||||||
|
HTTP_*) ngx_var=HTTP ;;
|
||||||
|
*) ngx_var=$ngx_module_type ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
|
||||||
|
if [ "$ngx_module_link" = DYNAMIC ]; then
|
||||||
|
|
||||||
|
for ngx_module in $ngx_module_name; do
|
||||||
|
# extract the first name
|
||||||
|
break
|
||||||
|
done
|
||||||
|
|
||||||
|
DYNAMIC_MODULES="$DYNAMIC_MODULES $ngx_module"
|
||||||
|
eval ${ngx_module}_SRCS=\"$ngx_module_srcs\"
|
||||||
|
|
||||||
|
eval ${ngx_module}_MODULES=\"$ngx_module_name\"
|
||||||
|
|
||||||
|
if [ -z "$ngx_module_order" -a \
|
||||||
|
\( "$ngx_module_type" = "HTTP_FILTER" \
|
||||||
|
-o "$ngx_module_type" = "HTTP_AUX_FILTER" \) ]
|
||||||
|
then
|
||||||
|
eval ${ngx_module}_ORDER=\"$ngx_module_name \
|
||||||
|
ngx_http_copy_filter_module\"
|
||||||
|
else
|
||||||
|
eval ${ngx_module}_ORDER=\"$ngx_module_order\"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test -n "$ngx_module_incs"; then
|
||||||
|
CORE_INCS="$CORE_INCS $ngx_module_incs"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test -n "$ngx_module_deps"; then
|
||||||
|
NGX_ADDON_DEPS="$NGX_ADDON_DEPS $ngx_module_deps"
|
||||||
|
fi
|
||||||
|
|
||||||
|
libs=
|
||||||
|
for lib in $ngx_module_libs
|
||||||
|
do
|
||||||
|
case $lib in
|
||||||
|
|
||||||
|
LIBXSLT | LIBGD | GEOIP | PERL)
|
||||||
|
libs="$libs \$NGX_LIB_$lib"
|
||||||
|
|
||||||
|
if eval [ "\$USE_${lib}" = NO ] ; then
|
||||||
|
eval USE_${lib}=DYNAMIC
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
|
||||||
|
PCRE | OPENSSL | ZLIB)
|
||||||
|
eval USE_${lib}=YES
|
||||||
|
;;
|
||||||
|
|
||||||
|
MD5 | SHA1)
|
||||||
|
# obsolete
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
libs="$libs $lib"
|
||||||
|
;;
|
||||||
|
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
eval ${ngx_module}_LIBS=\'$libs\'
|
||||||
|
|
||||||
|
elif [ "$ngx_module_link" = YES ]; then
|
||||||
|
|
||||||
|
eval ${ngx_module_type}_MODULES=\"\$${ngx_module_type}_MODULES \
|
||||||
|
$ngx_module_name\"
|
||||||
|
|
||||||
|
eval ${ngx_var}_SRCS=\"\$${ngx_var}_SRCS $ngx_module_srcs\"
|
||||||
|
|
||||||
|
if test -n "$ngx_module_incs"; then
|
||||||
|
eval ${ngx_var}_INCS=\"\$${ngx_var}_INCS $ngx_module_incs\"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test -n "$ngx_module_deps"; then
|
||||||
|
eval ${ngx_var}_DEPS=\"\$${ngx_var}_DEPS $ngx_module_deps\"
|
||||||
|
fi
|
||||||
|
|
||||||
|
for lib in $ngx_module_libs
|
||||||
|
do
|
||||||
|
case $lib in
|
||||||
|
|
||||||
|
PCRE | OPENSSL | ZLIB | LIBXSLT | LIBGD | PERL | GEOIP)
|
||||||
|
eval USE_${lib}=YES
|
||||||
|
;;
|
||||||
|
|
||||||
|
MD5 | SHA1)
|
||||||
|
# obsolete
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
CORE_LIBS="$CORE_LIBS $lib"
|
||||||
|
;;
|
||||||
|
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
elif [ "$ngx_module_link" = ADDON ]; then
|
||||||
|
|
||||||
|
eval ${ngx_module_type}_MODULES=\"\$${ngx_module_type}_MODULES \
|
||||||
|
$ngx_module_name\"
|
||||||
|
|
||||||
|
NGX_ADDON_SRCS="$NGX_ADDON_SRCS $ngx_module_srcs"
|
||||||
|
|
||||||
|
if test -n "$ngx_module_incs"; then
|
||||||
|
eval ${ngx_var}_INCS=\"\$${ngx_var}_INCS $ngx_module_incs\"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test -n "$ngx_module_deps"; then
|
||||||
|
NGX_ADDON_DEPS="$NGX_ADDON_DEPS $ngx_module_deps"
|
||||||
|
fi
|
||||||
|
|
||||||
|
for lib in $ngx_module_libs
|
||||||
|
do
|
||||||
|
case $lib in
|
||||||
|
|
||||||
|
PCRE | OPENSSL | ZLIB | LIBXSLT | LIBGD | PERL | GEOIP)
|
||||||
|
eval USE_${lib}=YES
|
||||||
|
;;
|
||||||
|
|
||||||
|
MD5 | SHA1)
|
||||||
|
# obsolete
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
CORE_LIBS="$CORE_LIBS $lib"
|
||||||
|
;;
|
||||||
|
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
fi
|
||||||
+1420
@@ -0,0 +1,1420 @@
|
|||||||
|
|
||||||
|
# Copyright (C) Igor Sysoev
|
||||||
|
# Copyright (C) Nginx, Inc.
|
||||||
|
|
||||||
|
|
||||||
|
if [ $EVENT_SELECT = NO -a $EVENT_FOUND = NO ]; then
|
||||||
|
EVENT_SELECT=YES
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $EVENT_SELECT = YES ]; then
|
||||||
|
have=NGX_HAVE_SELECT . auto/have
|
||||||
|
CORE_SRCS="$CORE_SRCS $SELECT_SRCS"
|
||||||
|
EVENT_MODULES="$EVENT_MODULES $SELECT_MODULE"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
if [ $EVENT_POLL = NO -a $EVENT_FOUND = NO ]; then
|
||||||
|
EVENT_POLL=YES
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $EVENT_POLL = YES ]; then
|
||||||
|
have=NGX_HAVE_POLL . auto/have
|
||||||
|
CORE_SRCS="$CORE_SRCS $POLL_SRCS"
|
||||||
|
EVENT_MODULES="$EVENT_MODULES $POLL_MODULE"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
if [ $NGX_TEST_BUILD_DEVPOLL = YES ]; then
|
||||||
|
have=NGX_HAVE_DEVPOLL . auto/have
|
||||||
|
have=NGX_TEST_BUILD_DEVPOLL . auto/have
|
||||||
|
EVENT_MODULES="$EVENT_MODULES $DEVPOLL_MODULE"
|
||||||
|
CORE_SRCS="$CORE_SRCS $DEVPOLL_SRCS"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
if [ $NGX_TEST_BUILD_EVENTPORT = YES ]; then
|
||||||
|
have=NGX_HAVE_EVENTPORT . auto/have
|
||||||
|
have=NGX_TEST_BUILD_EVENTPORT . auto/have
|
||||||
|
EVENT_MODULES="$EVENT_MODULES $EVENTPORT_MODULE"
|
||||||
|
CORE_SRCS="$CORE_SRCS $EVENTPORT_SRCS"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $NGX_TEST_BUILD_EPOLL = YES ]; then
|
||||||
|
have=NGX_HAVE_EPOLL . auto/have
|
||||||
|
have=NGX_HAVE_EPOLLRDHUP . auto/have
|
||||||
|
have=NGX_HAVE_EPOLLEXCLUSIVE . auto/have
|
||||||
|
have=NGX_HAVE_EVENTFD . auto/have
|
||||||
|
have=NGX_TEST_BUILD_EPOLL . auto/have
|
||||||
|
EVENT_MODULES="$EVENT_MODULES $EPOLL_MODULE"
|
||||||
|
CORE_SRCS="$CORE_SRCS $EPOLL_SRCS"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $NGX_TEST_BUILD_SOLARIS_SENDFILEV = YES ]; then
|
||||||
|
have=NGX_TEST_BUILD_SOLARIS_SENDFILEV . auto/have
|
||||||
|
CORE_SRCS="$CORE_SRCS $SOLARIS_SENDFILEV_SRCS"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
if [ $HTTP = YES ]; then
|
||||||
|
HTTP_MODULES=
|
||||||
|
HTTP_DEPS=
|
||||||
|
HTTP_INCS=
|
||||||
|
|
||||||
|
ngx_module_type=HTTP
|
||||||
|
|
||||||
|
if :; then
|
||||||
|
ngx_module_name="ngx_http_module \
|
||||||
|
ngx_http_core_module \
|
||||||
|
ngx_http_log_module \
|
||||||
|
ngx_http_upstream_module"
|
||||||
|
ngx_module_incs="src/http src/http/modules"
|
||||||
|
ngx_module_deps="src/http/ngx_http.h \
|
||||||
|
src/http/ngx_http_request.h \
|
||||||
|
src/http/ngx_http_config.h \
|
||||||
|
src/http/ngx_http_core_module.h \
|
||||||
|
src/http/ngx_http_cache.h \
|
||||||
|
src/http/ngx_http_variables.h \
|
||||||
|
src/http/ngx_http_script.h \
|
||||||
|
src/http/ngx_http_upstream.h \
|
||||||
|
src/http/ngx_http_upstream_round_robin.h"
|
||||||
|
ngx_module_srcs="src/http/ngx_http.c \
|
||||||
|
src/http/ngx_http_core_module.c \
|
||||||
|
src/http/ngx_http_special_response.c \
|
||||||
|
src/http/ngx_http_request.c \
|
||||||
|
src/http/ngx_http_parse.c \
|
||||||
|
src/http/modules/ngx_http_log_module.c \
|
||||||
|
src/http/ngx_http_request_body.c \
|
||||||
|
src/http/ngx_http_variables.c \
|
||||||
|
src/http/ngx_http_script.c \
|
||||||
|
src/http/ngx_http_upstream.c \
|
||||||
|
src/http/ngx_http_upstream_round_robin.c"
|
||||||
|
ngx_module_libs=
|
||||||
|
ngx_module_link=YES
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
if [ $HTTP_CACHE = YES ]; then
|
||||||
|
have=NGX_HTTP_CACHE . auto/have
|
||||||
|
HTTP_SRCS="$HTTP_SRCS $HTTP_FILE_CACHE_SRCS"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
if [ $HTTP_SSI = YES ]; then
|
||||||
|
HTTP_POSTPONE=YES
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
if [ $HTTP_SLICE = YES ]; then
|
||||||
|
HTTP_POSTPONE=YES
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
if [ $HTTP_ADDITION = YES ]; then
|
||||||
|
HTTP_POSTPONE=YES
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# the module order is important
|
||||||
|
# ngx_http_static_module
|
||||||
|
# ngx_http_gzip_static_module
|
||||||
|
# ngx_http_dav_module
|
||||||
|
# ngx_http_autoindex_module
|
||||||
|
# ngx_http_index_module
|
||||||
|
# ngx_http_random_index_module
|
||||||
|
#
|
||||||
|
# ngx_http_access_module
|
||||||
|
# ngx_http_realip_module
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# the filter order is important
|
||||||
|
# ngx_http_write_filter
|
||||||
|
# ngx_http_header_filter
|
||||||
|
# ngx_http_chunked_filter
|
||||||
|
# ngx_http_v2_filter
|
||||||
|
# ngx_http_spdy_filter
|
||||||
|
# ngx_http_range_header_filter
|
||||||
|
# ngx_http_gzip_filter
|
||||||
|
# ngx_http_postpone_filter
|
||||||
|
# ngx_http_ssi_filter
|
||||||
|
# ngx_http_charset_filter
|
||||||
|
# ngx_http_xslt_filter
|
||||||
|
# ngx_http_image_filter
|
||||||
|
# ngx_http_sub_filter
|
||||||
|
# ngx_http_addition_filter
|
||||||
|
# ngx_http_gunzip_filter
|
||||||
|
# ngx_http_userid_filter
|
||||||
|
# ngx_http_headers_filter
|
||||||
|
# ngx_http_copy_filter
|
||||||
|
# ngx_http_range_body_filter
|
||||||
|
# ngx_http_not_modified_filter
|
||||||
|
# ngx_http_slice_filter
|
||||||
|
|
||||||
|
ngx_module_type=HTTP_FILTER
|
||||||
|
HTTP_FILTER_MODULES=
|
||||||
|
|
||||||
|
ngx_module_order="ngx_http_static_module \
|
||||||
|
ngx_http_gzip_static_module \
|
||||||
|
ngx_http_dav_module \
|
||||||
|
ngx_http_autoindex_module \
|
||||||
|
ngx_http_index_module \
|
||||||
|
ngx_http_random_index_module \
|
||||||
|
ngx_http_access_module \
|
||||||
|
ngx_http_realip_module \
|
||||||
|
ngx_http_write_filter_module \
|
||||||
|
ngx_http_header_filter_module \
|
||||||
|
ngx_http_chunked_filter_module \
|
||||||
|
ngx_http_spdy_filter_module \
|
||||||
|
ngx_http_v2_filter_module \
|
||||||
|
ngx_http_range_header_filter_module \
|
||||||
|
ngx_http_gzip_filter_module \
|
||||||
|
ngx_http_postpone_filter_module \
|
||||||
|
ngx_http_ssi_filter_module \
|
||||||
|
ngx_http_charset_filter_module \
|
||||||
|
ngx_http_xslt_filter_module \
|
||||||
|
ngx_http_image_filter_module \
|
||||||
|
ngx_http_sub_filter_module \
|
||||||
|
ngx_http_addition_filter_module \
|
||||||
|
ngx_http_gunzip_filter_module \
|
||||||
|
ngx_http_userid_filter_module \
|
||||||
|
ngx_http_headers_filter_module \
|
||||||
|
ngx_http_copy_filter_module \
|
||||||
|
ngx_http_range_body_filter_module \
|
||||||
|
ngx_http_not_modified_filter_module \
|
||||||
|
ngx_http_slice_filter_module"
|
||||||
|
|
||||||
|
if :; then
|
||||||
|
ngx_module_name=ngx_http_write_filter_module
|
||||||
|
ngx_module_incs=
|
||||||
|
ngx_module_deps=
|
||||||
|
ngx_module_srcs=src/http/ngx_http_write_filter_module.c
|
||||||
|
ngx_module_libs=
|
||||||
|
ngx_module_link=YES
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
fi
|
||||||
|
|
||||||
|
if :; then
|
||||||
|
ngx_module_name=ngx_http_header_filter_module
|
||||||
|
ngx_module_incs=
|
||||||
|
ngx_module_deps=
|
||||||
|
ngx_module_srcs=src/http/ngx_http_header_filter_module.c
|
||||||
|
ngx_module_libs=
|
||||||
|
ngx_module_link=YES
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
fi
|
||||||
|
|
||||||
|
if :; then
|
||||||
|
ngx_module_name=ngx_http_chunked_filter_module
|
||||||
|
ngx_module_incs=
|
||||||
|
ngx_module_deps=
|
||||||
|
ngx_module_srcs=src/http/modules/ngx_http_chunked_filter_module.c
|
||||||
|
ngx_module_libs=
|
||||||
|
ngx_module_link=YES
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $HTTP_V2 = YES ]; then
|
||||||
|
ngx_module_name=ngx_http_v2_filter_module
|
||||||
|
ngx_module_incs=
|
||||||
|
ngx_module_deps=
|
||||||
|
ngx_module_srcs=src/http/v2/ngx_http_v2_filter_module.c
|
||||||
|
ngx_module_libs=
|
||||||
|
ngx_module_link=$HTTP_V2
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
if [ $HTTP_SPDY = YES ]; then
|
||||||
|
# ngx_module_name=$HTTP_SPDY_FILTER_MODULE
|
||||||
|
ngx_module_name=ngx_http_spdy_filter_module
|
||||||
|
USE_ZLIB=YES
|
||||||
|
ngx_module_incs=
|
||||||
|
ngx_module_deps=
|
||||||
|
ngx_module_srcs=src/http/ngx_http_spdy_filter_module.c
|
||||||
|
ngx_module_libs=
|
||||||
|
ngx_module_link=$HTTP_SPDY
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
fi
|
||||||
|
|
||||||
|
if :; then
|
||||||
|
ngx_module_name=ngx_http_range_header_filter_module
|
||||||
|
ngx_module_incs=
|
||||||
|
ngx_module_deps=
|
||||||
|
ngx_module_srcs=src/http/modules/ngx_http_range_filter_module.c
|
||||||
|
ngx_module_libs=
|
||||||
|
ngx_module_link=YES
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $HTTP_GZIP = YES ]; then
|
||||||
|
have=NGX_HTTP_GZIP . auto/have
|
||||||
|
USE_ZLIB=YES
|
||||||
|
|
||||||
|
ngx_module_name=ngx_http_gzip_filter_module
|
||||||
|
ngx_module_incs=
|
||||||
|
ngx_module_deps=
|
||||||
|
ngx_module_srcs=src/http/modules/ngx_http_gzip_filter_module.c
|
||||||
|
ngx_module_libs=
|
||||||
|
ngx_module_link=$HTTP_GZIP
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $HTTP_POSTPONE = YES ]; then
|
||||||
|
ngx_module_name=ngx_http_postpone_filter_module
|
||||||
|
ngx_module_incs=
|
||||||
|
ngx_module_deps=
|
||||||
|
ngx_module_srcs=src/http/ngx_http_postpone_filter_module.c
|
||||||
|
ngx_module_libs=
|
||||||
|
ngx_module_link=$HTTP_POSTPONE
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $HTTP_SSI = YES ]; then
|
||||||
|
have=NGX_HTTP_SSI . auto/have
|
||||||
|
|
||||||
|
ngx_module_name=ngx_http_ssi_filter_module
|
||||||
|
ngx_module_incs=
|
||||||
|
ngx_module_deps=src/http/modules/ngx_http_ssi_filter_module.h
|
||||||
|
ngx_module_srcs=src/http/modules/ngx_http_ssi_filter_module.c
|
||||||
|
ngx_module_libs=
|
||||||
|
ngx_module_link=$HTTP_SSI
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $HTTP_CHARSET = YES ]; then
|
||||||
|
ngx_module_name=ngx_http_charset_filter_module
|
||||||
|
ngx_module_incs=
|
||||||
|
ngx_module_deps=
|
||||||
|
ngx_module_srcs=src/http/modules/ngx_http_charset_filter_module.c
|
||||||
|
ngx_module_libs=
|
||||||
|
ngx_module_link=$HTTP_CHARSET
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $HTTP_XSLT != NO ]; then
|
||||||
|
ngx_module_name=ngx_http_xslt_filter_module
|
||||||
|
ngx_module_incs=
|
||||||
|
ngx_module_deps=
|
||||||
|
ngx_module_srcs=src/http/modules/ngx_http_xslt_filter_module.c
|
||||||
|
ngx_module_libs=LIBXSLT
|
||||||
|
ngx_module_link=$HTTP_XSLT
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $HTTP_IMAGE_FILTER != NO ]; then
|
||||||
|
ngx_module_name=ngx_http_image_filter_module
|
||||||
|
ngx_module_incs=
|
||||||
|
ngx_module_deps=
|
||||||
|
ngx_module_srcs=src/http/modules/ngx_http_image_filter_module.c
|
||||||
|
ngx_module_libs=LIBGD
|
||||||
|
ngx_module_link=$HTTP_IMAGE_FILTER
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $HTTP_SUB = YES ]; then
|
||||||
|
ngx_module_name=ngx_http_sub_filter_module
|
||||||
|
ngx_module_incs=
|
||||||
|
ngx_module_deps=
|
||||||
|
ngx_module_srcs=src/http/modules/ngx_http_sub_filter_module.c
|
||||||
|
ngx_module_libs=
|
||||||
|
ngx_module_link=$HTTP_SUB
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $HTTP_ADDITION = YES ]; then
|
||||||
|
ngx_module_name=ngx_http_addition_filter_module
|
||||||
|
ngx_module_incs=
|
||||||
|
ngx_module_deps=
|
||||||
|
ngx_module_srcs=src/http/modules/ngx_http_addition_filter_module.c
|
||||||
|
ngx_module_libs=
|
||||||
|
ngx_module_link=$HTTP_ADDITION
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $HTTP_GUNZIP = YES ]; then
|
||||||
|
have=NGX_HTTP_GZIP . auto/have
|
||||||
|
USE_ZLIB=YES
|
||||||
|
|
||||||
|
ngx_module_name=ngx_http_gunzip_filter_module
|
||||||
|
ngx_module_incs=
|
||||||
|
ngx_module_deps=
|
||||||
|
ngx_module_srcs=src/http/modules/ngx_http_gunzip_filter_module.c
|
||||||
|
ngx_module_libs=
|
||||||
|
ngx_module_link=$HTTP_GUNZIP
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $HTTP_USERID = YES ]; then
|
||||||
|
ngx_module_name=ngx_http_userid_filter_module
|
||||||
|
ngx_module_incs=
|
||||||
|
ngx_module_deps=
|
||||||
|
ngx_module_srcs=src/http/modules/ngx_http_userid_filter_module.c
|
||||||
|
ngx_module_libs=
|
||||||
|
ngx_module_link=$HTTP_USERID
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
fi
|
||||||
|
|
||||||
|
if :; then
|
||||||
|
ngx_module_name=ngx_http_headers_filter_module
|
||||||
|
ngx_module_incs=
|
||||||
|
ngx_module_deps=
|
||||||
|
ngx_module_srcs=src/http/modules/ngx_http_headers_filter_module.c
|
||||||
|
ngx_module_libs=
|
||||||
|
ngx_module_link=YES
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
ngx_module_type=HTTP_INIT_FILTER
|
||||||
|
HTTP_INIT_FILTER_MODULES=
|
||||||
|
|
||||||
|
if :; then
|
||||||
|
ngx_module_name=ngx_http_copy_filter_module
|
||||||
|
ngx_module_incs=
|
||||||
|
ngx_module_deps=
|
||||||
|
ngx_module_srcs=src/http/ngx_http_copy_filter_module.c
|
||||||
|
ngx_module_libs=
|
||||||
|
ngx_module_link=YES
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
fi
|
||||||
|
|
||||||
|
if :; then
|
||||||
|
ngx_module_name=ngx_http_range_body_filter_module
|
||||||
|
ngx_module_incs=
|
||||||
|
ngx_module_deps=
|
||||||
|
ngx_module_srcs=
|
||||||
|
ngx_module_libs=
|
||||||
|
ngx_module_link=YES
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
fi
|
||||||
|
|
||||||
|
if :; then
|
||||||
|
ngx_module_name=ngx_http_not_modified_filter_module
|
||||||
|
ngx_module_incs=
|
||||||
|
ngx_module_deps=
|
||||||
|
ngx_module_srcs=src/http/modules/ngx_http_not_modified_filter_module.c
|
||||||
|
ngx_module_libs=
|
||||||
|
ngx_module_link=YES
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $HTTP_SLICE = YES ]; then
|
||||||
|
ngx_module_name=ngx_http_slice_filter_module
|
||||||
|
ngx_module_incs=
|
||||||
|
ngx_module_deps=
|
||||||
|
ngx_module_srcs=src/http/modules/ngx_http_slice_filter_module.c
|
||||||
|
ngx_module_libs=
|
||||||
|
ngx_module_link=$HTTP_SLICE
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
ngx_module_type=HTTP
|
||||||
|
|
||||||
|
if [ $HTTP_V2 = YES ]; then
|
||||||
|
have=NGX_HTTP_V2 . auto/have
|
||||||
|
|
||||||
|
ngx_module_name=ngx_http_v2_module
|
||||||
|
ngx_module_incs=src/http/v2
|
||||||
|
ngx_module_deps="src/http/v2/ngx_http_v2.h \
|
||||||
|
src/http/v2/ngx_http_v2_module.h"
|
||||||
|
ngx_module_srcs="src/http/v2/ngx_http_v2.c \
|
||||||
|
src/http/v2/ngx_http_v2_table.c \
|
||||||
|
src/http/v2/ngx_http_v2_huff_decode.c \
|
||||||
|
src/http/v2/ngx_http_v2_huff_encode.c \
|
||||||
|
src/http/v2/ngx_http_v2_module.c"
|
||||||
|
ngx_module_libs=
|
||||||
|
ngx_module_link=$HTTP_V2
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $HTTP_SPDY = YES ]; then
|
||||||
|
have=NGX_HTTP_SPDY . auto/have
|
||||||
|
|
||||||
|
ngx_module_name=$HTTP_SPDY_MODULE
|
||||||
|
ngx_module_incs=src/http
|
||||||
|
ngx_module_deps=$HTTP_SPDY_DEPS
|
||||||
|
ngx_module_srcs=$HTTP_SPDY_SRCS
|
||||||
|
ngx_module_libs=
|
||||||
|
ngx_module_link=$HTTP_SPDY
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $HTTP_V2_HPACK_ENC = YES ]; then
|
||||||
|
have=NGX_HTTP_V2_HPACK_ENC . auto/have
|
||||||
|
fi
|
||||||
|
|
||||||
|
if :; then
|
||||||
|
ngx_module_name=ngx_http_static_module
|
||||||
|
ngx_module_incs=
|
||||||
|
ngx_module_deps=
|
||||||
|
ngx_module_srcs=src/http/modules/ngx_http_static_module.c
|
||||||
|
ngx_module_libs=
|
||||||
|
ngx_module_link=YES
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $HTTP_GZIP_STATIC = YES ]; then
|
||||||
|
have=NGX_HTTP_GZIP . auto/have
|
||||||
|
|
||||||
|
ngx_module_name=ngx_http_gzip_static_module
|
||||||
|
ngx_module_incs=
|
||||||
|
ngx_module_deps=
|
||||||
|
ngx_module_srcs=src/http/modules/ngx_http_gzip_static_module.c
|
||||||
|
ngx_module_libs=
|
||||||
|
ngx_module_link=$HTTP_GZIP_STATIC
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $HTTP_DAV = YES ]; then
|
||||||
|
have=NGX_HTTP_DAV . auto/have
|
||||||
|
|
||||||
|
ngx_module_name=ngx_http_dav_module
|
||||||
|
ngx_module_incs=
|
||||||
|
ngx_module_deps=
|
||||||
|
ngx_module_srcs=src/http/modules/ngx_http_dav_module.c
|
||||||
|
ngx_module_libs=
|
||||||
|
ngx_module_link=$HTTP_DAV
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $HTTP_AUTOINDEX = YES ]; then
|
||||||
|
ngx_module_name=ngx_http_autoindex_module
|
||||||
|
ngx_module_incs=
|
||||||
|
ngx_module_deps=
|
||||||
|
ngx_module_srcs=src/http/modules/ngx_http_autoindex_module.c
|
||||||
|
ngx_module_libs=
|
||||||
|
ngx_module_link=$HTTP_AUTOINDEX
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
fi
|
||||||
|
|
||||||
|
if :; then
|
||||||
|
ngx_module_name=ngx_http_index_module
|
||||||
|
ngx_module_incs=
|
||||||
|
ngx_module_deps=
|
||||||
|
ngx_module_srcs=src/http/modules/ngx_http_index_module.c
|
||||||
|
ngx_module_libs=
|
||||||
|
ngx_module_link=YES
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $HTTP_RANDOM_INDEX = YES ]; then
|
||||||
|
ngx_module_name=ngx_http_random_index_module
|
||||||
|
ngx_module_incs=
|
||||||
|
ngx_module_deps=
|
||||||
|
ngx_module_srcs=src/http/modules/ngx_http_random_index_module.c
|
||||||
|
ngx_module_libs=
|
||||||
|
ngx_module_link=$HTTP_RANDOM_INDEX
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $HTTP_MIRROR = YES ]; then
|
||||||
|
ngx_module_name=ngx_http_mirror_module
|
||||||
|
ngx_module_incs=
|
||||||
|
ngx_module_deps=
|
||||||
|
ngx_module_srcs=src/http/modules/ngx_http_mirror_module.c
|
||||||
|
ngx_module_libs=
|
||||||
|
ngx_module_link=$HTTP_MIRROR
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
fi
|
||||||
|
|
||||||
|
if :; then
|
||||||
|
ngx_module_name=ngx_http_try_files_module
|
||||||
|
ngx_module_incs=
|
||||||
|
ngx_module_deps=
|
||||||
|
ngx_module_srcs=src/http/modules/ngx_http_try_files_module.c
|
||||||
|
ngx_module_libs=
|
||||||
|
ngx_module_link=YES
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $HTTP_AUTH_REQUEST = YES ]; then
|
||||||
|
ngx_module_name=ngx_http_auth_request_module
|
||||||
|
ngx_module_incs=
|
||||||
|
ngx_module_deps=
|
||||||
|
ngx_module_srcs=src/http/modules/ngx_http_auth_request_module.c
|
||||||
|
ngx_module_libs=
|
||||||
|
ngx_module_link=$HTTP_AUTH_REQUEST
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $HTTP_AUTH_BASIC = YES ]; then
|
||||||
|
have=NGX_CRYPT . auto/have
|
||||||
|
|
||||||
|
ngx_module_name=ngx_http_auth_basic_module
|
||||||
|
ngx_module_incs=
|
||||||
|
ngx_module_deps=
|
||||||
|
ngx_module_srcs=src/http/modules/ngx_http_auth_basic_module.c
|
||||||
|
ngx_module_libs=$CRYPT_LIB
|
||||||
|
ngx_module_link=$HTTP_AUTH_BASIC
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $HTTP_ACCESS = YES ]; then
|
||||||
|
ngx_module_name=ngx_http_access_module
|
||||||
|
ngx_module_incs=
|
||||||
|
ngx_module_deps=
|
||||||
|
ngx_module_srcs=src/http/modules/ngx_http_access_module.c
|
||||||
|
ngx_module_libs=
|
||||||
|
ngx_module_link=$HTTP_ACCESS
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $HTTP_LIMIT_CONN = YES ]; then
|
||||||
|
ngx_module_name=ngx_http_limit_conn_module
|
||||||
|
ngx_module_incs=
|
||||||
|
ngx_module_deps=
|
||||||
|
ngx_module_srcs=src/http/modules/ngx_http_limit_conn_module.c
|
||||||
|
ngx_module_libs=
|
||||||
|
ngx_module_link=$HTTP_LIMIT_CONN
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $HTTP_LIMIT_REQ = YES ]; then
|
||||||
|
ngx_module_name=ngx_http_limit_req_module
|
||||||
|
ngx_module_incs=
|
||||||
|
ngx_module_deps=
|
||||||
|
ngx_module_srcs=src/http/modules/ngx_http_limit_req_module.c
|
||||||
|
ngx_module_libs=
|
||||||
|
ngx_module_link=$HTTP_LIMIT_REQ
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $HTTP_REALIP = YES ]; then
|
||||||
|
have=NGX_HTTP_REALIP . auto/have
|
||||||
|
have=NGX_HTTP_X_FORWARDED_FOR . auto/have
|
||||||
|
|
||||||
|
ngx_module_name=ngx_http_realip_module
|
||||||
|
ngx_module_incs=
|
||||||
|
ngx_module_deps=
|
||||||
|
ngx_module_srcs=src/http/modules/ngx_http_realip_module.c
|
||||||
|
ngx_module_libs=
|
||||||
|
ngx_module_link=$HTTP_REALIP
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $HTTP_STATUS = YES ]; then
|
||||||
|
ngx_module_name=ngx_http_status_module
|
||||||
|
ngx_module_incs=
|
||||||
|
ngx_module_deps=
|
||||||
|
ngx_module_srcs=src/http/modules/ngx_http_status_module.c
|
||||||
|
ngx_module_libs=
|
||||||
|
ngx_module_link=$HTTP_STATUS
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $HTTP_GEO = YES ]; then
|
||||||
|
have=NGX_HTTP_X_FORWARDED_FOR . auto/have
|
||||||
|
|
||||||
|
ngx_module_name=ngx_http_geo_module
|
||||||
|
ngx_module_incs=
|
||||||
|
ngx_module_deps=
|
||||||
|
ngx_module_srcs=src/http/modules/ngx_http_geo_module.c
|
||||||
|
ngx_module_libs=
|
||||||
|
ngx_module_link=$HTTP_GEO
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $HTTP_GEOIP != NO ]; then
|
||||||
|
have=NGX_HTTP_X_FORWARDED_FOR . auto/have
|
||||||
|
|
||||||
|
ngx_module_name=ngx_http_geoip_module
|
||||||
|
ngx_module_incs=
|
||||||
|
ngx_module_deps=
|
||||||
|
ngx_module_srcs=src/http/modules/ngx_http_geoip_module.c
|
||||||
|
ngx_module_libs=GEOIP
|
||||||
|
ngx_module_link=$HTTP_GEOIP
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $HTTP_MAP = YES ]; then
|
||||||
|
ngx_module_name=ngx_http_map_module
|
||||||
|
ngx_module_incs=
|
||||||
|
ngx_module_deps=
|
||||||
|
ngx_module_srcs=src/http/modules/ngx_http_map_module.c
|
||||||
|
ngx_module_libs=
|
||||||
|
ngx_module_link=$HTTP_MAP
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $HTTP_SPLIT_CLIENTS = YES ]; then
|
||||||
|
ngx_module_name=ngx_http_split_clients_module
|
||||||
|
ngx_module_incs=
|
||||||
|
ngx_module_deps=
|
||||||
|
ngx_module_srcs=src/http/modules/ngx_http_split_clients_module.c
|
||||||
|
ngx_module_libs=
|
||||||
|
ngx_module_link=$HTTP_SPLIT_CLIENTS
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $HTTP_REFERER = YES ]; then
|
||||||
|
ngx_module_name=ngx_http_referer_module
|
||||||
|
ngx_module_incs=
|
||||||
|
ngx_module_deps=
|
||||||
|
ngx_module_srcs=src/http/modules/ngx_http_referer_module.c
|
||||||
|
ngx_module_libs=
|
||||||
|
ngx_module_link=$HTTP_REFERER
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $HTTP_REWRITE = YES -a $USE_PCRE != DISABLED ]; then
|
||||||
|
USE_PCRE=YES
|
||||||
|
|
||||||
|
ngx_module_name=ngx_http_rewrite_module
|
||||||
|
ngx_module_incs=
|
||||||
|
ngx_module_deps=
|
||||||
|
ngx_module_srcs=src/http/modules/ngx_http_rewrite_module.c
|
||||||
|
ngx_module_libs=
|
||||||
|
ngx_module_link=$HTTP_REWRITE
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $HTTP_SSL = YES ]; then
|
||||||
|
USE_OPENSSL=YES
|
||||||
|
have=NGX_HTTP_SSL . auto/have
|
||||||
|
|
||||||
|
ngx_module_name=ngx_http_ssl_module
|
||||||
|
ngx_module_incs=
|
||||||
|
ngx_module_deps=src/http/modules/ngx_http_ssl_module.h
|
||||||
|
ngx_module_srcs=src/http/modules/ngx_http_ssl_module.c
|
||||||
|
ngx_module_libs=
|
||||||
|
ngx_module_link=$HTTP_SSL
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $HTTP_PROXY = YES ]; then
|
||||||
|
have=NGX_HTTP_X_FORWARDED_FOR . auto/have
|
||||||
|
|
||||||
|
ngx_module_name=ngx_http_proxy_module
|
||||||
|
ngx_module_incs=
|
||||||
|
ngx_module_deps=
|
||||||
|
ngx_module_srcs=src/http/modules/ngx_http_proxy_module.c
|
||||||
|
ngx_module_libs=
|
||||||
|
ngx_module_link=$HTTP_PROXY
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $HTTP_FASTCGI = YES ]; then
|
||||||
|
ngx_module_name=ngx_http_fastcgi_module
|
||||||
|
ngx_module_incs=
|
||||||
|
ngx_module_deps=
|
||||||
|
ngx_module_srcs=src/http/modules/ngx_http_fastcgi_module.c
|
||||||
|
ngx_module_libs=
|
||||||
|
ngx_module_link=$HTTP_FASTCGI
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $HTTP_UWSGI = YES ]; then
|
||||||
|
ngx_module_name=ngx_http_uwsgi_module
|
||||||
|
ngx_module_incs=
|
||||||
|
ngx_module_deps=
|
||||||
|
ngx_module_srcs=src/http/modules/ngx_http_uwsgi_module.c
|
||||||
|
ngx_module_libs=
|
||||||
|
ngx_module_link=$HTTP_UWSGI
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $HTTP_SCGI = YES ]; then
|
||||||
|
ngx_module_name=ngx_http_scgi_module
|
||||||
|
ngx_module_incs=
|
||||||
|
ngx_module_deps=
|
||||||
|
ngx_module_srcs=src/http/modules/ngx_http_scgi_module.c
|
||||||
|
ngx_module_libs=
|
||||||
|
ngx_module_link=$HTTP_SCGI
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $HTTP_PERL != NO ]; then
|
||||||
|
ngx_module_name=ngx_http_perl_module
|
||||||
|
ngx_module_incs=src/http/modules/perl
|
||||||
|
ngx_module_deps=src/http/modules/perl/ngx_http_perl_module.h
|
||||||
|
ngx_module_srcs=src/http/modules/perl/ngx_http_perl_module.c
|
||||||
|
ngx_module_libs=PERL
|
||||||
|
ngx_module_link=$HTTP_PERL
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $HTTP_MEMCACHED = YES ]; then
|
||||||
|
ngx_module_name=ngx_http_memcached_module
|
||||||
|
ngx_module_incs=
|
||||||
|
ngx_module_deps=
|
||||||
|
ngx_module_srcs=src/http/modules/ngx_http_memcached_module.c
|
||||||
|
ngx_module_libs=
|
||||||
|
ngx_module_link=$HTTP_MEMCACHED
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $HTTP_EMPTY_GIF = YES ]; then
|
||||||
|
ngx_module_name=ngx_http_empty_gif_module
|
||||||
|
ngx_module_incs=
|
||||||
|
ngx_module_deps=
|
||||||
|
ngx_module_srcs=src/http/modules/ngx_http_empty_gif_module.c
|
||||||
|
ngx_module_libs=
|
||||||
|
ngx_module_link=$HTTP_EMPTY_GIF
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $HTTP_BROWSER = YES ]; then
|
||||||
|
ngx_module_name=ngx_http_browser_module
|
||||||
|
ngx_module_incs=
|
||||||
|
ngx_module_deps=
|
||||||
|
ngx_module_srcs=src/http/modules/ngx_http_browser_module.c
|
||||||
|
ngx_module_libs=
|
||||||
|
ngx_module_link=$HTTP_BROWSER
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $HTTP_SECURE_LINK = YES ]; then
|
||||||
|
ngx_module_name=ngx_http_secure_link_module
|
||||||
|
ngx_module_incs=
|
||||||
|
ngx_module_deps=
|
||||||
|
ngx_module_srcs=src/http/modules/ngx_http_secure_link_module.c
|
||||||
|
ngx_module_libs=
|
||||||
|
ngx_module_link=$HTTP_SECURE_LINK
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $HTTP_DEGRADATION = YES ]; then
|
||||||
|
have=NGX_HTTP_DEGRADATION . auto/have
|
||||||
|
|
||||||
|
ngx_module_name=ngx_http_degradation_module
|
||||||
|
ngx_module_incs=
|
||||||
|
ngx_module_deps=
|
||||||
|
ngx_module_srcs=src/http/modules/ngx_http_degradation_module.c
|
||||||
|
ngx_module_libs=
|
||||||
|
ngx_module_link=$HTTP_DEGRADATION
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $HTTP_FLV = YES ]; then
|
||||||
|
ngx_module_name=ngx_http_flv_module
|
||||||
|
ngx_module_incs=
|
||||||
|
ngx_module_deps=
|
||||||
|
ngx_module_srcs=src/http/modules/ngx_http_flv_module.c
|
||||||
|
ngx_module_libs=
|
||||||
|
ngx_module_link=$HTTP_FLV
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $HTTP_MP4 = YES ]; then
|
||||||
|
ngx_module_name=ngx_http_mp4_module
|
||||||
|
ngx_module_incs=
|
||||||
|
ngx_module_deps=
|
||||||
|
ngx_module_srcs=src/http/modules/ngx_http_mp4_module.c
|
||||||
|
ngx_module_libs=
|
||||||
|
ngx_module_link=$HTTP_MP4
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $HTTP_UPSTREAM_HASH = YES ]; then
|
||||||
|
ngx_module_name=ngx_http_upstream_hash_module
|
||||||
|
ngx_module_incs=
|
||||||
|
ngx_module_deps=
|
||||||
|
ngx_module_srcs=src/http/modules/ngx_http_upstream_hash_module.c
|
||||||
|
ngx_module_libs=
|
||||||
|
ngx_module_link=$HTTP_UPSTREAM_HASH
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $HTTP_UPSTREAM_IP_HASH = YES ]; then
|
||||||
|
ngx_module_name=ngx_http_upstream_ip_hash_module
|
||||||
|
ngx_module_incs=
|
||||||
|
ngx_module_deps=
|
||||||
|
ngx_module_srcs=src/http/modules/ngx_http_upstream_ip_hash_module.c
|
||||||
|
ngx_module_libs=
|
||||||
|
ngx_module_link=$HTTP_UPSTREAM_IP_HASH
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $HTTP_UPSTREAM_LEAST_CONN = YES ]; then
|
||||||
|
ngx_module_name=ngx_http_upstream_least_conn_module
|
||||||
|
ngx_module_incs=
|
||||||
|
ngx_module_deps=
|
||||||
|
ngx_module_srcs=src/http/modules/ngx_http_upstream_least_conn_module.c
|
||||||
|
ngx_module_libs=
|
||||||
|
ngx_module_link=$HTTP_UPSTREAM_LEAST_CONN
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $HTTP_UPSTREAM_KEEPALIVE = YES ]; then
|
||||||
|
ngx_module_name=ngx_http_upstream_keepalive_module
|
||||||
|
ngx_module_incs=
|
||||||
|
ngx_module_deps=
|
||||||
|
ngx_module_srcs=src/http/modules/ngx_http_upstream_keepalive_module.c
|
||||||
|
ngx_module_libs=
|
||||||
|
ngx_module_link=$HTTP_UPSTREAM_KEEPALIVE
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $HTTP_UPSTREAM_ZONE = YES ]; then
|
||||||
|
have=NGX_HTTP_UPSTREAM_ZONE . auto/have
|
||||||
|
|
||||||
|
ngx_module_name=ngx_http_upstream_zone_module
|
||||||
|
ngx_module_incs=
|
||||||
|
ngx_module_deps=
|
||||||
|
ngx_module_srcs=src/http/modules/ngx_http_upstream_zone_module.c
|
||||||
|
ngx_module_libs=
|
||||||
|
ngx_module_link=$HTTP_UPSTREAM_ZONE
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $HTTP_STUB_STATUS = YES ]; then
|
||||||
|
have=NGX_STAT_STUB . auto/have
|
||||||
|
|
||||||
|
ngx_module_name=ngx_http_stub_status_module
|
||||||
|
ngx_module_incs=
|
||||||
|
ngx_module_deps=
|
||||||
|
ngx_module_srcs=src/http/modules/ngx_http_stub_status_module.c
|
||||||
|
ngx_module_libs=
|
||||||
|
ngx_module_link=$HTTP_STUB_STATUS
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
if [ $MAIL != NO ]; then
|
||||||
|
MAIL_MODULES=
|
||||||
|
MAIL_DEPS=
|
||||||
|
MAIL_INCS=
|
||||||
|
|
||||||
|
ngx_module_type=MAIL
|
||||||
|
ngx_module_libs=
|
||||||
|
ngx_module_link=YES
|
||||||
|
|
||||||
|
ngx_module_order=
|
||||||
|
|
||||||
|
ngx_module_name="ngx_mail_module ngx_mail_core_module"
|
||||||
|
ngx_module_incs="src/mail"
|
||||||
|
ngx_module_deps="src/mail/ngx_mail.h"
|
||||||
|
ngx_module_srcs="src/mail/ngx_mail.c \
|
||||||
|
src/mail/ngx_mail_core_module.c \
|
||||||
|
src/mail/ngx_mail_handler.c \
|
||||||
|
src/mail/ngx_mail_parse.c"
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
|
||||||
|
ngx_module_incs=
|
||||||
|
|
||||||
|
if [ $MAIL_SSL = YES ]; then
|
||||||
|
USE_OPENSSL=YES
|
||||||
|
have=NGX_MAIL_SSL . auto/have
|
||||||
|
|
||||||
|
ngx_module_name=ngx_mail_ssl_module
|
||||||
|
ngx_module_deps=src/mail/ngx_mail_ssl_module.h
|
||||||
|
ngx_module_srcs=src/mail/ngx_mail_ssl_module.c
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $MAIL_POP3 = YES ]; then
|
||||||
|
ngx_module_name=ngx_mail_pop3_module
|
||||||
|
ngx_module_deps=src/mail/ngx_mail_pop3_module.h
|
||||||
|
ngx_module_srcs="src/mail/ngx_mail_pop3_module.c \
|
||||||
|
src/mail/ngx_mail_pop3_handler.c"
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $MAIL_IMAP = YES ]; then
|
||||||
|
ngx_module_name=ngx_mail_imap_module
|
||||||
|
ngx_module_deps=src/mail/ngx_mail_imap_module.h
|
||||||
|
ngx_module_srcs="src/mail/ngx_mail_imap_module.c \
|
||||||
|
src/mail/ngx_mail_imap_handler.c"
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $MAIL_SMTP = YES ]; then
|
||||||
|
ngx_module_name=ngx_mail_smtp_module
|
||||||
|
ngx_module_deps=src/mail/ngx_mail_smtp_module.h
|
||||||
|
ngx_module_srcs="src/mail/ngx_mail_smtp_module.c \
|
||||||
|
src/mail/ngx_mail_smtp_handler.c"
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
fi
|
||||||
|
|
||||||
|
ngx_module_name=ngx_mail_auth_http_module
|
||||||
|
ngx_module_deps=
|
||||||
|
ngx_module_srcs=src/mail/ngx_mail_auth_http_module.c
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
|
||||||
|
ngx_module_name=ngx_mail_proxy_module
|
||||||
|
ngx_module_deps=
|
||||||
|
ngx_module_srcs=src/mail/ngx_mail_proxy_module.c
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
if [ $STREAM != NO ]; then
|
||||||
|
STREAM_MODULES=
|
||||||
|
STREAM_DEPS=
|
||||||
|
STREAM_INCS=
|
||||||
|
|
||||||
|
ngx_module_type=STREAM
|
||||||
|
ngx_module_libs=
|
||||||
|
ngx_module_link=YES
|
||||||
|
|
||||||
|
ngx_module_order=
|
||||||
|
|
||||||
|
ngx_module_name="ngx_stream_module \
|
||||||
|
ngx_stream_core_module \
|
||||||
|
ngx_stream_log_module \
|
||||||
|
ngx_stream_proxy_module \
|
||||||
|
ngx_stream_upstream_module \
|
||||||
|
ngx_stream_write_filter_module"
|
||||||
|
ngx_module_incs="src/stream"
|
||||||
|
ngx_module_deps="src/stream/ngx_stream.h \
|
||||||
|
src/stream/ngx_stream_variables.h \
|
||||||
|
src/stream/ngx_stream_script.h \
|
||||||
|
src/stream/ngx_stream_upstream.h \
|
||||||
|
src/stream/ngx_stream_upstream_round_robin.h"
|
||||||
|
ngx_module_srcs="src/stream/ngx_stream.c \
|
||||||
|
src/stream/ngx_stream_variables.c \
|
||||||
|
src/stream/ngx_stream_script.c \
|
||||||
|
src/stream/ngx_stream_handler.c \
|
||||||
|
src/stream/ngx_stream_core_module.c \
|
||||||
|
src/stream/ngx_stream_log_module.c \
|
||||||
|
src/stream/ngx_stream_proxy_module.c \
|
||||||
|
src/stream/ngx_stream_upstream.c \
|
||||||
|
src/stream/ngx_stream_upstream_round_robin.c \
|
||||||
|
src/stream/ngx_stream_write_filter_module.c"
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
|
||||||
|
ngx_module_incs=
|
||||||
|
|
||||||
|
if [ $STREAM_SSL = YES ]; then
|
||||||
|
USE_OPENSSL=YES
|
||||||
|
have=NGX_STREAM_SSL . auto/have
|
||||||
|
|
||||||
|
ngx_module_name=ngx_stream_ssl_module
|
||||||
|
ngx_module_deps=src/stream/ngx_stream_ssl_module.h
|
||||||
|
ngx_module_srcs=src/stream/ngx_stream_ssl_module.c
|
||||||
|
ngx_module_libs=
|
||||||
|
ngx_module_link=$STREAM_SSL
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $STREAM_REALIP = YES ]; then
|
||||||
|
ngx_module_name=ngx_stream_realip_module
|
||||||
|
ngx_module_deps=
|
||||||
|
ngx_module_srcs=src/stream/ngx_stream_realip_module.c
|
||||||
|
ngx_module_libs=
|
||||||
|
ngx_module_link=$STREAM_REALIP
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $STREAM_LIMIT_CONN = YES ]; then
|
||||||
|
ngx_module_name=ngx_stream_limit_conn_module
|
||||||
|
ngx_module_deps=
|
||||||
|
ngx_module_srcs=src/stream/ngx_stream_limit_conn_module.c
|
||||||
|
ngx_module_libs=
|
||||||
|
ngx_module_link=$STREAM_LIMIT_CONN
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $STREAM_ACCESS = YES ]; then
|
||||||
|
ngx_module_name=ngx_stream_access_module
|
||||||
|
ngx_module_deps=
|
||||||
|
ngx_module_srcs=src/stream/ngx_stream_access_module.c
|
||||||
|
ngx_module_libs=
|
||||||
|
ngx_module_link=$STREAM_ACCESS
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $STREAM_GEO = YES ]; then
|
||||||
|
ngx_module_name=ngx_stream_geo_module
|
||||||
|
ngx_module_deps=
|
||||||
|
ngx_module_srcs=src/stream/ngx_stream_geo_module.c
|
||||||
|
ngx_module_libs=
|
||||||
|
ngx_module_link=$STREAM_GEO
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $STREAM_GEOIP != NO ]; then
|
||||||
|
ngx_module_name=ngx_stream_geoip_module
|
||||||
|
ngx_module_deps=
|
||||||
|
ngx_module_srcs=src/stream/ngx_stream_geoip_module.c
|
||||||
|
ngx_module_libs=GEOIP
|
||||||
|
ngx_module_link=$STREAM_GEOIP
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $STREAM_MAP = YES ]; then
|
||||||
|
ngx_module_name=ngx_stream_map_module
|
||||||
|
ngx_module_deps=
|
||||||
|
ngx_module_srcs=src/stream/ngx_stream_map_module.c
|
||||||
|
ngx_module_libs=
|
||||||
|
ngx_module_link=$STREAM_MAP
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $STREAM_SPLIT_CLIENTS = YES ]; then
|
||||||
|
ngx_module_name=ngx_stream_split_clients_module
|
||||||
|
ngx_module_deps=
|
||||||
|
ngx_module_srcs=src/stream/ngx_stream_split_clients_module.c
|
||||||
|
ngx_module_libs=
|
||||||
|
ngx_module_link=$STREAM_SPLIT_CLIENTS
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $STREAM_RETURN = YES ]; then
|
||||||
|
ngx_module_name=ngx_stream_return_module
|
||||||
|
ngx_module_deps=
|
||||||
|
ngx_module_srcs=src/stream/ngx_stream_return_module.c
|
||||||
|
ngx_module_libs=
|
||||||
|
ngx_module_link=$STREAM_RETURN
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $STREAM_UPSTREAM_HASH = YES ]; then
|
||||||
|
ngx_module_name=ngx_stream_upstream_hash_module
|
||||||
|
ngx_module_deps=
|
||||||
|
ngx_module_srcs=src/stream/ngx_stream_upstream_hash_module.c
|
||||||
|
ngx_module_libs=
|
||||||
|
ngx_module_link=$STREAM_UPSTREAM_HASH
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $STREAM_UPSTREAM_LEAST_CONN = YES ]; then
|
||||||
|
ngx_module_name=ngx_stream_upstream_least_conn_module
|
||||||
|
ngx_module_deps=
|
||||||
|
ngx_module_srcs=src/stream/ngx_stream_upstream_least_conn_module.c
|
||||||
|
ngx_module_libs=
|
||||||
|
ngx_module_link=$STREAM_UPSTREAM_LEAST_CONN
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $STREAM_UPSTREAM_ZONE = YES ]; then
|
||||||
|
have=NGX_STREAM_UPSTREAM_ZONE . auto/have
|
||||||
|
|
||||||
|
ngx_module_name=ngx_stream_upstream_zone_module
|
||||||
|
ngx_module_deps=
|
||||||
|
ngx_module_srcs=src/stream/ngx_stream_upstream_zone_module.c
|
||||||
|
ngx_module_libs=
|
||||||
|
ngx_module_link=$STREAM_UPSTREAM_ZONE
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $STREAM_SSL_PREREAD = YES ]; then
|
||||||
|
ngx_module_name=ngx_stream_ssl_preread_module
|
||||||
|
ngx_module_deps=
|
||||||
|
ngx_module_srcs=src/stream/ngx_stream_ssl_preread_module.c
|
||||||
|
ngx_module_libs=
|
||||||
|
ngx_module_link=$STREAM_SSL_PREREAD
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
#if [ -r $NGX_OBJS/auto ]; then
|
||||||
|
# . $NGX_OBJS/auto
|
||||||
|
#fi
|
||||||
|
|
||||||
|
|
||||||
|
if test -n "$NGX_ADDONS"; then
|
||||||
|
|
||||||
|
echo configuring additional modules
|
||||||
|
|
||||||
|
for ngx_addon_dir in $NGX_ADDONS
|
||||||
|
do
|
||||||
|
echo "adding module in $ngx_addon_dir"
|
||||||
|
|
||||||
|
ngx_module_type=
|
||||||
|
ngx_module_name=
|
||||||
|
ngx_module_incs=
|
||||||
|
ngx_module_deps=
|
||||||
|
ngx_module_srcs=
|
||||||
|
ngx_module_libs=
|
||||||
|
ngx_module_order=
|
||||||
|
ngx_module_link=ADDON
|
||||||
|
|
||||||
|
if test -f $ngx_addon_dir/config; then
|
||||||
|
. $ngx_addon_dir/config
|
||||||
|
|
||||||
|
echo " + $ngx_addon_name was configured"
|
||||||
|
|
||||||
|
else
|
||||||
|
echo "$0: error: no $ngx_addon_dir/config was found"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
if test -n "$DYNAMIC_ADDONS"; then
|
||||||
|
|
||||||
|
echo configuring additional dynamic modules
|
||||||
|
|
||||||
|
for ngx_addon_dir in $DYNAMIC_ADDONS
|
||||||
|
do
|
||||||
|
echo "adding module in $ngx_addon_dir"
|
||||||
|
|
||||||
|
ngx_module_type=
|
||||||
|
ngx_module_name=
|
||||||
|
ngx_module_incs=
|
||||||
|
ngx_module_deps=
|
||||||
|
ngx_module_srcs=
|
||||||
|
ngx_module_libs=
|
||||||
|
ngx_module_order=
|
||||||
|
ngx_module_link=DYNAMIC
|
||||||
|
|
||||||
|
if test -f $ngx_addon_dir/config; then
|
||||||
|
. $ngx_addon_dir/config
|
||||||
|
|
||||||
|
echo " + $ngx_addon_name was configured"
|
||||||
|
|
||||||
|
else
|
||||||
|
echo "$0: error: no $ngx_addon_dir/config was found"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
if [ $USE_OPENSSL = YES ]; then
|
||||||
|
ngx_module_type=CORE
|
||||||
|
ngx_module_name=ngx_openssl_module
|
||||||
|
ngx_module_incs=
|
||||||
|
ngx_module_deps=src/event/ngx_event_openssl.h
|
||||||
|
ngx_module_srcs="src/event/ngx_event_openssl.c
|
||||||
|
src/event/ngx_event_openssl_stapling.c"
|
||||||
|
ngx_module_libs=
|
||||||
|
ngx_module_link=YES
|
||||||
|
ngx_module_order=
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
if [ $USE_PCRE = YES ]; then
|
||||||
|
ngx_module_type=CORE
|
||||||
|
ngx_module_name=ngx_regex_module
|
||||||
|
ngx_module_incs=
|
||||||
|
ngx_module_deps=src/core/ngx_regex.h
|
||||||
|
ngx_module_srcs=src/core/ngx_regex.c
|
||||||
|
ngx_module_libs=
|
||||||
|
ngx_module_link=YES
|
||||||
|
ngx_module_order=
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
modules="$CORE_MODULES $EVENT_MODULES"
|
||||||
|
|
||||||
|
|
||||||
|
# thread pool module should be initialized after events
|
||||||
|
if [ $USE_THREADS = YES ]; then
|
||||||
|
modules="$modules $THREAD_POOL_MODULE"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
if [ $HTTP = YES ]; then
|
||||||
|
modules="$modules $HTTP_MODULES $HTTP_FILTER_MODULES \
|
||||||
|
$HTTP_AUX_FILTER_MODULES $HTTP_INIT_FILTER_MODULES"
|
||||||
|
|
||||||
|
NGX_ADDON_DEPS="$NGX_ADDON_DEPS \$(HTTP_DEPS)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
if [ $MAIL != NO ]; then
|
||||||
|
|
||||||
|
if [ $MAIL = YES ]; then
|
||||||
|
modules="$modules $MAIL_MODULES"
|
||||||
|
|
||||||
|
elif [ $MAIL = DYNAMIC ]; then
|
||||||
|
ngx_module_name=$MAIL_MODULES
|
||||||
|
ngx_module_incs=
|
||||||
|
ngx_module_deps=
|
||||||
|
ngx_module_srcs=$MAIL_SRCS
|
||||||
|
ngx_module_libs=
|
||||||
|
ngx_module_link=DYNAMIC
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
fi
|
||||||
|
|
||||||
|
NGX_ADDON_DEPS="$NGX_ADDON_DEPS \$(MAIL_DEPS)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
if [ $STREAM != NO ]; then
|
||||||
|
|
||||||
|
if [ $STREAM = YES ]; then
|
||||||
|
modules="$modules $STREAM_MODULES"
|
||||||
|
|
||||||
|
elif [ $STREAM = DYNAMIC ]; then
|
||||||
|
ngx_module_name=$STREAM_MODULES
|
||||||
|
ngx_module_incs=
|
||||||
|
ngx_module_deps=
|
||||||
|
ngx_module_srcs=$STREAM_SRCS
|
||||||
|
ngx_module_libs=
|
||||||
|
ngx_module_link=DYNAMIC
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
fi
|
||||||
|
|
||||||
|
NGX_ADDON_DEPS="$NGX_ADDON_DEPS \$(STREAM_DEPS)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
ngx_module_type=MISC
|
||||||
|
MISC_MODULES=
|
||||||
|
|
||||||
|
if [ $NGX_GOOGLE_PERFTOOLS = YES ]; then
|
||||||
|
ngx_module_name=ngx_google_perftools_module
|
||||||
|
ngx_module_incs=
|
||||||
|
ngx_module_deps=
|
||||||
|
ngx_module_srcs=src/misc/ngx_google_perftools_module.c
|
||||||
|
ngx_module_libs=
|
||||||
|
ngx_module_link=$NGX_GOOGLE_PERFTOOLS
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $NGX_CPP_TEST = YES ]; then
|
||||||
|
ngx_module_name=
|
||||||
|
ngx_module_incs=
|
||||||
|
ngx_module_deps=
|
||||||
|
ngx_module_srcs=src/misc/ngx_cpp_test_module.cpp
|
||||||
|
ngx_module_libs=-lstdc++
|
||||||
|
ngx_module_link=$NGX_CPP_TEST
|
||||||
|
|
||||||
|
. auto/module
|
||||||
|
fi
|
||||||
|
|
||||||
|
modules="$modules $MISC_MODULES"
|
||||||
|
|
||||||
|
|
||||||
|
if [ $NGX_COMPAT = YES ]; then
|
||||||
|
have=NGX_COMPAT . auto/have
|
||||||
|
have=NGX_HTTP_GZIP . auto/have
|
||||||
|
have=NGX_HTTP_DAV . auto/have
|
||||||
|
have=NGX_HTTP_REALIP . auto/have
|
||||||
|
have=NGX_HTTP_X_FORWARDED_FOR . auto/have
|
||||||
|
have=NGX_HTTP_HEADERS . auto/have
|
||||||
|
have=NGX_HTTP_UPSTREAM_ZONE . auto/have
|
||||||
|
have=NGX_STREAM_UPSTREAM_ZONE . auto/have
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
cat << END > $NGX_MODULES_C
|
||||||
|
|
||||||
|
#include <ngx_config.h>
|
||||||
|
#include <ngx_core.h>
|
||||||
|
|
||||||
|
$NGX_PRAGMA
|
||||||
|
|
||||||
|
END
|
||||||
|
|
||||||
|
for mod in $modules
|
||||||
|
do
|
||||||
|
echo "extern ngx_module_t $mod;" >> $NGX_MODULES_C
|
||||||
|
done
|
||||||
|
|
||||||
|
echo >> $NGX_MODULES_C
|
||||||
|
echo 'ngx_module_t *ngx_modules[] = {' >> $NGX_MODULES_C
|
||||||
|
|
||||||
|
for mod in $modules
|
||||||
|
do
|
||||||
|
echo " &$mod," >> $NGX_MODULES_C
|
||||||
|
done
|
||||||
|
|
||||||
|
cat << END >> $NGX_MODULES_C
|
||||||
|
NULL
|
||||||
|
};
|
||||||
|
|
||||||
|
END
|
||||||
|
|
||||||
|
echo 'char *ngx_module_names[] = {' >> $NGX_MODULES_C
|
||||||
|
|
||||||
|
for mod in $modules
|
||||||
|
do
|
||||||
|
echo " \"$mod\"," >> $NGX_MODULES_C
|
||||||
|
done
|
||||||
|
|
||||||
|
cat << END >> $NGX_MODULES_C
|
||||||
|
NULL
|
||||||
|
};
|
||||||
|
|
||||||
|
END
|
||||||
+12
@@ -0,0 +1,12 @@
|
|||||||
|
|
||||||
|
# Copyright (C) Igor Sysoev
|
||||||
|
# Copyright (C) Nginx, Inc.
|
||||||
|
|
||||||
|
|
||||||
|
cat << END >> $NGX_AUTO_CONFIG_H
|
||||||
|
|
||||||
|
#ifndef $have
|
||||||
|
#define $have 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
END
|
||||||
+616
@@ -0,0 +1,616 @@
|
|||||||
|
|
||||||
|
# Copyright (C) Igor Sysoev
|
||||||
|
# Copyright (C) Nginx, Inc.
|
||||||
|
|
||||||
|
|
||||||
|
help=no
|
||||||
|
|
||||||
|
NGX_PREFIX=
|
||||||
|
NGX_SBIN_PATH=
|
||||||
|
NGX_MODULES_PATH=
|
||||||
|
NGX_CONF_PREFIX=
|
||||||
|
NGX_CONF_PATH=
|
||||||
|
NGX_ERROR_LOG_PATH=
|
||||||
|
NGX_PID_PATH=
|
||||||
|
NGX_LOCK_PATH=
|
||||||
|
NGX_USER=
|
||||||
|
NGX_GROUP=
|
||||||
|
NGX_BUILD=
|
||||||
|
|
||||||
|
CC=${CC:-cc}
|
||||||
|
CPP=
|
||||||
|
NGX_OBJS=objs
|
||||||
|
|
||||||
|
NGX_DEBUG=NO
|
||||||
|
NGX_CC_OPT=
|
||||||
|
NGX_LD_OPT=
|
||||||
|
CPU=NO
|
||||||
|
|
||||||
|
NGX_RPATH=NO
|
||||||
|
|
||||||
|
NGX_TEST_BUILD_DEVPOLL=NO
|
||||||
|
NGX_TEST_BUILD_EVENTPORT=NO
|
||||||
|
NGX_TEST_BUILD_EPOLL=NO
|
||||||
|
NGX_TEST_BUILD_SOLARIS_SENDFILEV=NO
|
||||||
|
|
||||||
|
NGX_PLATFORM=
|
||||||
|
NGX_WINE=
|
||||||
|
|
||||||
|
EVENT_FOUND=NO
|
||||||
|
|
||||||
|
EVENT_SELECT=NO
|
||||||
|
EVENT_POLL=NO
|
||||||
|
|
||||||
|
USE_THREADS=NO
|
||||||
|
|
||||||
|
NGX_FILE_AIO=NO
|
||||||
|
|
||||||
|
HTTP=YES
|
||||||
|
|
||||||
|
NGX_HTTP_LOG_PATH=
|
||||||
|
NGX_HTTP_CLIENT_TEMP_PATH=
|
||||||
|
NGX_HTTP_PROXY_TEMP_PATH=
|
||||||
|
NGX_HTTP_FASTCGI_TEMP_PATH=
|
||||||
|
NGX_HTTP_UWSGI_TEMP_PATH=
|
||||||
|
NGX_HTTP_SCGI_TEMP_PATH=
|
||||||
|
|
||||||
|
HTTP_CACHE=YES
|
||||||
|
HTTP_CHARSET=YES
|
||||||
|
HTTP_GZIP=YES
|
||||||
|
HTTP_SSL=NO
|
||||||
|
HTTP_V2=NO
|
||||||
|
HTTP_V2_HPACK_ENC=NO
|
||||||
|
HTTP_SPDY=NO
|
||||||
|
HTTP_SSI=YES
|
||||||
|
HTTP_POSTPONE=NO
|
||||||
|
HTTP_REALIP=NO
|
||||||
|
HTTP_XSLT=NO
|
||||||
|
HTTP_IMAGE_FILTER=NO
|
||||||
|
HTTP_SUB=NO
|
||||||
|
HTTP_ADDITION=NO
|
||||||
|
HTTP_DAV=NO
|
||||||
|
HTTP_ACCESS=YES
|
||||||
|
HTTP_AUTH_BASIC=YES
|
||||||
|
HTTP_AUTH_REQUEST=NO
|
||||||
|
HTTP_MIRROR=YES
|
||||||
|
HTTP_USERID=YES
|
||||||
|
HTTP_SLICE=NO
|
||||||
|
HTTP_AUTOINDEX=YES
|
||||||
|
HTTP_RANDOM_INDEX=NO
|
||||||
|
HTTP_STATUS=NO
|
||||||
|
HTTP_GEO=YES
|
||||||
|
HTTP_GEOIP=NO
|
||||||
|
HTTP_MAP=YES
|
||||||
|
HTTP_SPLIT_CLIENTS=YES
|
||||||
|
HTTP_REFERER=YES
|
||||||
|
HTTP_REWRITE=YES
|
||||||
|
HTTP_PROXY=YES
|
||||||
|
HTTP_FASTCGI=YES
|
||||||
|
HTTP_UWSGI=YES
|
||||||
|
HTTP_SCGI=YES
|
||||||
|
HTTP_PERL=NO
|
||||||
|
HTTP_MEMCACHED=YES
|
||||||
|
HTTP_LIMIT_CONN=YES
|
||||||
|
HTTP_LIMIT_REQ=YES
|
||||||
|
HTTP_EMPTY_GIF=YES
|
||||||
|
HTTP_BROWSER=YES
|
||||||
|
HTTP_SECURE_LINK=NO
|
||||||
|
HTTP_DEGRADATION=NO
|
||||||
|
HTTP_FLV=NO
|
||||||
|
HTTP_MP4=NO
|
||||||
|
HTTP_GUNZIP=NO
|
||||||
|
HTTP_GZIP_STATIC=NO
|
||||||
|
HTTP_UPSTREAM_HASH=YES
|
||||||
|
HTTP_UPSTREAM_IP_HASH=YES
|
||||||
|
HTTP_UPSTREAM_LEAST_CONN=YES
|
||||||
|
HTTP_UPSTREAM_KEEPALIVE=YES
|
||||||
|
HTTP_UPSTREAM_ZONE=YES
|
||||||
|
|
||||||
|
# STUB
|
||||||
|
HTTP_STUB_STATUS=NO
|
||||||
|
|
||||||
|
MAIL=NO
|
||||||
|
MAIL_SSL=NO
|
||||||
|
MAIL_POP3=YES
|
||||||
|
MAIL_IMAP=YES
|
||||||
|
MAIL_SMTP=YES
|
||||||
|
|
||||||
|
STREAM=NO
|
||||||
|
STREAM_SSL=NO
|
||||||
|
STREAM_LIMIT_CONN=YES
|
||||||
|
STREAM_ACCESS=YES
|
||||||
|
STREAM_GEOIP=NO
|
||||||
|
STREAM_MAP=YES
|
||||||
|
STREAM_SPLIT_CLIENTS=YES
|
||||||
|
STREAM_RETURN=YES
|
||||||
|
STREAM_UPSTREAM_HASH=YES
|
||||||
|
STREAM_UPSTREAM_LEAST_CONN=YES
|
||||||
|
STREAM_UPSTREAM_ZONE=YES
|
||||||
|
|
||||||
|
DYNAMIC_MODULES=
|
||||||
|
|
||||||
|
NGX_ADDONS=
|
||||||
|
NGX_ADDON_DEPS=
|
||||||
|
DYNAMIC_ADDONS=
|
||||||
|
|
||||||
|
NGX_COMPAT=NO
|
||||||
|
|
||||||
|
USE_PCRE=NO
|
||||||
|
PCRE=NONE
|
||||||
|
PCRE_OPT=
|
||||||
|
PCRE_CONF_OPT=
|
||||||
|
PCRE_JIT=NO
|
||||||
|
|
||||||
|
USE_OPENSSL=NO
|
||||||
|
OPENSSL=NONE
|
||||||
|
|
||||||
|
USE_ZLIB=NO
|
||||||
|
ZLIB=NONE
|
||||||
|
ZLIB_OPT=
|
||||||
|
ZLIB_ASM=NO
|
||||||
|
|
||||||
|
USE_PERL=NO
|
||||||
|
NGX_PERL=perl
|
||||||
|
|
||||||
|
USE_LIBXSLT=NO
|
||||||
|
USE_LIBGD=NO
|
||||||
|
USE_GEOIP=NO
|
||||||
|
|
||||||
|
NGX_GOOGLE_PERFTOOLS=NO
|
||||||
|
NGX_CPP_TEST=NO
|
||||||
|
|
||||||
|
NGX_LIBATOMIC=NO
|
||||||
|
|
||||||
|
NGX_CPU_CACHE_LINE=
|
||||||
|
|
||||||
|
NGX_POST_CONF_MSG=
|
||||||
|
|
||||||
|
opt=
|
||||||
|
|
||||||
|
for option
|
||||||
|
do
|
||||||
|
opt="$opt `echo $option | sed -e \"s/\(--[^=]*=\)\(.* .*\)/\1'\2'/\"`"
|
||||||
|
|
||||||
|
case "$option" in
|
||||||
|
-*=*) value=`echo "$option" | sed -e 's/[-_a-zA-Z0-9]*=//'` ;;
|
||||||
|
*) value="" ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
case "$option" in
|
||||||
|
--help) help=yes ;;
|
||||||
|
|
||||||
|
--prefix=) NGX_PREFIX="!" ;;
|
||||||
|
--prefix=*) NGX_PREFIX="$value" ;;
|
||||||
|
--sbin-path=*) NGX_SBIN_PATH="$value" ;;
|
||||||
|
--modules-path=*) NGX_MODULES_PATH="$value" ;;
|
||||||
|
--conf-path=*) NGX_CONF_PATH="$value" ;;
|
||||||
|
--error-log-path=*) NGX_ERROR_LOG_PATH="$value";;
|
||||||
|
--pid-path=*) NGX_PID_PATH="$value" ;;
|
||||||
|
--lock-path=*) NGX_LOCK_PATH="$value" ;;
|
||||||
|
--user=*) NGX_USER="$value" ;;
|
||||||
|
--group=*) NGX_GROUP="$value" ;;
|
||||||
|
|
||||||
|
--crossbuild=*) NGX_PLATFORM="$value" ;;
|
||||||
|
|
||||||
|
--build=*) NGX_BUILD="$value" ;;
|
||||||
|
--builddir=*) NGX_OBJS="$value" ;;
|
||||||
|
|
||||||
|
--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-threads) USE_THREADS=YES ;;
|
||||||
|
|
||||||
|
--with-file-aio) NGX_FILE_AIO=YES ;;
|
||||||
|
|
||||||
|
--with-ipv6)
|
||||||
|
NGX_POST_CONF_MSG="$NGX_POST_CONF_MSG
|
||||||
|
$0: warning: the \"--with-ipv6\" option is deprecated"
|
||||||
|
;;
|
||||||
|
|
||||||
|
--without-http) HTTP=NO ;;
|
||||||
|
--without-http-cache) HTTP_CACHE=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" ;;
|
||||||
|
--http-uwsgi-temp-path=*) NGX_HTTP_UWSGI_TEMP_PATH="$value" ;;
|
||||||
|
--http-scgi-temp-path=*) NGX_HTTP_SCGI_TEMP_PATH="$value" ;;
|
||||||
|
|
||||||
|
--with-http_ssl_module) HTTP_SSL=YES ;;
|
||||||
|
--with-http_v2_module) HTTP_V2=YES ;;
|
||||||
|
--with-http_v2_hpack_enc) HTTP_V2_HPACK_ENC=YES ;;
|
||||||
|
--with-http_spdy_module) HTTP_SPDY=YES ;;
|
||||||
|
--with-http_realip_module) HTTP_REALIP=YES ;;
|
||||||
|
--with-http_addition_module) HTTP_ADDITION=YES ;;
|
||||||
|
--with-http_xslt_module) HTTP_XSLT=YES ;;
|
||||||
|
--with-http_xslt_module=dynamic) HTTP_XSLT=DYNAMIC ;;
|
||||||
|
--with-http_image_filter_module) HTTP_IMAGE_FILTER=YES ;;
|
||||||
|
--with-http_image_filter_module=dynamic)
|
||||||
|
HTTP_IMAGE_FILTER=DYNAMIC ;;
|
||||||
|
--with-http_geoip_module) HTTP_GEOIP=YES ;;
|
||||||
|
--with-http_geoip_module=dynamic)
|
||||||
|
HTTP_GEOIP=DYNAMIC ;;
|
||||||
|
--with-http_sub_module) HTTP_SUB=YES ;;
|
||||||
|
--with-http_dav_module) HTTP_DAV=YES ;;
|
||||||
|
--with-http_flv_module) HTTP_FLV=YES ;;
|
||||||
|
--with-http_mp4_module) HTTP_MP4=YES ;;
|
||||||
|
--with-http_gunzip_module) HTTP_GUNZIP=YES ;;
|
||||||
|
--with-http_gzip_static_module) HTTP_GZIP_STATIC=YES ;;
|
||||||
|
--with-http_auth_request_module) HTTP_AUTH_REQUEST=YES ;;
|
||||||
|
--with-http_random_index_module) HTTP_RANDOM_INDEX=YES ;;
|
||||||
|
--with-http_secure_link_module) HTTP_SECURE_LINK=YES ;;
|
||||||
|
--with-http_degradation_module) HTTP_DEGRADATION=YES ;;
|
||||||
|
--with-http_slice_module) HTTP_SLICE=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_mirror_module) HTTP_MIRROR=NO ;;
|
||||||
|
--without-http_autoindex_module) HTTP_AUTOINDEX=NO ;;
|
||||||
|
--without-http_status_module) HTTP_STATUS=NO ;;
|
||||||
|
--without-http_geo_module) HTTP_GEO=NO ;;
|
||||||
|
--without-http_map_module) HTTP_MAP=NO ;;
|
||||||
|
--without-http_split_clients_module) HTTP_SPLIT_CLIENTS=NO ;;
|
||||||
|
--without-http_referer_module) HTTP_REFERER=NO ;;
|
||||||
|
--without-http_rewrite_module) HTTP_REWRITE=NO ;;
|
||||||
|
--without-http_proxy_module) HTTP_PROXY=NO ;;
|
||||||
|
--without-http_fastcgi_module) HTTP_FASTCGI=NO ;;
|
||||||
|
--without-http_uwsgi_module) HTTP_UWSGI=NO ;;
|
||||||
|
--without-http_scgi_module) HTTP_SCGI=NO ;;
|
||||||
|
--without-http_memcached_module) HTTP_MEMCACHED=NO ;;
|
||||||
|
--without-http_limit_conn_module) HTTP_LIMIT_CONN=NO ;;
|
||||||
|
--without-http_limit_req_module) HTTP_LIMIT_REQ=NO ;;
|
||||||
|
--without-http_empty_gif_module) HTTP_EMPTY_GIF=NO ;;
|
||||||
|
--without-http_browser_module) HTTP_BROWSER=NO ;;
|
||||||
|
--without-http_upstream_hash_module) HTTP_UPSTREAM_HASH=NO ;;
|
||||||
|
--without-http_upstream_ip_hash_module) HTTP_UPSTREAM_IP_HASH=NO ;;
|
||||||
|
--without-http_upstream_least_conn_module)
|
||||||
|
HTTP_UPSTREAM_LEAST_CONN=NO ;;
|
||||||
|
--without-http_upstream_keepalive_module) HTTP_UPSTREAM_KEEPALIVE=NO ;;
|
||||||
|
--without-http_upstream_zone_module) HTTP_UPSTREAM_ZONE=NO ;;
|
||||||
|
|
||||||
|
--with-http_perl_module) HTTP_PERL=YES ;;
|
||||||
|
--with-http_perl_module=dynamic) HTTP_PERL=DYNAMIC ;;
|
||||||
|
--with-perl_modules_path=*) NGX_PERL_MODULES="$value" ;;
|
||||||
|
--with-perl=*) NGX_PERL="$value" ;;
|
||||||
|
|
||||||
|
# STUB
|
||||||
|
--with-http_stub_status_module) HTTP_STUB_STATUS=YES ;;
|
||||||
|
|
||||||
|
--with-mail) MAIL=YES ;;
|
||||||
|
--with-mail=dynamic) MAIL=DYNAMIC ;;
|
||||||
|
--with-mail_ssl_module) MAIL_SSL=YES ;;
|
||||||
|
# STUB
|
||||||
|
--with-imap)
|
||||||
|
MAIL=YES
|
||||||
|
NGX_POST_CONF_MSG="$NGX_POST_CONF_MSG
|
||||||
|
$0: warning: the \"--with-imap\" option is deprecated, \
|
||||||
|
use the \"--with-mail\" option instead"
|
||||||
|
;;
|
||||||
|
--with-imap_ssl_module)
|
||||||
|
MAIL_SSL=YES
|
||||||
|
NGX_POST_CONF_MSG="$NGX_POST_CONF_MSG
|
||||||
|
$0: warning: the \"--with-imap_ssl_module\" option is deprecated, \
|
||||||
|
use the \"--with-mail_ssl_module\" option instead"
|
||||||
|
;;
|
||||||
|
--without-mail_pop3_module) MAIL_POP3=NO ;;
|
||||||
|
--without-mail_imap_module) MAIL_IMAP=NO ;;
|
||||||
|
--without-mail_smtp_module) MAIL_SMTP=NO ;;
|
||||||
|
|
||||||
|
--with-stream) STREAM=YES ;;
|
||||||
|
--with-stream=dynamic) STREAM=DYNAMIC ;;
|
||||||
|
--with-stream_ssl_module) STREAM_SSL=YES ;;
|
||||||
|
--with-stream_realip_module) STREAM_REALIP=YES ;;
|
||||||
|
--with-stream_geoip_module) STREAM_GEOIP=YES ;;
|
||||||
|
--with-stream_geoip_module=dynamic)
|
||||||
|
STREAM_GEOIP=DYNAMIC ;;
|
||||||
|
--with-stream_ssl_preread_module)
|
||||||
|
STREAM_SSL_PREREAD=YES ;;
|
||||||
|
--without-stream_limit_conn_module)
|
||||||
|
STREAM_LIMIT_CONN=NO ;;
|
||||||
|
--without-stream_access_module) STREAM_ACCESS=NO ;;
|
||||||
|
--without-stream_map_module) STREAM_MAP=NO ;;
|
||||||
|
--without-stream_split_clients_module)
|
||||||
|
STREAM_SPLIT_CLIENTS=NO ;;
|
||||||
|
--without-stream_return_module) STREAM_RETURN=NO ;;
|
||||||
|
--without-stream_upstream_hash_module)
|
||||||
|
STREAM_UPSTREAM_HASH=NO ;;
|
||||||
|
--without-stream_upstream_least_conn_module)
|
||||||
|
STREAM_UPSTREAM_LEAST_CONN=NO ;;
|
||||||
|
--without-stream_upstream_zone_module)
|
||||||
|
STREAM_UPSTREAM_ZONE=NO ;;
|
||||||
|
|
||||||
|
--with-google_perftools_module) NGX_GOOGLE_PERFTOOLS=YES ;;
|
||||||
|
--with-cpp_test_module) NGX_CPP_TEST=YES ;;
|
||||||
|
|
||||||
|
--add-module=*) NGX_ADDONS="$NGX_ADDONS $value" ;;
|
||||||
|
--add-dynamic-module=*) DYNAMIC_ADDONS="$DYNAMIC_ADDONS $value" ;;
|
||||||
|
|
||||||
|
--with-compat) NGX_COMPAT=YES ;;
|
||||||
|
|
||||||
|
--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) USE_PCRE=YES ;;
|
||||||
|
--with-pcre=*) PCRE="$value" ;;
|
||||||
|
--with-pcre-opt=*) PCRE_OPT="$value" ;;
|
||||||
|
--with-pcre-jit) PCRE_JIT=YES ;;
|
||||||
|
|
||||||
|
--with-openssl=*) OPENSSL="$value" ;;
|
||||||
|
--with-openssl-opt=*) OPENSSL_OPT="$value" ;;
|
||||||
|
|
||||||
|
--with-md5=*)
|
||||||
|
NGX_POST_CONF_MSG="$NGX_POST_CONF_MSG
|
||||||
|
$0: warning: the \"--with-md5\" option is deprecated"
|
||||||
|
;;
|
||||||
|
--with-md5-opt=*)
|
||||||
|
NGX_POST_CONF_MSG="$NGX_POST_CONF_MSG
|
||||||
|
$0: warning: the \"--with-md5-opt\" option is deprecated"
|
||||||
|
;;
|
||||||
|
--with-md5-asm)
|
||||||
|
NGX_POST_CONF_MSG="$NGX_POST_CONF_MSG
|
||||||
|
$0: warning: the \"--with-md5-asm\" option is deprecated"
|
||||||
|
;;
|
||||||
|
|
||||||
|
--with-sha1=*)
|
||||||
|
NGX_POST_CONF_MSG="$NGX_POST_CONF_MSG
|
||||||
|
$0: warning: the \"--with-sha1\" option is deprecated"
|
||||||
|
;;
|
||||||
|
--with-sha1-opt=*)
|
||||||
|
NGX_POST_CONF_MSG="$NGX_POST_CONF_MSG
|
||||||
|
$0: warning: the \"--with-sha1-opt\" option is deprecated"
|
||||||
|
;;
|
||||||
|
--with-sha1-asm)
|
||||||
|
NGX_POST_CONF_MSG="$NGX_POST_CONF_MSG
|
||||||
|
$0: warning: the \"--with-sha1-asm\" option is deprecated"
|
||||||
|
;;
|
||||||
|
|
||||||
|
--with-zlib=*) ZLIB="$value" ;;
|
||||||
|
--with-zlib-opt=*) ZLIB_OPT="$value" ;;
|
||||||
|
--with-zlib-asm=*) ZLIB_ASM="$value" ;;
|
||||||
|
|
||||||
|
--with-libatomic) NGX_LIBATOMIC=YES ;;
|
||||||
|
--with-libatomic=*) NGX_LIBATOMIC="$value" ;;
|
||||||
|
|
||||||
|
--test-build-devpoll) NGX_TEST_BUILD_DEVPOLL=YES ;;
|
||||||
|
--test-build-eventport) NGX_TEST_BUILD_EVENTPORT=YES ;;
|
||||||
|
--test-build-epoll) NGX_TEST_BUILD_EPOLL=YES ;;
|
||||||
|
--test-build-solaris-sendfilev) NGX_TEST_BUILD_SOLARIS_SENDFILEV=YES ;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
echo "$0: error: invalid option \"$option\""
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
|
NGX_CONFIGURE="$opt"
|
||||||
|
|
||||||
|
|
||||||
|
if [ $help = yes ]; then
|
||||||
|
|
||||||
|
cat << END
|
||||||
|
|
||||||
|
--help print this message
|
||||||
|
|
||||||
|
--prefix=PATH set installation prefix
|
||||||
|
--sbin-path=PATH set nginx binary pathname
|
||||||
|
--modules-path=PATH set modules path
|
||||||
|
--conf-path=PATH set nginx.conf pathname
|
||||||
|
--error-log-path=PATH set error log pathname
|
||||||
|
--pid-path=PATH set nginx.pid pathname
|
||||||
|
--lock-path=PATH set nginx.lock pathname
|
||||||
|
|
||||||
|
--user=USER set non-privileged user for
|
||||||
|
worker processes
|
||||||
|
--group=GROUP set non-privileged group for
|
||||||
|
worker processes
|
||||||
|
|
||||||
|
--build=NAME set build name
|
||||||
|
--builddir=DIR set build directory
|
||||||
|
|
||||||
|
--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-threads enable thread pool support
|
||||||
|
|
||||||
|
--with-file-aio enable file AIO support
|
||||||
|
|
||||||
|
--with-http_ssl_module enable ngx_http_ssl_module
|
||||||
|
--with-http_v2_module enable ngx_http_v2_module
|
||||||
|
--with-http_v2_hpack_enc enable ngx_http_v2_hpack_enc
|
||||||
|
--with-http_spdy_module enable ngx_http_spdy_module
|
||||||
|
--with-http_realip_module enable ngx_http_realip_module
|
||||||
|
--with-http_addition_module enable ngx_http_addition_module
|
||||||
|
--with-http_xslt_module enable ngx_http_xslt_module
|
||||||
|
--with-http_xslt_module=dynamic enable dynamic ngx_http_xslt_module
|
||||||
|
--with-http_image_filter_module enable ngx_http_image_filter_module
|
||||||
|
--with-http_image_filter_module=dynamic
|
||||||
|
enable dynamic ngx_http_image_filter_module
|
||||||
|
--with-http_geoip_module enable ngx_http_geoip_module
|
||||||
|
--with-http_geoip_module=dynamic enable dynamic ngx_http_geoip_module
|
||||||
|
--with-http_sub_module enable ngx_http_sub_module
|
||||||
|
--with-http_dav_module enable ngx_http_dav_module
|
||||||
|
--with-http_flv_module enable ngx_http_flv_module
|
||||||
|
--with-http_mp4_module enable ngx_http_mp4_module
|
||||||
|
--with-http_gunzip_module enable ngx_http_gunzip_module
|
||||||
|
--with-http_gzip_static_module enable ngx_http_gzip_static_module
|
||||||
|
--with-http_auth_request_module enable ngx_http_auth_request_module
|
||||||
|
--with-http_random_index_module enable ngx_http_random_index_module
|
||||||
|
--with-http_secure_link_module enable ngx_http_secure_link_module
|
||||||
|
--with-http_degradation_module enable ngx_http_degradation_module
|
||||||
|
--with-http_slice_module enable ngx_http_slice_module
|
||||||
|
--with-http_stub_status_module enable ngx_http_stub_status_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_mirror_module disable ngx_http_mirror_module
|
||||||
|
--without-http_autoindex_module disable ngx_http_autoindex_module
|
||||||
|
--without-http_geo_module disable ngx_http_geo_module
|
||||||
|
--without-http_map_module disable ngx_http_map_module
|
||||||
|
--without-http_split_clients_module disable ngx_http_split_clients_module
|
||||||
|
--without-http_referer_module disable ngx_http_referer_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
|
||||||
|
--without-http_uwsgi_module disable ngx_http_uwsgi_module
|
||||||
|
--without-http_scgi_module disable ngx_http_scgi_module
|
||||||
|
--without-http_memcached_module disable ngx_http_memcached_module
|
||||||
|
--without-http_limit_conn_module disable ngx_http_limit_conn_module
|
||||||
|
--without-http_limit_req_module disable ngx_http_limit_req_module
|
||||||
|
--without-http_empty_gif_module disable ngx_http_empty_gif_module
|
||||||
|
--without-http_browser_module disable ngx_http_browser_module
|
||||||
|
--without-http_upstream_hash_module
|
||||||
|
disable ngx_http_upstream_hash_module
|
||||||
|
--without-http_upstream_ip_hash_module
|
||||||
|
disable ngx_http_upstream_ip_hash_module
|
||||||
|
--without-http_upstream_least_conn_module
|
||||||
|
disable ngx_http_upstream_least_conn_module
|
||||||
|
--without-http_upstream_keepalive_module
|
||||||
|
disable ngx_http_upstream_keepalive_module
|
||||||
|
--without-http_upstream_zone_module
|
||||||
|
disable ngx_http_upstream_zone_module
|
||||||
|
|
||||||
|
--with-http_perl_module enable ngx_http_perl_module
|
||||||
|
--with-http_perl_module=dynamic enable dynamic ngx_http_perl_module
|
||||||
|
--with-perl_modules_path=PATH set Perl modules path
|
||||||
|
--with-perl=PATH set perl binary pathname
|
||||||
|
|
||||||
|
--http-log-path=PATH set http access log pathname
|
||||||
|
--http-client-body-temp-path=PATH set path to store
|
||||||
|
http client request body temporary files
|
||||||
|
--http-proxy-temp-path=PATH set path to store
|
||||||
|
http proxy temporary files
|
||||||
|
--http-fastcgi-temp-path=PATH set path to store
|
||||||
|
http fastcgi temporary files
|
||||||
|
--http-uwsgi-temp-path=PATH set path to store
|
||||||
|
http uwsgi temporary files
|
||||||
|
--http-scgi-temp-path=PATH set path to store
|
||||||
|
http scgi temporary files
|
||||||
|
|
||||||
|
--without-http disable HTTP server
|
||||||
|
--without-http-cache disable HTTP cache
|
||||||
|
|
||||||
|
--with-mail enable POP3/IMAP4/SMTP proxy module
|
||||||
|
--with-mail=dynamic enable dynamic POP3/IMAP4/SMTP proxy module
|
||||||
|
--with-mail_ssl_module enable ngx_mail_ssl_module
|
||||||
|
--without-mail_pop3_module disable ngx_mail_pop3_module
|
||||||
|
--without-mail_imap_module disable ngx_mail_imap_module
|
||||||
|
--without-mail_smtp_module disable ngx_mail_smtp_module
|
||||||
|
|
||||||
|
--with-stream enable TCP/UDP proxy module
|
||||||
|
--with-stream=dynamic enable dynamic TCP/UDP proxy module
|
||||||
|
--with-stream_ssl_module enable ngx_stream_ssl_module
|
||||||
|
--with-stream_realip_module enable ngx_stream_realip_module
|
||||||
|
--with-stream_geoip_module enable ngx_stream_geoip_module
|
||||||
|
--with-stream_geoip_module=dynamic enable dynamic ngx_stream_geoip_module
|
||||||
|
--with-stream_ssl_preread_module enable ngx_stream_ssl_preread_module
|
||||||
|
--without-stream_limit_conn_module disable ngx_stream_limit_conn_module
|
||||||
|
--without-stream_access_module disable ngx_stream_access_module
|
||||||
|
--without-stream_map_module disable ngx_stream_map_module
|
||||||
|
--without-stream_split_clients_module
|
||||||
|
disable ngx_stream_split_clients_module
|
||||||
|
--without-stream_return_module disable ngx_stream_return_module
|
||||||
|
--without-stream_upstream_hash_module
|
||||||
|
disable ngx_stream_upstream_hash_module
|
||||||
|
--without-stream_upstream_least_conn_module
|
||||||
|
disable ngx_stream_upstream_least_conn_module
|
||||||
|
--without-stream_upstream_zone_module
|
||||||
|
disable ngx_stream_upstream_zone_module
|
||||||
|
|
||||||
|
--with-google_perftools_module enable ngx_google_perftools_module
|
||||||
|
--with-cpp_test_module enable ngx_cpp_test_module
|
||||||
|
|
||||||
|
--add-module=PATH enable external module
|
||||||
|
--add-dynamic-module=PATH enable dynamic external module
|
||||||
|
|
||||||
|
--with-compat dynamic modules compatibility
|
||||||
|
|
||||||
|
--with-cc=PATH set C compiler pathname
|
||||||
|
--with-cpp=PATH set C preprocessor pathname
|
||||||
|
--with-cc-opt=OPTIONS set additional C compiler options
|
||||||
|
--with-ld-opt=OPTIONS set additional linker options
|
||||||
|
--with-cpu-opt=CPU build for the specified CPU, valid values:
|
||||||
|
pentium, pentiumpro, pentium3, pentium4,
|
||||||
|
athlon, opteron, sparc32, sparc64, ppc64
|
||||||
|
|
||||||
|
--without-pcre disable PCRE library usage
|
||||||
|
--with-pcre force PCRE library usage
|
||||||
|
--with-pcre=DIR set path to PCRE library sources
|
||||||
|
--with-pcre-opt=OPTIONS set additional build options for PCRE
|
||||||
|
--with-pcre-jit build PCRE with JIT compilation support
|
||||||
|
|
||||||
|
--with-zlib=DIR set path to zlib library sources
|
||||||
|
--with-zlib-opt=OPTIONS set additional build options for zlib
|
||||||
|
--with-zlib-asm=CPU use zlib assembler sources optimized
|
||||||
|
for the specified CPU, valid values:
|
||||||
|
pentium, pentiumpro
|
||||||
|
|
||||||
|
--with-libatomic force libatomic_ops library usage
|
||||||
|
--with-libatomic=DIR set path to libatomic_ops library sources
|
||||||
|
|
||||||
|
--with-openssl=DIR set path to OpenSSL library sources
|
||||||
|
--with-openssl-opt=OPTIONS set additional build options for OpenSSL
|
||||||
|
|
||||||
|
--with-debug enable debug logging
|
||||||
|
|
||||||
|
END
|
||||||
|
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
if [ ".$NGX_PLATFORM" = ".win32" ]; then
|
||||||
|
NGX_WINE=$WINE
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
NGX_SBIN_PATH=${NGX_SBIN_PATH:-sbin/nginx}
|
||||||
|
NGX_MODULES_PATH=${NGX_MODULES_PATH:-modules}
|
||||||
|
NGX_CONF_PATH=${NGX_CONF_PATH:-conf/nginx.conf}
|
||||||
|
NGX_CONF_PREFIX=`dirname $NGX_CONF_PATH`
|
||||||
|
NGX_PID_PATH=${NGX_PID_PATH:-logs/nginx.pid}
|
||||||
|
NGX_LOCK_PATH=${NGX_LOCK_PATH:-logs/nginx.lock}
|
||||||
|
|
||||||
|
if [ ".$NGX_ERROR_LOG_PATH" = ".stderr" ]; then
|
||||||
|
NGX_ERROR_LOG_PATH=
|
||||||
|
else
|
||||||
|
NGX_ERROR_LOG_PATH=${NGX_ERROR_LOG_PATH:-logs/error.log}
|
||||||
|
fi
|
||||||
|
|
||||||
|
NGX_HTTP_LOG_PATH=${NGX_HTTP_LOG_PATH:-logs/access.log}
|
||||||
|
NGX_HTTP_CLIENT_TEMP_PATH=${NGX_HTTP_CLIENT_TEMP_PATH:-client_body_temp}
|
||||||
|
NGX_HTTP_PROXY_TEMP_PATH=${NGX_HTTP_PROXY_TEMP_PATH:-proxy_temp}
|
||||||
|
NGX_HTTP_FASTCGI_TEMP_PATH=${NGX_HTTP_FASTCGI_TEMP_PATH:-fastcgi_temp}
|
||||||
|
NGX_HTTP_UWSGI_TEMP_PATH=${NGX_HTTP_UWSGI_TEMP_PATH:-uwsgi_temp}
|
||||||
|
NGX_HTTP_SCGI_TEMP_PATH=${NGX_HTTP_SCGI_TEMP_PATH:-scgi_temp}
|
||||||
|
|
||||||
|
case ".$NGX_PERL_MODULES" in
|
||||||
|
./*)
|
||||||
|
;;
|
||||||
|
|
||||||
|
.)
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
NGX_PERL_MODULES=$NGX_PREFIX/$NGX_PERL_MODULES
|
||||||
|
;;
|
||||||
|
esac
|
||||||
+129
@@ -0,0 +1,129 @@
|
|||||||
|
|
||||||
|
# Copyright (C) Igor Sysoev
|
||||||
|
# Copyright (C) Nginx, Inc.
|
||||||
|
|
||||||
|
|
||||||
|
echo "checking for $NGX_SYSTEM specific features"
|
||||||
|
|
||||||
|
case "$NGX_PLATFORM" in
|
||||||
|
|
||||||
|
FreeBSD:*)
|
||||||
|
. auto/os/freebsd
|
||||||
|
;;
|
||||||
|
|
||||||
|
Linux:*)
|
||||||
|
. auto/os/linux
|
||||||
|
;;
|
||||||
|
|
||||||
|
SunOS:*)
|
||||||
|
. auto/os/solaris
|
||||||
|
;;
|
||||||
|
|
||||||
|
Darwin:*)
|
||||||
|
. auto/os/darwin
|
||||||
|
;;
|
||||||
|
|
||||||
|
win32)
|
||||||
|
. auto/os/win32
|
||||||
|
;;
|
||||||
|
|
||||||
|
DragonFly:*)
|
||||||
|
have=NGX_FREEBSD . auto/have_headers
|
||||||
|
CORE_INCS="$UNIX_INCS"
|
||||||
|
CORE_DEPS="$UNIX_DEPS $FREEBSD_DEPS"
|
||||||
|
CORE_SRCS="$UNIX_SRCS $FREEBSD_SRCS"
|
||||||
|
|
||||||
|
echo " + sendfile() found"
|
||||||
|
have=NGX_HAVE_SENDFILE . auto/have
|
||||||
|
CORE_SRCS="$CORE_SRCS $FREEBSD_SENDFILE_SRCS"
|
||||||
|
|
||||||
|
ngx_spacer='
|
||||||
|
'
|
||||||
|
;;
|
||||||
|
|
||||||
|
NetBSD:*)
|
||||||
|
CORE_INCS="$UNIX_INCS"
|
||||||
|
CORE_DEPS="$UNIX_DEPS $POSIX_DEPS"
|
||||||
|
CORE_SRCS="$UNIX_SRCS"
|
||||||
|
|
||||||
|
NGX_RPATH=YES
|
||||||
|
;;
|
||||||
|
|
||||||
|
HP-UX:*)
|
||||||
|
# HP/UX
|
||||||
|
have=NGX_HPUX . auto/have_headers
|
||||||
|
CORE_INCS="$UNIX_INCS"
|
||||||
|
CORE_DEPS="$UNIX_DEPS $POSIX_DEPS"
|
||||||
|
CORE_SRCS="$UNIX_SRCS"
|
||||||
|
CC_AUX_FLAGS="$CC_AUX_FLAGS -D_XOPEN_SOURCE -D_XOPEN_SOURCE_EXTENDED=1"
|
||||||
|
CC_AUX_FLAGS="$CC_AUX_FLAGS -D_HPUX_ALT_XOPEN_SOCKET_API"
|
||||||
|
;;
|
||||||
|
|
||||||
|
OSF1:*)
|
||||||
|
# Tru64 UNIX
|
||||||
|
have=NGX_TRU64 . auto/have_headers
|
||||||
|
have=NGX_HAVE_STRERROR_R . auto/nohave
|
||||||
|
CORE_INCS="$UNIX_INCS"
|
||||||
|
CORE_DEPS="$UNIX_DEPS $POSIX_DEPS"
|
||||||
|
CORE_SRCS="$UNIX_SRCS"
|
||||||
|
;;
|
||||||
|
|
||||||
|
GNU:*)
|
||||||
|
# GNU Hurd
|
||||||
|
have=NGX_GNU_HURD . auto/have_headers
|
||||||
|
CORE_INCS="$UNIX_INCS"
|
||||||
|
CORE_DEPS="$UNIX_DEPS $POSIX_DEPS"
|
||||||
|
CORE_SRCS="$UNIX_SRCS"
|
||||||
|
CC_AUX_FLAGS="$CC_AUX_FLAGS -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64"
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
CORE_INCS="$UNIX_INCS"
|
||||||
|
CORE_DEPS="$UNIX_DEPS $POSIX_DEPS"
|
||||||
|
CORE_SRCS="$UNIX_SRCS"
|
||||||
|
;;
|
||||||
|
|
||||||
|
esac
|
||||||
|
|
||||||
|
|
||||||
|
case "$NGX_MACHINE" in
|
||||||
|
|
||||||
|
i386 | i686 | i86pc)
|
||||||
|
have=NGX_HAVE_NONALIGNED . auto/have
|
||||||
|
NGX_MACH_CACHE_LINE=32
|
||||||
|
;;
|
||||||
|
|
||||||
|
amd64 | x86_64)
|
||||||
|
have=NGX_HAVE_NONALIGNED . auto/have
|
||||||
|
NGX_MACH_CACHE_LINE=64
|
||||||
|
;;
|
||||||
|
|
||||||
|
sun4u | sun4v | sparc | sparc64)
|
||||||
|
have=NGX_ALIGNMENT value=16 . auto/define
|
||||||
|
# TODO
|
||||||
|
NGX_MACH_CACHE_LINE=64
|
||||||
|
;;
|
||||||
|
|
||||||
|
ia64 )
|
||||||
|
have=NGX_ALIGNMENT value=16 . auto/define
|
||||||
|
# TODO
|
||||||
|
NGX_MACH_CACHE_LINE=64
|
||||||
|
;;
|
||||||
|
|
||||||
|
aarch64 )
|
||||||
|
have=NGX_ALIGNMENT value=16 . auto/define
|
||||||
|
NGX_MACH_CACHE_LINE=64
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
have=NGX_ALIGNMENT value=16 . auto/define
|
||||||
|
NGX_MACH_CACHE_LINE=32
|
||||||
|
;;
|
||||||
|
|
||||||
|
esac
|
||||||
|
|
||||||
|
if test -z "$NGX_CPU_CACHE_LINE"; then
|
||||||
|
NGX_CPU_CACHE_LINE=$NGX_MACH_CACHE_LINE
|
||||||
|
fi
|
||||||
|
|
||||||
|
have=NGX_CPU_CACHE_LINE value=$NGX_CPU_CACHE_LINE . auto/define
|
||||||
+120
@@ -0,0 +1,120 @@
|
|||||||
|
|
||||||
|
# Copyright (C) Igor Sysoev
|
||||||
|
# Copyright (C) Nginx, Inc.
|
||||||
|
|
||||||
|
|
||||||
|
have=NGX_DARWIN . auto/have_headers
|
||||||
|
|
||||||
|
CORE_INCS="$UNIX_INCS"
|
||||||
|
CORE_DEPS="$UNIX_DEPS $DARWIN_DEPS"
|
||||||
|
CORE_SRCS="$UNIX_SRCS $DARWIN_SRCS"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
ngx_spacer='
|
||||||
|
'
|
||||||
|
|
||||||
|
MAIN_LINK=
|
||||||
|
MODULE_LINK="-shared -Wl,-undefined,dynamic_lookup"
|
||||||
|
|
||||||
|
CC_AUX_FLAGS="$CC_AUX_FLAGS -D__APPLE_USE_RFC_3542"
|
||||||
|
|
||||||
|
|
||||||
|
# kqueue
|
||||||
|
|
||||||
|
echo " + kqueue found"
|
||||||
|
have=NGX_HAVE_KQUEUE . auto/have
|
||||||
|
have=NGX_HAVE_CLEAR_EVENT . auto/have
|
||||||
|
EVENT_MODULES="$EVENT_MODULES $KQUEUE_MODULE"
|
||||||
|
CORE_SRCS="$CORE_SRCS $KQUEUE_SRCS"
|
||||||
|
EVENT_FOUND=YES
|
||||||
|
NGX_KQUEUE_CHECKED=YES
|
||||||
|
|
||||||
|
ngx_feature="kqueue's EVFILT_TIMER"
|
||||||
|
ngx_feature_name="NGX_HAVE_TIMER_EVENT"
|
||||||
|
ngx_feature_run=yes
|
||||||
|
ngx_feature_incs="#include <sys/event.h>
|
||||||
|
#include <sys/time.h>"
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs=
|
||||||
|
ngx_feature_test="int kq;
|
||||||
|
struct kevent kev;
|
||||||
|
struct timespec ts;
|
||||||
|
|
||||||
|
if ((kq = kqueue()) == -1) return 1;
|
||||||
|
|
||||||
|
kev.ident = 0;
|
||||||
|
kev.filter = EVFILT_TIMER;
|
||||||
|
kev.flags = EV_ADD|EV_ENABLE;
|
||||||
|
kev.fflags = 0;
|
||||||
|
kev.data = 1000;
|
||||||
|
kev.udata = 0;
|
||||||
|
|
||||||
|
ts.tv_sec = 0;
|
||||||
|
ts.tv_nsec = 0;
|
||||||
|
|
||||||
|
if (kevent(kq, &kev, 1, &kev, 1, &ts) == -1) return 1;
|
||||||
|
|
||||||
|
if (kev.flags & EV_ERROR) return 1;"
|
||||||
|
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
|
||||||
|
ngx_feature="Darwin 64-bit kqueue millisecond timeout bug"
|
||||||
|
ngx_feature_name=NGX_DARWIN_KEVENT_BUG
|
||||||
|
ngx_feature_run=bug
|
||||||
|
ngx_feature_incs="#include <sys/event.h>
|
||||||
|
#include <sys/time.h>"
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs=
|
||||||
|
ngx_feature_test="int kq;
|
||||||
|
struct kevent kev;
|
||||||
|
struct timespec ts;
|
||||||
|
struct timeval tv, tv0;
|
||||||
|
|
||||||
|
kq = kqueue();
|
||||||
|
|
||||||
|
ts.tv_sec = 0;
|
||||||
|
ts.tv_nsec = 999000000;
|
||||||
|
|
||||||
|
gettimeofday(&tv, 0);
|
||||||
|
kevent(kq, NULL, 0, &kev, 1, &ts);
|
||||||
|
gettimeofday(&tv0, 0);
|
||||||
|
timersub(&tv0, &tv, &tv);
|
||||||
|
|
||||||
|
if (tv.tv_sec * 1000000 + tv.tv_usec < 900000) return 1;"
|
||||||
|
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
|
||||||
|
# sendfile()
|
||||||
|
|
||||||
|
ngx_feature="sendfile()"
|
||||||
|
ngx_feature_name="NGX_HAVE_SENDFILE"
|
||||||
|
ngx_feature_run=yes
|
||||||
|
ngx_feature_incs="#include <sys/types.h>
|
||||||
|
#include <sys/socket.h>
|
||||||
|
#include <sys/uio.h>
|
||||||
|
#include <sys/errno.h>"
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs=
|
||||||
|
ngx_feature_test="int s = 0, fd = 1;
|
||||||
|
off_t n; off_t off = 0;
|
||||||
|
n = sendfile(s, fd, off, &n, NULL, 0);
|
||||||
|
if (n == -1 && errno == ENOSYS) return 1"
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
if [ $ngx_found = yes ]; then
|
||||||
|
CORE_SRCS="$CORE_SRCS $DARWIN_SENDFILE_SRCS"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
ngx_feature="atomic(3)"
|
||||||
|
ngx_feature_name=NGX_DARWIN_ATOMIC
|
||||||
|
ngx_feature_run=no
|
||||||
|
ngx_feature_incs="#include <libkern/OSAtomic.h>"
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs=
|
||||||
|
ngx_feature_test="int32_t lock = 0;
|
||||||
|
if (!OSAtomicCompareAndSwap32Barrier(0, 1, &lock)) return 1"
|
||||||
|
. auto/feature
|
||||||
+107
@@ -0,0 +1,107 @@
|
|||||||
|
|
||||||
|
# Copyright (C) Igor Sysoev
|
||||||
|
# Copyright (C) Nginx, Inc.
|
||||||
|
|
||||||
|
|
||||||
|
have=NGX_FREEBSD . auto/have_headers
|
||||||
|
|
||||||
|
CORE_INCS="$UNIX_INCS"
|
||||||
|
CORE_DEPS="$UNIX_DEPS $FREEBSD_DEPS"
|
||||||
|
CORE_SRCS="$UNIX_SRCS $FREEBSD_SRCS"
|
||||||
|
|
||||||
|
ngx_spacer='
|
||||||
|
'
|
||||||
|
|
||||||
|
|
||||||
|
# __FreeBSD_version and sysctl kern.osreldate are the best ways
|
||||||
|
# to determine whether some capability exists and is safe to use.
|
||||||
|
# __FreeBSD_version is used for the testing of the build environment.
|
||||||
|
# sysctl kern.osreldate is used for the testing of the kernel capabilities.
|
||||||
|
|
||||||
|
version=`grep "#define __FreeBSD_version" /usr/include/osreldate.h \
|
||||||
|
| sed -e 's/^.* \(.*\)$/\1/'`
|
||||||
|
|
||||||
|
osreldate=`/sbin/sysctl -n kern.osreldate`
|
||||||
|
|
||||||
|
|
||||||
|
# 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"
|
||||||
|
NGX_SETPROCTITLE_LIB="-lutil"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# sendfile
|
||||||
|
|
||||||
|
if [ $osreldate -gt 300007 ]; then
|
||||||
|
echo " + sendfile() found"
|
||||||
|
|
||||||
|
have=NGX_HAVE_SENDFILE . auto/have
|
||||||
|
CORE_SRCS="$CORE_SRCS $FREEBSD_SENDFILE_SRCS"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $NGX_FILE_AIO = YES ]; then
|
||||||
|
if [ $osreldate -gt 502103 ]; then
|
||||||
|
echo " + sendfile()'s SF_NODISKIO found"
|
||||||
|
|
||||||
|
have=NGX_HAVE_AIO_SENDFILE . auto/have
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 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
|
||||||
|
|
||||||
|
|
||||||
|
# kqueue
|
||||||
|
|
||||||
|
if [ \( $osreldate -lt 500000 -a $osreldate -ge 410000 \) \
|
||||||
|
-o $osreldate -ge 500011 ]
|
||||||
|
then
|
||||||
|
echo " + kqueue found"
|
||||||
|
|
||||||
|
have=NGX_HAVE_KQUEUE . auto/have
|
||||||
|
have=NGX_HAVE_CLEAR_EVENT . auto/have
|
||||||
|
EVENT_MODULES="$EVENT_MODULES $KQUEUE_MODULE"
|
||||||
|
CORE_SRCS="$CORE_SRCS $KQUEUE_SRCS"
|
||||||
|
EVENT_FOUND=YES
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
NGX_KQUEUE_CHECKED=YES
|
||||||
|
|
||||||
|
|
||||||
|
# kqueue's NOTE_LOWAT
|
||||||
|
|
||||||
|
if [ \( $version -lt 500000 -a $version -ge 430000 \) \
|
||||||
|
-o $version -ge 500018 ]
|
||||||
|
then
|
||||||
|
echo " + kqueue's NOTE_LOWAT found"
|
||||||
|
have=NGX_HAVE_LOWAT_EVENT . auto/have
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 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
|
||||||
|
|
||||||
|
|
||||||
|
# cpuset_setaffinity()
|
||||||
|
|
||||||
|
if [ $version -ge 701000 ]; then
|
||||||
|
echo " + cpuset_setaffinity() found"
|
||||||
|
have=NGX_HAVE_CPUSET_SETAFFINITY . auto/have
|
||||||
|
fi
|
||||||
+208
@@ -0,0 +1,208 @@
|
|||||||
|
|
||||||
|
# Copyright (C) Igor Sysoev
|
||||||
|
# Copyright (C) Nginx, Inc.
|
||||||
|
|
||||||
|
|
||||||
|
have=NGX_LINUX . auto/have_headers
|
||||||
|
|
||||||
|
CORE_INCS="$UNIX_INCS"
|
||||||
|
CORE_DEPS="$UNIX_DEPS $LINUX_DEPS"
|
||||||
|
CORE_SRCS="$UNIX_SRCS $LINUX_SRCS"
|
||||||
|
|
||||||
|
ngx_spacer='
|
||||||
|
'
|
||||||
|
|
||||||
|
cc_aux_flags="$CC_AUX_FLAGS"
|
||||||
|
CC_AUX_FLAGS="$cc_aux_flags -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64"
|
||||||
|
|
||||||
|
|
||||||
|
# Linux kernel version
|
||||||
|
|
||||||
|
version=$((`uname -r \
|
||||||
|
| sed -n -e 's/^\([0-9][0-9]*\)\.\([0-9][0-9]*\)\.\([0-9][0-9]*\).*/ \
|
||||||
|
\1*256*256+\2*256+\3/p' \
|
||||||
|
-e 's/^\([0-9][0-9]*\)\.\([0-9][0-9]*\).*/\1*256*256+\2*256/p'`))
|
||||||
|
|
||||||
|
version=${version:-0}
|
||||||
|
|
||||||
|
|
||||||
|
# posix_fadvise64() had been implemented in 2.5.60
|
||||||
|
|
||||||
|
if [ $version -lt 132412 ]; then
|
||||||
|
have=NGX_HAVE_POSIX_FADVISE . auto/nohave
|
||||||
|
fi
|
||||||
|
|
||||||
|
# epoll, EPOLLET version
|
||||||
|
|
||||||
|
ngx_feature="epoll"
|
||||||
|
ngx_feature_name="NGX_HAVE_EPOLL"
|
||||||
|
ngx_feature_run=yes
|
||||||
|
ngx_feature_incs="#include <sys/epoll.h>"
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs=
|
||||||
|
ngx_feature_test="int efd = 0;
|
||||||
|
struct epoll_event ee;
|
||||||
|
ee.events = EPOLLIN|EPOLLOUT|EPOLLET;
|
||||||
|
ee.data.ptr = NULL;
|
||||||
|
(void) ee;
|
||||||
|
efd = epoll_create(100);
|
||||||
|
if (efd == -1) return 1;"
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
if [ $ngx_found = yes ]; then
|
||||||
|
have=NGX_HAVE_CLEAR_EVENT . auto/have
|
||||||
|
CORE_SRCS="$CORE_SRCS $EPOLL_SRCS"
|
||||||
|
EVENT_MODULES="$EVENT_MODULES $EPOLL_MODULE"
|
||||||
|
EVENT_FOUND=YES
|
||||||
|
|
||||||
|
|
||||||
|
# EPOLLRDHUP appeared in Linux 2.6.17, glibc 2.8
|
||||||
|
|
||||||
|
ngx_feature="EPOLLRDHUP"
|
||||||
|
ngx_feature_name="NGX_HAVE_EPOLLRDHUP"
|
||||||
|
ngx_feature_run=no
|
||||||
|
ngx_feature_incs="#include <sys/epoll.h>"
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs=
|
||||||
|
ngx_feature_test="int efd = 0, fd = 0;
|
||||||
|
struct epoll_event ee;
|
||||||
|
ee.events = EPOLLIN|EPOLLRDHUP|EPOLLET;
|
||||||
|
ee.data.ptr = NULL;
|
||||||
|
epoll_ctl(efd, EPOLL_CTL_ADD, fd, &ee)"
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
|
||||||
|
# EPOLLEXCLUSIVE appeared in Linux 4.5, glibc 2.24
|
||||||
|
|
||||||
|
ngx_feature="EPOLLEXCLUSIVE"
|
||||||
|
ngx_feature_name="NGX_HAVE_EPOLLEXCLUSIVE"
|
||||||
|
ngx_feature_run=no
|
||||||
|
ngx_feature_incs="#include <sys/epoll.h>"
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs=
|
||||||
|
ngx_feature_test="int efd = 0, fd = 0;
|
||||||
|
struct epoll_event ee;
|
||||||
|
ee.events = EPOLLIN|EPOLLEXCLUSIVE;
|
||||||
|
ee.data.ptr = NULL;
|
||||||
|
epoll_ctl(efd, EPOLL_CTL_ADD, fd, &ee)"
|
||||||
|
. auto/feature
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# O_PATH and AT_EMPTY_PATH were introduced in 2.6.39, glibc 2.14
|
||||||
|
|
||||||
|
ngx_feature="O_PATH"
|
||||||
|
ngx_feature_name="NGX_HAVE_O_PATH"
|
||||||
|
ngx_feature_run=no
|
||||||
|
ngx_feature_incs="#include <sys/types.h>
|
||||||
|
#include <sys/stat.h>
|
||||||
|
#include <fcntl.h>"
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs=
|
||||||
|
ngx_feature_test="int fd; struct stat sb;
|
||||||
|
fd = openat(AT_FDCWD, \".\", O_PATH|O_DIRECTORY|O_NOFOLLOW);
|
||||||
|
if (fstatat(fd, \"\", &sb, AT_EMPTY_PATH) != 0) return 1"
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
|
||||||
|
# sendfile()
|
||||||
|
|
||||||
|
CC_AUX_FLAGS="$cc_aux_flags -D_GNU_SOURCE"
|
||||||
|
ngx_feature="sendfile()"
|
||||||
|
ngx_feature_name="NGX_HAVE_SENDFILE"
|
||||||
|
ngx_feature_run=yes
|
||||||
|
ngx_feature_incs="#include <sys/sendfile.h>
|
||||||
|
#include <errno.h>"
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs=
|
||||||
|
ngx_feature_test="int s = 0, fd = 1;
|
||||||
|
ssize_t n; off_t off = 0;
|
||||||
|
n = sendfile(s, fd, &off, 1);
|
||||||
|
if (n == -1 && errno == ENOSYS) return 1"
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
if [ $ngx_found = yes ]; then
|
||||||
|
CORE_SRCS="$CORE_SRCS $LINUX_SENDFILE_SRCS"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# sendfile64()
|
||||||
|
|
||||||
|
CC_AUX_FLAGS="$cc_aux_flags -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64"
|
||||||
|
ngx_feature="sendfile64()"
|
||||||
|
ngx_feature_name="NGX_HAVE_SENDFILE64"
|
||||||
|
ngx_feature_run=yes
|
||||||
|
ngx_feature_incs="#include <sys/sendfile.h>
|
||||||
|
#include <errno.h>"
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs=
|
||||||
|
ngx_feature_test="int s = 0, fd = 1;
|
||||||
|
ssize_t n; off_t off = 0;
|
||||||
|
n = sendfile(s, fd, &off, 1);
|
||||||
|
if (n == -1 && errno == ENOSYS) return 1"
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
|
||||||
|
ngx_include="sys/prctl.h"; . auto/include
|
||||||
|
|
||||||
|
# prctl(PR_SET_DUMPABLE)
|
||||||
|
|
||||||
|
ngx_feature="prctl(PR_SET_DUMPABLE)"
|
||||||
|
ngx_feature_name="NGX_HAVE_PR_SET_DUMPABLE"
|
||||||
|
ngx_feature_run=yes
|
||||||
|
ngx_feature_incs="#include <sys/prctl.h>"
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs=
|
||||||
|
ngx_feature_test="if (prctl(PR_SET_DUMPABLE, 1, 0, 0, 0) == -1) return 1"
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
|
||||||
|
# prctl(PR_SET_KEEPCAPS)
|
||||||
|
|
||||||
|
ngx_feature="prctl(PR_SET_KEEPCAPS)"
|
||||||
|
ngx_feature_name="NGX_HAVE_PR_SET_KEEPCAPS"
|
||||||
|
ngx_feature_run=yes
|
||||||
|
ngx_feature_incs="#include <sys/prctl.h>"
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs=
|
||||||
|
ngx_feature_test="if (prctl(PR_SET_KEEPCAPS, 1, 0, 0, 0) == -1) return 1"
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
|
||||||
|
# capabilities
|
||||||
|
|
||||||
|
ngx_feature="capabilities"
|
||||||
|
ngx_feature_name="NGX_HAVE_CAPABILITIES"
|
||||||
|
ngx_feature_run=no
|
||||||
|
ngx_feature_incs="#include <linux/capability.h>
|
||||||
|
#include <sys/syscall.h>"
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs=
|
||||||
|
ngx_feature_test="struct __user_cap_data_struct data;
|
||||||
|
struct __user_cap_header_struct header;
|
||||||
|
|
||||||
|
header.version = _LINUX_CAPABILITY_VERSION_1;
|
||||||
|
data.effective = CAP_TO_MASK(CAP_NET_RAW);
|
||||||
|
data.permitted = 0;
|
||||||
|
|
||||||
|
(void) SYS_capset"
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
|
||||||
|
# crypt_r()
|
||||||
|
|
||||||
|
ngx_feature="crypt_r()"
|
||||||
|
ngx_feature_name="NGX_HAVE_GNU_CRYPT_R"
|
||||||
|
ngx_feature_run=no
|
||||||
|
ngx_feature_incs="#include <crypt.h>"
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs=-lcrypt
|
||||||
|
ngx_feature_test="struct crypt_data cd;
|
||||||
|
crypt_r(\"key\", \"salt\", &cd);"
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
|
||||||
|
ngx_include="sys/vfs.h"; . auto/include
|
||||||
|
|
||||||
|
|
||||||
|
CC_AUX_FLAGS="$cc_aux_flags -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64"
|
||||||
@@ -0,0 +1,61 @@
|
|||||||
|
|
||||||
|
# Copyright (C) Igor Sysoev
|
||||||
|
# Copyright (C) Nginx, Inc.
|
||||||
|
|
||||||
|
|
||||||
|
have=NGX_SOLARIS . auto/have_headers
|
||||||
|
|
||||||
|
CORE_INCS="$UNIX_INCS"
|
||||||
|
CORE_DEPS="$UNIX_DEPS $SOLARIS_DEPS"
|
||||||
|
CORE_SRCS="$UNIX_SRCS $SOLARIS_SRCS "
|
||||||
|
CORE_LIBS="$CORE_LIBS -lsocket -lnsl"
|
||||||
|
|
||||||
|
NGX_RPATH=YES
|
||||||
|
|
||||||
|
# Solaris's make does not support a blank line between target and rules
|
||||||
|
ngx_spacer=
|
||||||
|
|
||||||
|
CC_AUX_FLAGS="$CC_AUX_FLAGS -D_FILE_OFFSET_BITS=64 -lsocket -lnsl"
|
||||||
|
|
||||||
|
|
||||||
|
if [ $ZLIB_ASM != NO ]; then
|
||||||
|
echo "$0: error: the --with-zlib-asm=CPU option is not supported"
|
||||||
|
echo "on that platform"
|
||||||
|
echo
|
||||||
|
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
ngx_feature="sendfilev()"
|
||||||
|
ngx_feature_name="NGX_HAVE_SENDFILE"
|
||||||
|
ngx_feature_run=no
|
||||||
|
ngx_feature_incs="#include <sys/sendfile.h>"
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs="-lsendfile"
|
||||||
|
ngx_feature_test="int fd = 1; sendfilevec_t vec[1];
|
||||||
|
size_t sent; ssize_t n;
|
||||||
|
n = sendfilev(fd, vec, 1, &sent);
|
||||||
|
if (n == -1) return 1"
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
|
||||||
|
if [ $ngx_found = yes ]; then
|
||||||
|
CORE_SRCS="$CORE_SRCS $SOLARIS_SENDFILEV_SRCS"
|
||||||
|
CORE_LIBS="$CORE_LIBS -lsendfile"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
ngx_feature="event ports"
|
||||||
|
ngx_feature_name="NGX_HAVE_EVENTPORT"
|
||||||
|
ngx_feature_run=no
|
||||||
|
ngx_feature_incs="#include <port.h>"
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs=
|
||||||
|
ngx_feature_test="(void) port_create()"
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
if [ $ngx_found = yes ]; then
|
||||||
|
CORE_SRCS="$CORE_SRCS $EVENTPORT_SRCS"
|
||||||
|
EVENT_MODULES="$EVENT_MODULES $EVENTPORT_MODULE"
|
||||||
|
fi
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
|
||||||
|
# Copyright (C) Igor Sysoev
|
||||||
|
# Copyright (C) Nginx, Inc.
|
||||||
|
|
||||||
|
|
||||||
|
have=NGX_WIN32 . auto/have_headers
|
||||||
|
|
||||||
|
CORE_INCS="$WIN32_INCS"
|
||||||
|
CORE_DEPS="$WIN32_DEPS"
|
||||||
|
CORE_SRCS="$WIN32_SRCS $IOCP_SRCS"
|
||||||
|
OS_CONFIG="$WIN32_CONFIG"
|
||||||
|
NGX_ICONS="$NGX_WIN32_ICONS"
|
||||||
|
SELECT_SRCS=$WIN32_SELECT_SRCS
|
||||||
|
|
||||||
|
ngx_pic_opt=
|
||||||
|
ngx_binext=".exe"
|
||||||
|
|
||||||
|
case "$NGX_CC_NAME" in
|
||||||
|
|
||||||
|
gcc)
|
||||||
|
CORE_LIBS="$CORE_LIBS -ladvapi32 -lws2_32"
|
||||||
|
MAIN_LINK="$MAIN_LINK -Wl,--export-all-symbols"
|
||||||
|
MAIN_LINK="$MAIN_LINK -Wl,--out-implib=$NGX_OBJS/libnginx.a"
|
||||||
|
MODULE_LINK="-shared -L $NGX_OBJS -lnginx"
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
CORE_LIBS="$CORE_LIBS advapi32.lib ws2_32.lib"
|
||||||
|
;;
|
||||||
|
|
||||||
|
esac
|
||||||
|
|
||||||
|
EVENT_MODULES="$EVENT_MODULES $IOCP_MODULE"
|
||||||
|
EVENT_FOUND=YES
|
||||||
|
|
||||||
|
if [ $EVENT_SELECT = NO ]; then
|
||||||
|
CORE_SRCS="$CORE_SRCS $SELECT_SRCS"
|
||||||
|
EVENT_MODULES="$EVENT_MODULES $SELECT_MODULE"
|
||||||
|
fi
|
||||||
|
|
||||||
|
have=NGX_HAVE_INET6 . auto/have
|
||||||
|
|
||||||
|
have=NGX_HAVE_IOCP . auto/have
|
||||||
+263
@@ -0,0 +1,263 @@
|
|||||||
|
|
||||||
|
# Copyright (C) Igor Sysoev
|
||||||
|
# Copyright (C) Nginx, Inc.
|
||||||
|
|
||||||
|
|
||||||
|
CORE_MODULES="ngx_core_module ngx_errlog_module ngx_conf_module"
|
||||||
|
|
||||||
|
CORE_INCS="src/core"
|
||||||
|
|
||||||
|
CORE_DEPS="src/core/nginx.h \
|
||||||
|
src/core/ngx_config.h \
|
||||||
|
src/core/ngx_core.h \
|
||||||
|
src/core/ngx_log.h \
|
||||||
|
src/core/ngx_palloc.h \
|
||||||
|
src/core/ngx_array.h \
|
||||||
|
src/core/ngx_list.h \
|
||||||
|
src/core/ngx_hash.h \
|
||||||
|
src/core/ngx_buf.h \
|
||||||
|
src/core/ngx_queue.h \
|
||||||
|
src/core/ngx_string.h \
|
||||||
|
src/core/ngx_parse.h \
|
||||||
|
src/core/ngx_parse_time.h \
|
||||||
|
src/core/ngx_inet.h \
|
||||||
|
src/core/ngx_file.h \
|
||||||
|
src/core/ngx_crc.h \
|
||||||
|
src/core/ngx_crc32.h \
|
||||||
|
src/core/ngx_murmurhash.h \
|
||||||
|
src/core/ngx_md5.h \
|
||||||
|
src/core/ngx_sha1.h \
|
||||||
|
src/core/ngx_rbtree.h \
|
||||||
|
src/core/ngx_radix_tree.h \
|
||||||
|
src/core/ngx_rwlock.h \
|
||||||
|
src/core/ngx_slab.h \
|
||||||
|
src/core/ngx_times.h \
|
||||||
|
src/core/ngx_shmtx.h \
|
||||||
|
src/core/ngx_connection.h \
|
||||||
|
src/core/ngx_cycle.h \
|
||||||
|
src/core/ngx_conf_file.h \
|
||||||
|
src/core/ngx_module.h \
|
||||||
|
src/core/ngx_resolver.h \
|
||||||
|
src/core/ngx_open_file_cache.h \
|
||||||
|
src/core/ngx_crypt.h \
|
||||||
|
src/core/ngx_proxy_protocol.h \
|
||||||
|
src/core/ngx_syslog.h"
|
||||||
|
|
||||||
|
|
||||||
|
CORE_SRCS="src/core/nginx.c \
|
||||||
|
src/core/ngx_log.c \
|
||||||
|
src/core/ngx_palloc.c \
|
||||||
|
src/core/ngx_array.c \
|
||||||
|
src/core/ngx_list.c \
|
||||||
|
src/core/ngx_hash.c \
|
||||||
|
src/core/ngx_buf.c \
|
||||||
|
src/core/ngx_queue.c \
|
||||||
|
src/core/ngx_output_chain.c \
|
||||||
|
src/core/ngx_string.c \
|
||||||
|
src/core/ngx_parse.c \
|
||||||
|
src/core/ngx_parse_time.c \
|
||||||
|
src/core/ngx_inet.c \
|
||||||
|
src/core/ngx_file.c \
|
||||||
|
src/core/ngx_crc32.c \
|
||||||
|
src/core/ngx_murmurhash.c \
|
||||||
|
src/core/ngx_md5.c \
|
||||||
|
src/core/ngx_sha1.c \
|
||||||
|
src/core/ngx_rbtree.c \
|
||||||
|
src/core/ngx_radix_tree.c \
|
||||||
|
src/core/ngx_slab.c \
|
||||||
|
src/core/ngx_times.c \
|
||||||
|
src/core/ngx_shmtx.c \
|
||||||
|
src/core/ngx_connection.c \
|
||||||
|
src/core/ngx_cycle.c \
|
||||||
|
src/core/ngx_spinlock.c \
|
||||||
|
src/core/ngx_rwlock.c \
|
||||||
|
src/core/ngx_cpuinfo.c \
|
||||||
|
src/core/ngx_conf_file.c \
|
||||||
|
src/core/ngx_module.c \
|
||||||
|
src/core/ngx_resolver.c \
|
||||||
|
src/core/ngx_open_file_cache.c \
|
||||||
|
src/core/ngx_crypt.c \
|
||||||
|
src/core/ngx_proxy_protocol.c \
|
||||||
|
src/core/ngx_syslog.c"
|
||||||
|
|
||||||
|
|
||||||
|
EVENT_MODULES="ngx_events_module ngx_event_core_module"
|
||||||
|
|
||||||
|
EVENT_INCS="src/event src/event/modules"
|
||||||
|
|
||||||
|
EVENT_DEPS="src/event/ngx_event.h \
|
||||||
|
src/event/ngx_event_timer.h \
|
||||||
|
src/event/ngx_event_posted.h \
|
||||||
|
src/event/ngx_event_connect.h \
|
||||||
|
src/event/ngx_event_pipe.h"
|
||||||
|
|
||||||
|
EVENT_SRCS="src/event/ngx_event.c \
|
||||||
|
src/event/ngx_event_timer.c \
|
||||||
|
src/event/ngx_event_posted.c \
|
||||||
|
src/event/ngx_event_accept.c \
|
||||||
|
src/event/ngx_event_connect.c \
|
||||||
|
src/event/ngx_event_pipe.c"
|
||||||
|
|
||||||
|
|
||||||
|
SELECT_MODULE=ngx_select_module
|
||||||
|
SELECT_SRCS=src/event/modules/ngx_select_module.c
|
||||||
|
WIN32_SELECT_SRCS=src/event/modules/ngx_win32_select_module.c
|
||||||
|
|
||||||
|
POLL_MODULE=ngx_poll_module
|
||||||
|
POLL_SRCS=src/event/modules/ngx_poll_module.c
|
||||||
|
|
||||||
|
KQUEUE_MODULE=ngx_kqueue_module
|
||||||
|
KQUEUE_SRCS=src/event/modules/ngx_kqueue_module.c
|
||||||
|
|
||||||
|
DEVPOLL_MODULE=ngx_devpoll_module
|
||||||
|
DEVPOLL_SRCS=src/event/modules/ngx_devpoll_module.c
|
||||||
|
|
||||||
|
EVENTPORT_MODULE=ngx_eventport_module
|
||||||
|
EVENTPORT_SRCS=src/event/modules/ngx_eventport_module.c
|
||||||
|
|
||||||
|
EPOLL_MODULE=ngx_epoll_module
|
||||||
|
EPOLL_SRCS=src/event/modules/ngx_epoll_module.c
|
||||||
|
|
||||||
|
IOCP_MODULE=ngx_iocp_module
|
||||||
|
IOCP_SRCS=src/event/modules/ngx_iocp_module.c
|
||||||
|
|
||||||
|
FILE_AIO_SRCS="src/os/unix/ngx_file_aio_read.c"
|
||||||
|
LINUX_AIO_SRCS="src/os/unix/ngx_linux_aio_read.c"
|
||||||
|
|
||||||
|
UNIX_INCS="$CORE_INCS $EVENT_INCS src/os/unix"
|
||||||
|
|
||||||
|
UNIX_DEPS="$CORE_DEPS $EVENT_DEPS \
|
||||||
|
src/os/unix/ngx_time.h \
|
||||||
|
src/os/unix/ngx_errno.h \
|
||||||
|
src/os/unix/ngx_alloc.h \
|
||||||
|
src/os/unix/ngx_files.h \
|
||||||
|
src/os/unix/ngx_channel.h \
|
||||||
|
src/os/unix/ngx_shmem.h \
|
||||||
|
src/os/unix/ngx_process.h \
|
||||||
|
src/os/unix/ngx_setaffinity.h \
|
||||||
|
src/os/unix/ngx_setproctitle.h \
|
||||||
|
src/os/unix/ngx_atomic.h \
|
||||||
|
src/os/unix/ngx_gcc_atomic_x86.h \
|
||||||
|
src/os/unix/ngx_thread.h \
|
||||||
|
src/os/unix/ngx_socket.h \
|
||||||
|
src/os/unix/ngx_os.h \
|
||||||
|
src/os/unix/ngx_user.h \
|
||||||
|
src/os/unix/ngx_dlopen.h \
|
||||||
|
src/os/unix/ngx_process_cycle.h"
|
||||||
|
|
||||||
|
# add to UNIX_DEPS
|
||||||
|
# src/os/unix/ngx_gcc_atomic_amd64.h \
|
||||||
|
# src/os/unix/ngx_gcc_atomic_sparc64.h \
|
||||||
|
# src/os/unix/ngx_gcc_atomic_ppc.h \
|
||||||
|
# src/os/unix/ngx_sunpro_atomic_sparc64.h \
|
||||||
|
# src/os/unix/ngx_sunpro_x86.il \
|
||||||
|
# src/os/unix/ngx_sunpro_amd64.il \
|
||||||
|
# src/os/unix/ngx_sunpro_sparc64.il \
|
||||||
|
|
||||||
|
|
||||||
|
UNIX_SRCS="$CORE_SRCS $EVENT_SRCS \
|
||||||
|
src/os/unix/ngx_time.c \
|
||||||
|
src/os/unix/ngx_errno.c \
|
||||||
|
src/os/unix/ngx_alloc.c \
|
||||||
|
src/os/unix/ngx_files.c \
|
||||||
|
src/os/unix/ngx_socket.c \
|
||||||
|
src/os/unix/ngx_recv.c \
|
||||||
|
src/os/unix/ngx_readv_chain.c \
|
||||||
|
src/os/unix/ngx_udp_recv.c \
|
||||||
|
src/os/unix/ngx_send.c \
|
||||||
|
src/os/unix/ngx_writev_chain.c \
|
||||||
|
src/os/unix/ngx_udp_send.c \
|
||||||
|
src/os/unix/ngx_udp_sendmsg_chain.c \
|
||||||
|
src/os/unix/ngx_channel.c \
|
||||||
|
src/os/unix/ngx_shmem.c \
|
||||||
|
src/os/unix/ngx_process.c \
|
||||||
|
src/os/unix/ngx_daemon.c \
|
||||||
|
src/os/unix/ngx_setaffinity.c \
|
||||||
|
src/os/unix/ngx_setproctitle.c \
|
||||||
|
src/os/unix/ngx_posix_init.c \
|
||||||
|
src/os/unix/ngx_user.c \
|
||||||
|
src/os/unix/ngx_dlopen.c \
|
||||||
|
src/os/unix/ngx_process_cycle.c"
|
||||||
|
|
||||||
|
POSIX_DEPS=src/os/unix/ngx_posix_config.h
|
||||||
|
|
||||||
|
THREAD_POOL_MODULE=ngx_thread_pool_module
|
||||||
|
THREAD_POOL_DEPS=src/core/ngx_thread_pool.h
|
||||||
|
THREAD_POOL_SRCS="src/core/ngx_thread_pool.c
|
||||||
|
src/os/unix/ngx_thread_cond.c
|
||||||
|
src/os/unix/ngx_thread_mutex.c
|
||||||
|
src/os/unix/ngx_thread_id.c"
|
||||||
|
|
||||||
|
FREEBSD_DEPS="src/os/unix/ngx_freebsd_config.h src/os/unix/ngx_freebsd.h"
|
||||||
|
FREEBSD_SRCS=src/os/unix/ngx_freebsd_init.c
|
||||||
|
FREEBSD_SENDFILE_SRCS=src/os/unix/ngx_freebsd_sendfile_chain.c
|
||||||
|
|
||||||
|
LINUX_DEPS="src/os/unix/ngx_linux_config.h src/os/unix/ngx_linux.h"
|
||||||
|
LINUX_SRCS=src/os/unix/ngx_linux_init.c
|
||||||
|
LINUX_SENDFILE_SRCS=src/os/unix/ngx_linux_sendfile_chain.c
|
||||||
|
|
||||||
|
|
||||||
|
SOLARIS_DEPS="src/os/unix/ngx_solaris_config.h src/os/unix/ngx_solaris.h"
|
||||||
|
SOLARIS_SRCS=src/os/unix/ngx_solaris_init.c
|
||||||
|
SOLARIS_SENDFILEV_SRCS=src/os/unix/ngx_solaris_sendfilev_chain.c
|
||||||
|
|
||||||
|
|
||||||
|
DARWIN_DEPS="src/os/unix/ngx_darwin_config.h src/os/unix/ngx_darwin.h"
|
||||||
|
DARWIN_SRCS=src/os/unix/ngx_darwin_init.c
|
||||||
|
DARWIN_SENDFILE_SRCS=src/os/unix/ngx_darwin_sendfile_chain.c
|
||||||
|
|
||||||
|
|
||||||
|
WIN32_INCS="$CORE_INCS $EVENT_INCS src/os/win32"
|
||||||
|
|
||||||
|
WIN32_DEPS="$CORE_DEPS $EVENT_DEPS \
|
||||||
|
src/os/win32/ngx_win32_config.h \
|
||||||
|
src/os/win32/ngx_time.h \
|
||||||
|
src/os/win32/ngx_errno.h \
|
||||||
|
src/os/win32/ngx_alloc.h \
|
||||||
|
src/os/win32/ngx_files.h \
|
||||||
|
src/os/win32/ngx_shmem.h \
|
||||||
|
src/os/win32/ngx_process.h \
|
||||||
|
src/os/win32/ngx_atomic.h \
|
||||||
|
src/os/win32/ngx_thread.h \
|
||||||
|
src/os/win32/ngx_socket.h \
|
||||||
|
src/os/win32/ngx_os.h \
|
||||||
|
src/os/win32/ngx_user.h \
|
||||||
|
src/os/win32/ngx_dlopen.h \
|
||||||
|
src/os/win32/ngx_process_cycle.h"
|
||||||
|
|
||||||
|
WIN32_CONFIG=src/os/win32/ngx_win32_config.h
|
||||||
|
|
||||||
|
WIN32_SRCS="$CORE_SRCS $EVENT_SRCS \
|
||||||
|
src/os/win32/ngx_errno.c \
|
||||||
|
src/os/win32/ngx_alloc.c \
|
||||||
|
src/os/win32/ngx_files.c \
|
||||||
|
src/os/win32/ngx_shmem.c \
|
||||||
|
src/os/win32/ngx_time.c \
|
||||||
|
src/os/win32/ngx_process.c \
|
||||||
|
src/os/win32/ngx_thread.c \
|
||||||
|
src/os/win32/ngx_socket.c \
|
||||||
|
src/os/win32/ngx_wsarecv.c \
|
||||||
|
src/os/win32/ngx_wsarecv_chain.c \
|
||||||
|
src/os/win32/ngx_udp_wsarecv.c \
|
||||||
|
src/os/win32/ngx_wsasend.c \
|
||||||
|
src/os/win32/ngx_udp_wsasend.c \
|
||||||
|
src/os/win32/ngx_wsasend_chain.c \
|
||||||
|
src/os/win32/ngx_win32_init.c \
|
||||||
|
src/os/win32/ngx_user.c \
|
||||||
|
src/os/win32/ngx_dlopen.c \
|
||||||
|
src/os/win32/ngx_event_log.c \
|
||||||
|
src/os/win32/ngx_process_cycle.c \
|
||||||
|
src/event/ngx_event_acceptex.c"
|
||||||
|
|
||||||
|
NGX_WIN32_ICONS="src/os/win32/nginx.ico"
|
||||||
|
NGX_WIN32_RC="src/os/win32/nginx.rc"
|
||||||
|
|
||||||
|
HTTP_SPDY_MODULE=ngx_http_spdy_module
|
||||||
|
HTTP_SPDY_FILTER_MODULE=ngx_http_spdy_filter_module
|
||||||
|
HTTP_SPDY_DEPS="src/http/ngx_http_spdy.h \
|
||||||
|
src/http/ngx_http_spdy_module.h"
|
||||||
|
HTTP_SPDY_SRCS="src/http/ngx_http_spdy.c \
|
||||||
|
src/http/ngx_http_spdy_module.c"
|
||||||
|
|
||||||
|
|
||||||
|
HTTP_FILE_CACHE_SRCS=src/http/ngx_http_file_cache.c
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
|
||||||
|
# Copyright (C) Igor Sysoev
|
||||||
|
# Copyright (C) Nginx, Inc.
|
||||||
|
|
||||||
|
|
||||||
|
have=NGX_SUPPRESS_WARN . auto/have
|
||||||
|
|
||||||
|
have=NGX_SMP . auto/have
|
||||||
@@ -0,0 +1,82 @@
|
|||||||
|
|
||||||
|
# Copyright (C) Igor Sysoev
|
||||||
|
# Copyright (C) Nginx, Inc.
|
||||||
|
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo "Configuration summary"
|
||||||
|
|
||||||
|
|
||||||
|
if [ $USE_THREADS = YES ]; then
|
||||||
|
echo " + using threads"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $USE_PCRE = DISABLED ]; then
|
||||||
|
echo " + PCRE library is disabled"
|
||||||
|
|
||||||
|
else
|
||||||
|
case $PCRE in
|
||||||
|
YES) echo " + using system PCRE library" ;;
|
||||||
|
NONE) echo " + PCRE library is not used" ;;
|
||||||
|
*) echo " + using PCRE library: $PCRE" ;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
|
||||||
|
case $OPENSSL in
|
||||||
|
YES) echo " + using system OpenSSL library" ;;
|
||||||
|
NONE) echo " + OpenSSL library is not used" ;;
|
||||||
|
*) echo " + using OpenSSL library: $OPENSSL" ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
case $ZLIB in
|
||||||
|
YES) echo " + using system zlib library" ;;
|
||||||
|
NONE) echo " + zlib library is not used" ;;
|
||||||
|
*) echo " + using zlib library: $ZLIB" ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
case $NGX_LIBATOMIC in
|
||||||
|
YES) echo " + using system libatomic_ops library" ;;
|
||||||
|
NO) ;; # not used
|
||||||
|
*) echo " + using libatomic_ops library: $NGX_LIBATOMIC" ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
echo
|
||||||
|
|
||||||
|
|
||||||
|
cat << END
|
||||||
|
nginx path prefix: "$NGX_PREFIX"
|
||||||
|
nginx binary file: "$NGX_SBIN_PATH"
|
||||||
|
nginx modules path: "$NGX_MODULES_PATH"
|
||||||
|
nginx configuration prefix: "$NGX_CONF_PREFIX"
|
||||||
|
nginx configuration file: "$NGX_CONF_PATH"
|
||||||
|
nginx pid file: "$NGX_PID_PATH"
|
||||||
|
END
|
||||||
|
|
||||||
|
if test -n "$NGX_ERROR_LOG_PATH"; then
|
||||||
|
echo " nginx error log file: \"$NGX_ERROR_LOG_PATH\""
|
||||||
|
else
|
||||||
|
echo " nginx logs errors to stderr"
|
||||||
|
fi
|
||||||
|
|
||||||
|
cat << END
|
||||||
|
nginx http access log file: "$NGX_HTTP_LOG_PATH"
|
||||||
|
nginx http client request body temporary files: "$NGX_HTTP_CLIENT_TEMP_PATH"
|
||||||
|
END
|
||||||
|
|
||||||
|
if [ $HTTP_PROXY = YES ]; then
|
||||||
|
echo " nginx http proxy temporary files: \"$NGX_HTTP_PROXY_TEMP_PATH\""
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $HTTP_FASTCGI = YES ]; then
|
||||||
|
echo " nginx http fastcgi temporary files: \"$NGX_HTTP_FASTCGI_TEMP_PATH\""
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $HTTP_UWSGI = YES ]; then
|
||||||
|
echo " nginx http uwsgi temporary files: \"$NGX_HTTP_UWSGI_TEMP_PATH\""
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $HTTP_SCGI = YES ]; then
|
||||||
|
echo " nginx http scgi temporary files: \"$NGX_HTTP_SCGI_TEMP_PATH\""
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "$NGX_POST_CONF_MSG"
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
|
||||||
|
# Copyright (C) Nginx, Inc.
|
||||||
|
|
||||||
|
|
||||||
|
if [ $USE_THREADS = YES ]; then
|
||||||
|
|
||||||
|
if [ "$NGX_PLATFORM" = win32 ]; then
|
||||||
|
cat << END
|
||||||
|
|
||||||
|
$0: --with-threads is not supported on Windows
|
||||||
|
|
||||||
|
END
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
have=NGX_THREADS . auto/have
|
||||||
|
CORE_DEPS="$CORE_DEPS $THREAD_POOL_DEPS"
|
||||||
|
CORE_SRCS="$CORE_SRCS $THREAD_POOL_SRCS"
|
||||||
|
CORE_LIBS="$CORE_LIBS -lpthread"
|
||||||
|
fi
|
||||||
@@ -0,0 +1,76 @@
|
|||||||
|
|
||||||
|
# Copyright (C) Igor Sysoev
|
||||||
|
# Copyright (C) Nginx, Inc.
|
||||||
|
|
||||||
|
|
||||||
|
echo $ngx_n "checking for $ngx_type size ...$ngx_c"
|
||||||
|
|
||||||
|
cat << END >> $NGX_AUTOCONF_ERR
|
||||||
|
|
||||||
|
----------------------------------------
|
||||||
|
checking for $ngx_type size
|
||||||
|
|
||||||
|
END
|
||||||
|
|
||||||
|
ngx_size=
|
||||||
|
|
||||||
|
cat << END > $NGX_AUTOTEST.c
|
||||||
|
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <sys/time.h>
|
||||||
|
$NGX_INCLUDE_UNISTD_H
|
||||||
|
#include <signal.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <sys/resource.h>
|
||||||
|
$NGX_INCLUDE_INTTYPES_H
|
||||||
|
$NGX_INCLUDE_AUTO_CONFIG_H
|
||||||
|
|
||||||
|
int main(void) {
|
||||||
|
printf("%d", (int) sizeof($ngx_type));
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
ngx_test="$CC $CC_TEST_FLAGS $CC_AUX_FLAGS \
|
||||||
|
-o $NGX_AUTOTEST $NGX_AUTOTEST.c $NGX_LD_OPT $ngx_feature_libs"
|
||||||
|
|
||||||
|
eval "$ngx_test >> $NGX_AUTOCONF_ERR 2>&1"
|
||||||
|
|
||||||
|
|
||||||
|
if [ -x $NGX_AUTOTEST ]; then
|
||||||
|
ngx_size=`$NGX_AUTOTEST`
|
||||||
|
echo " $ngx_size bytes"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
case $ngx_size in
|
||||||
|
4)
|
||||||
|
ngx_max_value=2147483647
|
||||||
|
ngx_max_len='(sizeof("-2147483648") - 1)'
|
||||||
|
;;
|
||||||
|
|
||||||
|
8)
|
||||||
|
ngx_max_value=9223372036854775807LL
|
||||||
|
ngx_max_len='(sizeof("-9223372036854775808") - 1)'
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
echo
|
||||||
|
echo "$0: error: can not detect $ngx_type size"
|
||||||
|
|
||||||
|
echo "----------" >> $NGX_AUTOCONF_ERR
|
||||||
|
cat $NGX_AUTOTEST.c >> $NGX_AUTOCONF_ERR
|
||||||
|
echo "----------" >> $NGX_AUTOCONF_ERR
|
||||||
|
echo $ngx_test >> $NGX_AUTOCONF_ERR
|
||||||
|
echo "----------" >> $NGX_AUTOCONF_ERR
|
||||||
|
|
||||||
|
rm -rf $NGX_AUTOTEST*
|
||||||
|
|
||||||
|
exit 1
|
||||||
|
esac
|
||||||
|
|
||||||
|
|
||||||
|
rm -rf $NGX_AUTOTEST*
|
||||||
|
|
||||||
@@ -0,0 +1,82 @@
|
|||||||
|
|
||||||
|
# Copyright (C) Igor Sysoev
|
||||||
|
# Copyright (C) Nginx, Inc.
|
||||||
|
|
||||||
|
|
||||||
|
echo $ngx_n "checking for $ngx_type ...$ngx_c"
|
||||||
|
|
||||||
|
cat << END >> $NGX_AUTOCONF_ERR
|
||||||
|
|
||||||
|
----------------------------------------
|
||||||
|
checking for $ngx_type
|
||||||
|
|
||||||
|
END
|
||||||
|
|
||||||
|
ngx_found=no
|
||||||
|
|
||||||
|
for ngx_try in $ngx_type $ngx_types
|
||||||
|
do
|
||||||
|
|
||||||
|
cat << END > $NGX_AUTOTEST.c
|
||||||
|
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <signal.h>
|
||||||
|
#include <sys/socket.h>
|
||||||
|
#include <sys/time.h>
|
||||||
|
#include <sys/resource.h>
|
||||||
|
#include <netinet/in.h>
|
||||||
|
$NGX_INCLUDE_INTTYPES_H
|
||||||
|
|
||||||
|
int main(void) {
|
||||||
|
$ngx_try i = 0;
|
||||||
|
return (int) i;
|
||||||
|
}
|
||||||
|
|
||||||
|
END
|
||||||
|
|
||||||
|
ngx_test="$CC $CC_TEST_FLAGS $CC_AUX_FLAGS \
|
||||||
|
-o $NGX_AUTOTEST $NGX_AUTOTEST.c $NGX_LD_OPT $ngx_feature_libs"
|
||||||
|
|
||||||
|
eval "$ngx_test >> $NGX_AUTOCONF_ERR 2>&1"
|
||||||
|
|
||||||
|
if [ -x $NGX_AUTOTEST ]; then
|
||||||
|
if [ $ngx_try = $ngx_type ]; then
|
||||||
|
echo " found"
|
||||||
|
ngx_found=yes
|
||||||
|
else
|
||||||
|
echo ", $ngx_try used"
|
||||||
|
ngx_found=$ngx_try
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $ngx_found = no ]; then
|
||||||
|
if [ $ngx_try = $ngx_type ]; then
|
||||||
|
echo $ngx_n " $ngx_try not found$ngx_c"
|
||||||
|
else
|
||||||
|
echo $ngx_n ", $ngx_try not found$ngx_c"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "----------" >> $NGX_AUTOCONF_ERR
|
||||||
|
cat $NGX_AUTOTEST.c >> $NGX_AUTOCONF_ERR
|
||||||
|
echo "----------" >> $NGX_AUTOCONF_ERR
|
||||||
|
echo $ngx_test >> $NGX_AUTOCONF_ERR
|
||||||
|
echo "----------" >> $NGX_AUTOCONF_ERR
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -rf $NGX_AUTOTEST*
|
||||||
|
|
||||||
|
if [ $ngx_found != no ]; then
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ $ngx_found = no ]; then
|
||||||
|
echo
|
||||||
|
echo "$0: error: can not define $ngx_type"
|
||||||
|
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $ngx_found != yes ]; then
|
||||||
|
echo "typedef $ngx_found $ngx_type;" >> $NGX_AUTO_CONFIG_H
|
||||||
|
fi
|
||||||
@@ -0,0 +1,50 @@
|
|||||||
|
|
||||||
|
# Copyright (C) Igor Sysoev
|
||||||
|
# Copyright (C) Nginx, Inc.
|
||||||
|
|
||||||
|
|
||||||
|
echo $ngx_n "checking for uintptr_t ...$ngx_c"
|
||||||
|
|
||||||
|
cat << END >> $NGX_AUTOCONF_ERR
|
||||||
|
|
||||||
|
----------------------------------------
|
||||||
|
checking for uintptr_t
|
||||||
|
|
||||||
|
END
|
||||||
|
|
||||||
|
found=no
|
||||||
|
|
||||||
|
cat << END > $NGX_AUTOTEST.c
|
||||||
|
|
||||||
|
#include <sys/types.h>
|
||||||
|
$NGX_INCLUDE_INTTYPES_H
|
||||||
|
|
||||||
|
int main(void) {
|
||||||
|
uintptr_t i = 0;
|
||||||
|
return (int) i;
|
||||||
|
}
|
||||||
|
|
||||||
|
END
|
||||||
|
|
||||||
|
ngx_test="$CC $CC_TEST_FLAGS $CC_AUX_FLAGS \
|
||||||
|
-o $NGX_AUTOTEST $NGX_AUTOTEST.c $NGX_LD_OPT"
|
||||||
|
|
||||||
|
eval "$ngx_test >> $NGX_AUTOCONF_ERR 2>&1"
|
||||||
|
|
||||||
|
if [ -x $NGX_AUTOTEST ]; then
|
||||||
|
echo " uintptr_t found"
|
||||||
|
found=yes
|
||||||
|
else
|
||||||
|
echo $ngx_n " uintptr_t not found" $ngx_c
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -rf $NGX_AUTOTEST*
|
||||||
|
|
||||||
|
|
||||||
|
if [ $found = no ]; then
|
||||||
|
found="uint`expr 8 \* $ngx_ptr_size`_t"
|
||||||
|
echo ", $found used"
|
||||||
|
|
||||||
|
echo "typedef $found uintptr_t;" >> $NGX_AUTO_CONFIG_H
|
||||||
|
echo "typedef $found intptr_t;" | sed -e 's/u//g' >> $NGX_AUTO_CONFIG_H
|
||||||
|
fi
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
|
||||||
|
# Copyright (C) Igor Sysoev
|
||||||
|
# Copyright (C) Nginx, Inc.
|
||||||
|
|
||||||
|
|
||||||
|
cat << END >> $NGX_AUTO_CONFIG_H
|
||||||
|
|
||||||
|
#ifndef $ngx_param
|
||||||
|
#define $ngx_param $ngx_value
|
||||||
|
#endif
|
||||||
|
|
||||||
|
END
|
||||||
@@ -0,0 +1,1002 @@
|
|||||||
|
|
||||||
|
# Copyright (C) Igor Sysoev
|
||||||
|
# Copyright (C) Nginx, Inc.
|
||||||
|
|
||||||
|
|
||||||
|
NGX_USER=${NGX_USER:-nobody}
|
||||||
|
|
||||||
|
if [ -z "$NGX_GROUP" ]; then
|
||||||
|
if [ $NGX_USER = nobody ]; then
|
||||||
|
if grep nobody /etc/group 2>&1 >/dev/null; then
|
||||||
|
echo "checking for nobody group ... found"
|
||||||
|
NGX_GROUP=nobody
|
||||||
|
else
|
||||||
|
echo "checking for nobody group ... not found"
|
||||||
|
|
||||||
|
if grep nogroup /etc/group 2>&1 >/dev/null; then
|
||||||
|
echo "checking for nogroup group ... found"
|
||||||
|
NGX_GROUP=nogroup
|
||||||
|
else
|
||||||
|
echo "checking for nogroup group ... not found"
|
||||||
|
NGX_GROUP=nobody
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
NGX_GROUP=$NGX_USER
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
ngx_feature="poll()"
|
||||||
|
ngx_feature_name=
|
||||||
|
ngx_feature_run=no
|
||||||
|
ngx_feature_incs="#include <poll.h>"
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs=
|
||||||
|
ngx_feature_test="int n; struct pollfd pl;
|
||||||
|
pl.fd = 0;
|
||||||
|
pl.events = 0;
|
||||||
|
pl.revents = 0;
|
||||||
|
n = poll(&pl, 1, 0);
|
||||||
|
if (n == -1) return 1"
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
if [ $ngx_found = no ]; then
|
||||||
|
EVENT_POLL=NONE
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
ngx_feature="/dev/poll"
|
||||||
|
ngx_feature_name="NGX_HAVE_DEVPOLL"
|
||||||
|
ngx_feature_run=no
|
||||||
|
ngx_feature_incs="#include <sys/devpoll.h>"
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs=
|
||||||
|
ngx_feature_test="int n, dp; struct dvpoll dvp;
|
||||||
|
dp = 0;
|
||||||
|
dvp.dp_fds = NULL;
|
||||||
|
dvp.dp_nfds = 0;
|
||||||
|
dvp.dp_timeout = 0;
|
||||||
|
n = ioctl(dp, DP_POLL, &dvp);
|
||||||
|
if (n == -1) return 1"
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
if [ $ngx_found = yes ]; then
|
||||||
|
CORE_SRCS="$CORE_SRCS $DEVPOLL_SRCS"
|
||||||
|
EVENT_MODULES="$EVENT_MODULES $DEVPOLL_MODULE"
|
||||||
|
EVENT_FOUND=YES
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
if test -z "$NGX_KQUEUE_CHECKED"; then
|
||||||
|
ngx_feature="kqueue"
|
||||||
|
ngx_feature_name="NGX_HAVE_KQUEUE"
|
||||||
|
ngx_feature_run=no
|
||||||
|
ngx_feature_incs="#include <sys/event.h>"
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs=
|
||||||
|
ngx_feature_test="(void) kqueue()"
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
if [ $ngx_found = yes ]; then
|
||||||
|
|
||||||
|
have=NGX_HAVE_CLEAR_EVENT . auto/have
|
||||||
|
EVENT_MODULES="$EVENT_MODULES $KQUEUE_MODULE"
|
||||||
|
CORE_SRCS="$CORE_SRCS $KQUEUE_SRCS"
|
||||||
|
EVENT_FOUND=YES
|
||||||
|
|
||||||
|
ngx_feature="kqueue's NOTE_LOWAT"
|
||||||
|
ngx_feature_name="NGX_HAVE_LOWAT_EVENT"
|
||||||
|
ngx_feature_run=no
|
||||||
|
ngx_feature_incs="#include <sys/event.h>"
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs=
|
||||||
|
ngx_feature_test="struct kevent kev;
|
||||||
|
kev.fflags = NOTE_LOWAT;
|
||||||
|
(void) kev"
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
|
||||||
|
ngx_feature="kqueue's EVFILT_TIMER"
|
||||||
|
ngx_feature_name="NGX_HAVE_TIMER_EVENT"
|
||||||
|
ngx_feature_run=yes
|
||||||
|
ngx_feature_incs="#include <sys/event.h>
|
||||||
|
#include <sys/time.h>"
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs=
|
||||||
|
ngx_feature_test="int kq;
|
||||||
|
struct kevent kev;
|
||||||
|
struct timespec ts;
|
||||||
|
|
||||||
|
if ((kq = kqueue()) == -1) return 1;
|
||||||
|
|
||||||
|
kev.ident = 0;
|
||||||
|
kev.filter = EVFILT_TIMER;
|
||||||
|
kev.flags = EV_ADD|EV_ENABLE;
|
||||||
|
kev.fflags = 0;
|
||||||
|
kev.data = 1000;
|
||||||
|
kev.udata = 0;
|
||||||
|
|
||||||
|
ts.tv_sec = 0;
|
||||||
|
ts.tv_nsec = 0;
|
||||||
|
|
||||||
|
if (kevent(kq, &kev, 1, &kev, 1, &ts) == -1) return 1;
|
||||||
|
|
||||||
|
if (kev.flags & EV_ERROR) return 1;"
|
||||||
|
|
||||||
|
. auto/feature
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
if [ "$NGX_SYSTEM" = "NetBSD" ]; then
|
||||||
|
|
||||||
|
# NetBSD 2.0 incompatibly defines kevent.udata as "intptr_t"
|
||||||
|
|
||||||
|
cat << END >> $NGX_AUTO_CONFIG_H
|
||||||
|
|
||||||
|
#define NGX_KQUEUE_UDATA_T
|
||||||
|
|
||||||
|
END
|
||||||
|
|
||||||
|
else
|
||||||
|
cat << END >> $NGX_AUTO_CONFIG_H
|
||||||
|
|
||||||
|
#define NGX_KQUEUE_UDATA_T (void *)
|
||||||
|
|
||||||
|
END
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
ngx_feature="crypt()"
|
||||||
|
ngx_feature_name=
|
||||||
|
ngx_feature_run=no
|
||||||
|
ngx_feature_incs=
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs=
|
||||||
|
ngx_feature_test="crypt(\"test\", \"salt\");"
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
|
||||||
|
if [ $ngx_found = no ]; then
|
||||||
|
|
||||||
|
ngx_feature="crypt() in libcrypt"
|
||||||
|
ngx_feature_name=
|
||||||
|
ngx_feature_run=no
|
||||||
|
ngx_feature_incs=
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs=-lcrypt
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
if [ $ngx_found = yes ]; then
|
||||||
|
CRYPT_LIB="-lcrypt"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
ngx_feature="F_READAHEAD"
|
||||||
|
ngx_feature_name="NGX_HAVE_F_READAHEAD"
|
||||||
|
ngx_feature_run=no
|
||||||
|
ngx_feature_incs="#include <fcntl.h>"
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs=
|
||||||
|
ngx_feature_test="fcntl(0, F_READAHEAD, 1);"
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
|
||||||
|
ngx_feature="posix_fadvise()"
|
||||||
|
ngx_feature_name="NGX_HAVE_POSIX_FADVISE"
|
||||||
|
ngx_feature_run=no
|
||||||
|
ngx_feature_incs="#include <fcntl.h>"
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs=
|
||||||
|
ngx_feature_test="posix_fadvise(0, 0, 0, POSIX_FADV_SEQUENTIAL);"
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
|
||||||
|
ngx_feature="O_DIRECT"
|
||||||
|
ngx_feature_name="NGX_HAVE_O_DIRECT"
|
||||||
|
ngx_feature_run=no
|
||||||
|
ngx_feature_incs="#include <fcntl.h>"
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs=
|
||||||
|
ngx_feature_test="fcntl(0, F_SETFL, O_DIRECT);"
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
|
||||||
|
if [ $ngx_found = yes -a "$NGX_SYSTEM" = "Linux" ]; then
|
||||||
|
have=NGX_HAVE_ALIGNED_DIRECTIO . auto/have
|
||||||
|
fi
|
||||||
|
|
||||||
|
ngx_feature="F_NOCACHE"
|
||||||
|
ngx_feature_name="NGX_HAVE_F_NOCACHE"
|
||||||
|
ngx_feature_run=no
|
||||||
|
ngx_feature_incs="#include <fcntl.h>"
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs=
|
||||||
|
ngx_feature_test="fcntl(0, F_NOCACHE, 1);"
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
|
||||||
|
ngx_feature="directio()"
|
||||||
|
ngx_feature_name="NGX_HAVE_DIRECTIO"
|
||||||
|
ngx_feature_run=no
|
||||||
|
ngx_feature_incs="#include <sys/types.h>
|
||||||
|
#include <sys/fcntl.h>"
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs=
|
||||||
|
ngx_feature_test="directio(0, DIRECTIO_ON);"
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
|
||||||
|
ngx_feature="statfs()"
|
||||||
|
ngx_feature_name="NGX_HAVE_STATFS"
|
||||||
|
ngx_feature_run=no
|
||||||
|
ngx_feature_incs="$NGX_INCLUDE_SYS_PARAM_H
|
||||||
|
$NGX_INCLUDE_SYS_MOUNT_H
|
||||||
|
$NGX_INCLUDE_SYS_VFS_H"
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs=
|
||||||
|
ngx_feature_test="struct statfs fs;
|
||||||
|
statfs(\".\", &fs);"
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
|
||||||
|
ngx_feature="statvfs()"
|
||||||
|
ngx_feature_name="NGX_HAVE_STATVFS"
|
||||||
|
ngx_feature_run=no
|
||||||
|
ngx_feature_incs="#include <sys/types.h>
|
||||||
|
#include <sys/statvfs.h>"
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs=
|
||||||
|
ngx_feature_test="struct statvfs fs;
|
||||||
|
statvfs(\".\", &fs);"
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
|
||||||
|
ngx_feature="dlopen()"
|
||||||
|
ngx_feature_name="NGX_HAVE_DLOPEN"
|
||||||
|
ngx_feature_run=no
|
||||||
|
ngx_feature_incs="#include <dlfcn.h>"
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs=
|
||||||
|
ngx_feature_test="dlopen(NULL, RTLD_NOW | RTLD_GLOBAL); dlsym(NULL, \"\")"
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
|
||||||
|
if [ $ngx_found = no ]; then
|
||||||
|
|
||||||
|
ngx_feature="dlopen() in libdl"
|
||||||
|
ngx_feature_libs="-ldl"
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
if [ $ngx_found = yes ]; then
|
||||||
|
CORE_LIBS="$CORE_LIBS -ldl"
|
||||||
|
NGX_LIBDL="-ldl"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
ngx_feature="sched_yield()"
|
||||||
|
ngx_feature_name="NGX_HAVE_SCHED_YIELD"
|
||||||
|
ngx_feature_run=no
|
||||||
|
ngx_feature_incs="#include <sched.h>"
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs=
|
||||||
|
ngx_feature_test="sched_yield()"
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
|
||||||
|
if [ $ngx_found = no ]; then
|
||||||
|
|
||||||
|
ngx_feature="sched_yield() in librt"
|
||||||
|
ngx_feature_libs="-lrt"
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
if [ $ngx_found = yes ]; then
|
||||||
|
CORE_LIBS="$CORE_LIBS -lrt"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
ngx_feature="sched_setaffinity()"
|
||||||
|
ngx_feature_name="NGX_HAVE_SCHED_SETAFFINITY"
|
||||||
|
ngx_feature_run=no
|
||||||
|
ngx_feature_incs="#include <sched.h>"
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs=
|
||||||
|
ngx_feature_test="cpu_set_t mask;
|
||||||
|
CPU_ZERO(&mask);
|
||||||
|
sched_setaffinity(0, sizeof(cpu_set_t), &mask)"
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
|
||||||
|
ngx_feature="SO_SETFIB"
|
||||||
|
ngx_feature_name="NGX_HAVE_SETFIB"
|
||||||
|
ngx_feature_run=no
|
||||||
|
ngx_feature_incs="#include <sys/socket.h>"
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs=
|
||||||
|
ngx_feature_test="setsockopt(0, SOL_SOCKET, SO_SETFIB, NULL, 0)"
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
|
||||||
|
ngx_feature="SO_REUSEPORT"
|
||||||
|
ngx_feature_name="NGX_HAVE_REUSEPORT"
|
||||||
|
ngx_feature_run=no
|
||||||
|
ngx_feature_incs="#include <sys/socket.h>"
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs=
|
||||||
|
ngx_feature_test="setsockopt(0, SOL_SOCKET, SO_REUSEPORT, NULL, 0)"
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
|
||||||
|
ngx_feature="SO_ACCEPTFILTER"
|
||||||
|
ngx_feature_name="NGX_HAVE_DEFERRED_ACCEPT"
|
||||||
|
ngx_feature_run=no
|
||||||
|
ngx_feature_incs="#include <sys/socket.h>"
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs=
|
||||||
|
ngx_feature_test="setsockopt(0, SOL_SOCKET, SO_ACCEPTFILTER, NULL, 0)"
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
|
||||||
|
# OpenBSD bind to any address for transparent proxying
|
||||||
|
|
||||||
|
ngx_feature="SO_BINDANY"
|
||||||
|
ngx_feature_name="NGX_HAVE_TRANSPARENT_PROXY"
|
||||||
|
ngx_feature_run=no
|
||||||
|
ngx_feature_incs="#include <sys/socket.h>"
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs=
|
||||||
|
ngx_feature_test="setsockopt(0, SOL_SOCKET, SO_BINDANY, NULL, 0)"
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
|
||||||
|
# Linux transparent proxying
|
||||||
|
|
||||||
|
ngx_feature="IP_TRANSPARENT"
|
||||||
|
ngx_feature_name="NGX_HAVE_TRANSPARENT_PROXY"
|
||||||
|
ngx_feature_run=no
|
||||||
|
ngx_feature_incs="#include <sys/socket.h>
|
||||||
|
#include <netinet/in.h>"
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs=
|
||||||
|
ngx_feature_test="setsockopt(0, IPPROTO_IP, IP_TRANSPARENT, NULL, 0)"
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
|
||||||
|
# FreeBSD bind to any address for transparent proxying
|
||||||
|
|
||||||
|
ngx_feature="IP_BINDANY"
|
||||||
|
ngx_feature_name="NGX_HAVE_TRANSPARENT_PROXY"
|
||||||
|
ngx_feature_run=no
|
||||||
|
ngx_feature_incs="#include <sys/socket.h>
|
||||||
|
#include <netinet/in.h>"
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs=
|
||||||
|
ngx_feature_test="setsockopt(0, IPPROTO_IP, IP_BINDANY, NULL, 0)"
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
|
||||||
|
# Linux IP_BIND_ADDRESS_NO_PORT
|
||||||
|
|
||||||
|
ngx_feature="IP_BIND_ADDRESS_NO_PORT"
|
||||||
|
ngx_feature_name="NGX_HAVE_IP_BIND_ADDRESS_NO_PORT"
|
||||||
|
ngx_feature_run=no
|
||||||
|
ngx_feature_incs="#include <sys/socket.h>
|
||||||
|
#include <netinet/in.h>"
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs=
|
||||||
|
ngx_feature_test="setsockopt(0, IPPROTO_IP, IP_BIND_ADDRESS_NO_PORT, NULL, 0)"
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
|
||||||
|
# BSD way to get IPv4 datagram destination address
|
||||||
|
|
||||||
|
ngx_feature="IP_RECVDSTADDR"
|
||||||
|
ngx_feature_name="NGX_HAVE_IP_RECVDSTADDR"
|
||||||
|
ngx_feature_run=no
|
||||||
|
ngx_feature_incs="#include <sys/socket.h>
|
||||||
|
#include <netinet/in.h>"
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs=
|
||||||
|
ngx_feature_test="setsockopt(0, IPPROTO_IP, IP_RECVDSTADDR, NULL, 0)"
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
|
||||||
|
# BSD way to set IPv4 datagram source address
|
||||||
|
|
||||||
|
ngx_feature="IP_SENDSRCADDR"
|
||||||
|
ngx_feature_name="NGX_HAVE_IP_SENDSRCADDR"
|
||||||
|
ngx_feature_run=no
|
||||||
|
ngx_feature_incs="#include <sys/socket.h>
|
||||||
|
#include <netinet/in.h>"
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs=
|
||||||
|
ngx_feature_test="setsockopt(0, IPPROTO_IP, IP_SENDSRCADDR, NULL, 0)"
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
|
||||||
|
# Linux way to get IPv4 datagram destination address
|
||||||
|
|
||||||
|
ngx_feature="IP_PKTINFO"
|
||||||
|
ngx_feature_name="NGX_HAVE_IP_PKTINFO"
|
||||||
|
ngx_feature_run=no
|
||||||
|
ngx_feature_incs="#include <sys/socket.h>
|
||||||
|
#include <netinet/in.h>"
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs=
|
||||||
|
ngx_feature_test="struct in_pktinfo pkt;
|
||||||
|
pkt.ipi_spec_dst.s_addr = INADDR_ANY;
|
||||||
|
(void) pkt;
|
||||||
|
setsockopt(0, IPPROTO_IP, IP_PKTINFO, NULL, 0)"
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
|
||||||
|
# RFC 3542 way to get IPv6 datagram destination address
|
||||||
|
|
||||||
|
ngx_feature="IPV6_RECVPKTINFO"
|
||||||
|
ngx_feature_name="NGX_HAVE_IPV6_RECVPKTINFO"
|
||||||
|
ngx_feature_run=no
|
||||||
|
ngx_feature_incs="#include <sys/socket.h>
|
||||||
|
#include <netinet/in.h>"
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs=
|
||||||
|
ngx_feature_test="setsockopt(0, IPPROTO_IPV6, IPV6_RECVPKTINFO, NULL, 0)"
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
|
||||||
|
ngx_feature="TCP_DEFER_ACCEPT"
|
||||||
|
ngx_feature_name="NGX_HAVE_DEFERRED_ACCEPT"
|
||||||
|
ngx_feature_run=no
|
||||||
|
ngx_feature_incs="#include <sys/socket.h>
|
||||||
|
#include <netinet/in.h>
|
||||||
|
#include <netinet/tcp.h>"
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs=
|
||||||
|
ngx_feature_test="setsockopt(0, IPPROTO_TCP, TCP_DEFER_ACCEPT, NULL, 0)"
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
|
||||||
|
ngx_feature="TCP_KEEPIDLE"
|
||||||
|
ngx_feature_name="NGX_HAVE_KEEPALIVE_TUNABLE"
|
||||||
|
ngx_feature_run=no
|
||||||
|
ngx_feature_incs="#include <sys/socket.h>
|
||||||
|
#include <netinet/in.h>
|
||||||
|
#include <netinet/tcp.h>"
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs=
|
||||||
|
ngx_feature_test="setsockopt(0, IPPROTO_TCP, TCP_KEEPIDLE, NULL, 0);
|
||||||
|
setsockopt(0, IPPROTO_TCP, TCP_KEEPINTVL, NULL, 0);
|
||||||
|
setsockopt(0, IPPROTO_TCP, TCP_KEEPCNT, NULL, 0)"
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
|
||||||
|
ngx_feature="TCP_FASTOPEN"
|
||||||
|
ngx_feature_name="NGX_HAVE_TCP_FASTOPEN"
|
||||||
|
ngx_feature_run=no
|
||||||
|
ngx_feature_incs="#include <sys/socket.h>
|
||||||
|
#include <netinet/in.h>
|
||||||
|
#include <netinet/tcp.h>"
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs=
|
||||||
|
ngx_feature_test="setsockopt(0, IPPROTO_TCP, TCP_FASTOPEN, NULL, 0)"
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
|
||||||
|
ngx_feature="TCP_INFO"
|
||||||
|
ngx_feature_name="NGX_HAVE_TCP_INFO"
|
||||||
|
ngx_feature_run=no
|
||||||
|
ngx_feature_incs="#include <sys/socket.h>
|
||||||
|
#include <netinet/in.h>
|
||||||
|
#include <netinet/tcp.h>"
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs=
|
||||||
|
ngx_feature_test="socklen_t optlen = sizeof(struct tcp_info);
|
||||||
|
struct tcp_info ti;
|
||||||
|
ti.tcpi_rtt = 0;
|
||||||
|
ti.tcpi_rttvar = 0;
|
||||||
|
ti.tcpi_snd_cwnd = 0;
|
||||||
|
ti.tcpi_rcv_space = 0;
|
||||||
|
getsockopt(0, IPPROTO_TCP, TCP_INFO, &ti, &optlen)"
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
|
||||||
|
ngx_feature="accept4()"
|
||||||
|
ngx_feature_name="NGX_HAVE_ACCEPT4"
|
||||||
|
ngx_feature_run=no
|
||||||
|
ngx_feature_incs="#include <sys/socket.h>"
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs=
|
||||||
|
ngx_feature_test="accept4(0, NULL, NULL, SOCK_NONBLOCK)"
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
if [ $NGX_FILE_AIO = YES ]; then
|
||||||
|
|
||||||
|
ngx_feature="kqueue AIO support"
|
||||||
|
ngx_feature_name="NGX_HAVE_FILE_AIO"
|
||||||
|
ngx_feature_run=no
|
||||||
|
ngx_feature_incs="#include <aio.h>"
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs=
|
||||||
|
ngx_feature_test="struct aiocb iocb;
|
||||||
|
iocb.aio_sigevent.sigev_notify = SIGEV_KEVENT;
|
||||||
|
(void) aio_read(&iocb)"
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
if [ $ngx_found = yes ]; then
|
||||||
|
CORE_SRCS="$CORE_SRCS $FILE_AIO_SRCS"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $ngx_found = no ]; then
|
||||||
|
|
||||||
|
ngx_feature="Linux AIO support"
|
||||||
|
ngx_feature_name="NGX_HAVE_FILE_AIO"
|
||||||
|
ngx_feature_run=no
|
||||||
|
ngx_feature_incs="#include <linux/aio_abi.h>
|
||||||
|
#include <sys/eventfd.h>"
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs=
|
||||||
|
ngx_feature_test="struct iocb iocb;
|
||||||
|
iocb.aio_lio_opcode = IOCB_CMD_PREAD;
|
||||||
|
iocb.aio_flags = IOCB_FLAG_RESFD;
|
||||||
|
iocb.aio_resfd = -1;
|
||||||
|
(void) iocb;
|
||||||
|
(void) eventfd(0, 0)"
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
if [ $ngx_found = yes ]; then
|
||||||
|
have=NGX_HAVE_EVENTFD . auto/have
|
||||||
|
have=NGX_HAVE_SYS_EVENTFD_H . auto/have
|
||||||
|
CORE_SRCS="$CORE_SRCS $LINUX_AIO_SRCS"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $ngx_found = no ]; then
|
||||||
|
|
||||||
|
ngx_feature="Linux AIO support (SYS_eventfd)"
|
||||||
|
ngx_feature_incs="#include <linux/aio_abi.h>
|
||||||
|
#include <sys/syscall.h>"
|
||||||
|
ngx_feature_test="struct iocb iocb;
|
||||||
|
iocb.aio_lio_opcode = IOCB_CMD_PREAD;
|
||||||
|
iocb.aio_flags = IOCB_FLAG_RESFD;
|
||||||
|
iocb.aio_resfd = -1;
|
||||||
|
(void) iocb;
|
||||||
|
(void) SYS_eventfd"
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
if [ $ngx_found = yes ]; then
|
||||||
|
have=NGX_HAVE_EVENTFD . auto/have
|
||||||
|
CORE_SRCS="$CORE_SRCS $LINUX_AIO_SRCS"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $ngx_found = no ]; then
|
||||||
|
cat << END
|
||||||
|
|
||||||
|
$0: no supported file AIO was found
|
||||||
|
Currently file AIO is supported on FreeBSD 4.3+ and Linux 2.6.22+ only
|
||||||
|
|
||||||
|
END
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
else
|
||||||
|
|
||||||
|
ngx_feature="eventfd()"
|
||||||
|
ngx_feature_name="NGX_HAVE_EVENTFD"
|
||||||
|
ngx_feature_run=no
|
||||||
|
ngx_feature_incs="#include <sys/eventfd.h>"
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs=
|
||||||
|
ngx_feature_test="(void) eventfd(0, 0)"
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
if [ $ngx_found = yes ]; then
|
||||||
|
have=NGX_HAVE_SYS_EVENTFD_H . auto/have
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $ngx_found = no ]; then
|
||||||
|
|
||||||
|
ngx_feature="eventfd() (SYS_eventfd)"
|
||||||
|
ngx_feature_incs="#include <sys/syscall.h>"
|
||||||
|
ngx_feature_test="(void) SYS_eventfd"
|
||||||
|
. auto/feature
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
have=NGX_HAVE_UNIX_DOMAIN . auto/have
|
||||||
|
|
||||||
|
ngx_feature_libs=
|
||||||
|
|
||||||
|
|
||||||
|
# C types
|
||||||
|
|
||||||
|
ngx_type="int"; . auto/types/sizeof
|
||||||
|
|
||||||
|
ngx_type="long"; . auto/types/sizeof
|
||||||
|
|
||||||
|
ngx_type="long long"; . auto/types/sizeof
|
||||||
|
|
||||||
|
ngx_type="void *"; . auto/types/sizeof; ngx_ptr_size=$ngx_size
|
||||||
|
ngx_param=NGX_PTR_SIZE; ngx_value=$ngx_size; . auto/types/value
|
||||||
|
|
||||||
|
|
||||||
|
# POSIX types
|
||||||
|
|
||||||
|
NGX_INCLUDE_AUTO_CONFIG_H="#include \"ngx_auto_config.h\""
|
||||||
|
|
||||||
|
ngx_type="uint32_t"; ngx_types="u_int32_t"; . auto/types/typedef
|
||||||
|
ngx_type="uint64_t"; ngx_types="u_int64_t"; . auto/types/typedef
|
||||||
|
|
||||||
|
ngx_type="sig_atomic_t"; ngx_types="int"; . auto/types/typedef
|
||||||
|
. auto/types/sizeof
|
||||||
|
ngx_param=NGX_SIG_ATOMIC_T_SIZE; ngx_value=$ngx_size; . auto/types/value
|
||||||
|
|
||||||
|
ngx_type="socklen_t"; ngx_types="int"; . auto/types/typedef
|
||||||
|
|
||||||
|
ngx_type="in_addr_t"; ngx_types="uint32_t u_int32_t"; . auto/types/typedef
|
||||||
|
|
||||||
|
ngx_type="in_port_t"; ngx_types="u_short"; . auto/types/typedef
|
||||||
|
|
||||||
|
ngx_type="rlim_t"; ngx_types="int"; . auto/types/typedef
|
||||||
|
|
||||||
|
. auto/types/uintptr_t
|
||||||
|
|
||||||
|
. auto/endianness
|
||||||
|
|
||||||
|
ngx_type="size_t"; . auto/types/sizeof
|
||||||
|
ngx_param=NGX_MAX_SIZE_T_VALUE; ngx_value=$ngx_max_value; . auto/types/value
|
||||||
|
ngx_param=NGX_SIZE_T_LEN; ngx_value=$ngx_max_len; . auto/types/value
|
||||||
|
|
||||||
|
ngx_type="off_t"; . auto/types/sizeof
|
||||||
|
ngx_param=NGX_MAX_OFF_T_VALUE; ngx_value=$ngx_max_value; . auto/types/value
|
||||||
|
ngx_param=NGX_OFF_T_LEN; ngx_value=$ngx_max_len; . auto/types/value
|
||||||
|
|
||||||
|
ngx_type="time_t"; . auto/types/sizeof
|
||||||
|
ngx_param=NGX_TIME_T_SIZE; ngx_value=$ngx_size; . auto/types/value
|
||||||
|
ngx_param=NGX_TIME_T_LEN; ngx_value=$ngx_max_len; . auto/types/value
|
||||||
|
ngx_param=NGX_MAX_TIME_T_VALUE; ngx_value=$ngx_max_value; . auto/types/value
|
||||||
|
|
||||||
|
|
||||||
|
# syscalls, libc calls and some features
|
||||||
|
|
||||||
|
|
||||||
|
ngx_feature="AF_INET6"
|
||||||
|
ngx_feature_name="NGX_HAVE_INET6"
|
||||||
|
ngx_feature_run=no
|
||||||
|
ngx_feature_incs="#include <sys/socket.h>
|
||||||
|
#include <netinet/in.h>
|
||||||
|
#include <arpa/inet.h>"
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs=
|
||||||
|
ngx_feature_test="struct sockaddr_in6 sin6;
|
||||||
|
sin6.sin6_family = AF_INET6;
|
||||||
|
(void) sin6"
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
|
||||||
|
ngx_feature="setproctitle()"
|
||||||
|
ngx_feature_name="NGX_HAVE_SETPROCTITLE"
|
||||||
|
ngx_feature_run=no
|
||||||
|
ngx_feature_incs="#include <stdlib.h>"
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs=$NGX_SETPROCTITLE_LIB
|
||||||
|
ngx_feature_test="setproctitle(\"test\");"
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
|
||||||
|
ngx_feature="pread()"
|
||||||
|
ngx_feature_name="NGX_HAVE_PREAD"
|
||||||
|
ngx_feature_run=no
|
||||||
|
ngx_feature_incs=
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs=
|
||||||
|
ngx_feature_test="char buf[1]; ssize_t n; n = pread(0, buf, 1, 0);
|
||||||
|
if (n == -1) return 1"
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
|
||||||
|
ngx_feature="pwrite()"
|
||||||
|
ngx_feature_name="NGX_HAVE_PWRITE"
|
||||||
|
ngx_feature_run=no
|
||||||
|
ngx_feature_incs=
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs=
|
||||||
|
ngx_feature_test="char buf[1]; ssize_t n; n = pwrite(1, buf, 1, 0);
|
||||||
|
if (n == -1) return 1"
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
|
||||||
|
# pwritev() was introduced in FreeBSD 6 and Linux 2.6.30, glibc 2.10
|
||||||
|
|
||||||
|
ngx_feature="pwritev()"
|
||||||
|
ngx_feature_name="NGX_HAVE_PWRITEV"
|
||||||
|
ngx_feature_run=no
|
||||||
|
ngx_feature_incs='#include <sys/uio.h>'
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs=
|
||||||
|
ngx_feature_test="char buf[1]; struct iovec vec[1]; ssize_t n;
|
||||||
|
vec[0].iov_base = buf;
|
||||||
|
vec[0].iov_len = 1;
|
||||||
|
n = pwritev(1, vec, 1, 0);
|
||||||
|
if (n == -1) return 1"
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
|
||||||
|
ngx_feature="sys_nerr"
|
||||||
|
ngx_feature_name="NGX_SYS_NERR"
|
||||||
|
ngx_feature_run=value
|
||||||
|
ngx_feature_incs='#include <errno.h>
|
||||||
|
#include <stdio.h>'
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs=
|
||||||
|
ngx_feature_test='printf("%d", sys_nerr);'
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
|
||||||
|
if [ $ngx_found = no ]; then
|
||||||
|
|
||||||
|
# Cygiwn defines _sys_nerr
|
||||||
|
ngx_feature="_sys_nerr"
|
||||||
|
ngx_feature_name="NGX_SYS_NERR"
|
||||||
|
ngx_feature_run=value
|
||||||
|
ngx_feature_incs='#include <errno.h>
|
||||||
|
#include <stdio.h>'
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs=
|
||||||
|
ngx_feature_test='printf("%d", _sys_nerr);'
|
||||||
|
. auto/feature
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
if [ $ngx_found = no ]; then
|
||||||
|
|
||||||
|
# Solaris has no sys_nerr
|
||||||
|
ngx_feature='maximum errno'
|
||||||
|
ngx_feature_name=NGX_SYS_NERR
|
||||||
|
ngx_feature_run=value
|
||||||
|
ngx_feature_incs='#include <errno.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <stdio.h>'
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs=
|
||||||
|
ngx_feature_test='int n;
|
||||||
|
char *p;
|
||||||
|
for (n = 1; n < 1000; n++) {
|
||||||
|
errno = 0;
|
||||||
|
p = strerror(n);
|
||||||
|
if (errno == EINVAL
|
||||||
|
|| p == NULL
|
||||||
|
|| strncmp(p, "Unknown error", 13) == 0)
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
printf("%d", n);'
|
||||||
|
. auto/feature
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
ngx_feature="localtime_r()"
|
||||||
|
ngx_feature_name="NGX_HAVE_LOCALTIME_R"
|
||||||
|
ngx_feature_run=no
|
||||||
|
ngx_feature_incs="#include <time.h>"
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs=
|
||||||
|
ngx_feature_test="struct tm t; time_t c=0; localtime_r(&c, &t)"
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
|
||||||
|
ngx_feature="posix_memalign()"
|
||||||
|
ngx_feature_name="NGX_HAVE_POSIX_MEMALIGN"
|
||||||
|
ngx_feature_run=no
|
||||||
|
ngx_feature_incs="#include <stdlib.h>"
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs=
|
||||||
|
ngx_feature_test="void *p; int n; n = posix_memalign(&p, 4096, 4096);
|
||||||
|
if (n != 0) return 1"
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
|
||||||
|
ngx_feature="memalign()"
|
||||||
|
ngx_feature_name="NGX_HAVE_MEMALIGN"
|
||||||
|
ngx_feature_run=no
|
||||||
|
ngx_feature_incs="#include <stdlib.h>
|
||||||
|
#include <malloc.h>"
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs=
|
||||||
|
ngx_feature_test="void *p; p = memalign(4096, 4096);
|
||||||
|
if (p == NULL) return 1"
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
|
||||||
|
ngx_feature="mmap(MAP_ANON|MAP_SHARED)"
|
||||||
|
ngx_feature_name="NGX_HAVE_MAP_ANON"
|
||||||
|
ngx_feature_run=yes
|
||||||
|
ngx_feature_incs="#include <sys/mman.h>"
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs=
|
||||||
|
ngx_feature_test="void *p;
|
||||||
|
p = mmap(NULL, 4096, PROT_READ|PROT_WRITE,
|
||||||
|
MAP_ANON|MAP_SHARED, -1, 0);
|
||||||
|
if (p == MAP_FAILED) return 1;"
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
|
||||||
|
ngx_feature='mmap("/dev/zero", MAP_SHARED)'
|
||||||
|
ngx_feature_name="NGX_HAVE_MAP_DEVZERO"
|
||||||
|
ngx_feature_run=yes
|
||||||
|
ngx_feature_incs="#include <sys/mman.h>
|
||||||
|
#include <sys/stat.h>
|
||||||
|
#include <fcntl.h>"
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs=
|
||||||
|
ngx_feature_test='void *p; int fd;
|
||||||
|
fd = open("/dev/zero", O_RDWR);
|
||||||
|
p = mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0);
|
||||||
|
if (p == MAP_FAILED) return 1;'
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
|
||||||
|
ngx_feature="System V shared memory"
|
||||||
|
ngx_feature_name="NGX_HAVE_SYSVSHM"
|
||||||
|
ngx_feature_run=yes
|
||||||
|
ngx_feature_incs="#include <sys/ipc.h>
|
||||||
|
#include <sys/shm.h>"
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs=
|
||||||
|
ngx_feature_test="int id;
|
||||||
|
id = shmget(IPC_PRIVATE, 4096, (SHM_R|SHM_W|IPC_CREAT));
|
||||||
|
if (id == -1) return 1;
|
||||||
|
shmctl(id, IPC_RMID, NULL);"
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
|
||||||
|
ngx_feature="POSIX semaphores"
|
||||||
|
ngx_feature_name="NGX_HAVE_POSIX_SEM"
|
||||||
|
ngx_feature_run=yes
|
||||||
|
ngx_feature_incs="#include <semaphore.h>"
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs=
|
||||||
|
ngx_feature_test="sem_t sem;
|
||||||
|
if (sem_init(&sem, 1, 0) == -1) return 1;
|
||||||
|
sem_destroy(&sem);"
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
|
||||||
|
if [ $ngx_found = no ]; then
|
||||||
|
|
||||||
|
# Linux has POSIX semaphores in libpthread
|
||||||
|
ngx_feature="POSIX semaphores in libpthread"
|
||||||
|
ngx_feature_libs=-lpthread
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
if [ $ngx_found = yes ]; then
|
||||||
|
CORE_LIBS="$CORE_LIBS -lpthread"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
if [ $ngx_found = no ]; then
|
||||||
|
|
||||||
|
# Solaris has POSIX semaphores in librt
|
||||||
|
ngx_feature="POSIX semaphores in librt"
|
||||||
|
ngx_feature_libs=-lrt
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
if [ $ngx_found = yes ]; then
|
||||||
|
CORE_LIBS="$CORE_LIBS -lrt"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
ngx_feature="struct msghdr.msg_control"
|
||||||
|
ngx_feature_name="NGX_HAVE_MSGHDR_MSG_CONTROL"
|
||||||
|
ngx_feature_run=no
|
||||||
|
ngx_feature_incs="#include <sys/socket.h>
|
||||||
|
#include <stdio.h>"
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs=
|
||||||
|
ngx_feature_test="struct msghdr msg;
|
||||||
|
printf(\"%d\", (int) sizeof(msg.msg_control))"
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
|
||||||
|
ngx_feature="ioctl(FIONBIO)"
|
||||||
|
ngx_feature_name="NGX_HAVE_FIONBIO"
|
||||||
|
ngx_feature_run=no
|
||||||
|
ngx_feature_incs="#include <sys/ioctl.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
$NGX_INCLUDE_SYS_FILIO_H"
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs=
|
||||||
|
ngx_feature_test="int i = FIONBIO; printf(\"%d\", i)"
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
|
||||||
|
ngx_feature="struct tm.tm_gmtoff"
|
||||||
|
ngx_feature_name="NGX_HAVE_GMTOFF"
|
||||||
|
ngx_feature_run=no
|
||||||
|
ngx_feature_incs="#include <time.h>
|
||||||
|
#include <stdio.h>"
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs=
|
||||||
|
ngx_feature_test="struct tm tm; tm.tm_gmtoff = 0;
|
||||||
|
printf(\"%d\", (int) tm.tm_gmtoff)"
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
|
||||||
|
ngx_feature="struct dirent.d_namlen"
|
||||||
|
ngx_feature_name="NGX_HAVE_D_NAMLEN"
|
||||||
|
ngx_feature_run=no
|
||||||
|
ngx_feature_incs="#include <dirent.h>
|
||||||
|
#include <stdio.h>"
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs=
|
||||||
|
ngx_feature_test="struct dirent dir; dir.d_namlen = 0;
|
||||||
|
printf(\"%d\", (int) dir.d_namlen)"
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
|
||||||
|
ngx_feature="struct dirent.d_type"
|
||||||
|
ngx_feature_name="NGX_HAVE_D_TYPE"
|
||||||
|
ngx_feature_run=no
|
||||||
|
ngx_feature_incs="#include <dirent.h>
|
||||||
|
#include <stdio.h>"
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs=
|
||||||
|
ngx_feature_test="struct dirent dir; dir.d_type = DT_REG;
|
||||||
|
printf(\"%d\", (int) dir.d_type)"
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
|
||||||
|
ngx_feature="sysconf(_SC_NPROCESSORS_ONLN)"
|
||||||
|
ngx_feature_name="NGX_HAVE_SC_NPROCESSORS_ONLN"
|
||||||
|
ngx_feature_run=no
|
||||||
|
ngx_feature_incs=
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs=
|
||||||
|
ngx_feature_test="sysconf(_SC_NPROCESSORS_ONLN)"
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
|
||||||
|
ngx_feature="sysconf(_SC_LEVEL1_DCACHE_LINESIZE)"
|
||||||
|
ngx_feature_name="NGX_HAVE_LEVEL1_DCACHE_LINESIZE"
|
||||||
|
ngx_feature_run=no
|
||||||
|
ngx_feature_incs=
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs=
|
||||||
|
ngx_feature_test="sysconf(_SC_LEVEL1_DCACHE_LINESIZE)"
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
|
||||||
|
ngx_feature="openat(), fstatat()"
|
||||||
|
ngx_feature_name="NGX_HAVE_OPENAT"
|
||||||
|
ngx_feature_run=no
|
||||||
|
ngx_feature_incs="#include <sys/types.h>
|
||||||
|
#include <sys/stat.h>
|
||||||
|
#include <fcntl.h>"
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs=
|
||||||
|
ngx_feature_test="struct stat sb;
|
||||||
|
openat(AT_FDCWD, \".\", O_RDONLY|O_NOFOLLOW);
|
||||||
|
fstatat(AT_FDCWD, \".\", &sb, AT_SYMLINK_NOFOLLOW);"
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
|
||||||
|
ngx_feature="getaddrinfo()"
|
||||||
|
ngx_feature_name="NGX_HAVE_GETADDRINFO"
|
||||||
|
ngx_feature_run=no
|
||||||
|
ngx_feature_incs="#include <sys/types.h>
|
||||||
|
#include <sys/socket.h>
|
||||||
|
#include <netdb.h>"
|
||||||
|
ngx_feature_path=
|
||||||
|
ngx_feature_libs=
|
||||||
|
ngx_feature_test='struct addrinfo *res;
|
||||||
|
if (getaddrinfo("localhost", NULL, NULL, &res) != 0) return 1;
|
||||||
|
freeaddrinfo(res)'
|
||||||
|
. auto/feature
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
|
||||||
|
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||||
|
fastcgi_param QUERY_STRING $query_string;
|
||||||
|
fastcgi_param REQUEST_METHOD $request_method;
|
||||||
|
fastcgi_param CONTENT_TYPE $content_type;
|
||||||
|
fastcgi_param CONTENT_LENGTH $content_length;
|
||||||
|
|
||||||
|
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
|
||||||
|
fastcgi_param REQUEST_URI $request_uri;
|
||||||
|
fastcgi_param DOCUMENT_URI $document_uri;
|
||||||
|
fastcgi_param DOCUMENT_ROOT $document_root;
|
||||||
|
fastcgi_param SERVER_PROTOCOL $server_protocol;
|
||||||
|
fastcgi_param REQUEST_SCHEME $scheme;
|
||||||
|
fastcgi_param HTTPS $https if_not_empty;
|
||||||
|
|
||||||
|
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
|
||||||
|
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
|
||||||
|
|
||||||
|
fastcgi_param REMOTE_ADDR $remote_addr;
|
||||||
|
fastcgi_param REMOTE_PORT $remote_port;
|
||||||
|
fastcgi_param SERVER_ADDR $server_addr;
|
||||||
|
fastcgi_param SERVER_PORT $server_port;
|
||||||
|
fastcgi_param SERVER_NAME $server_name;
|
||||||
|
|
||||||
|
# PHP only, required if PHP was built with --enable-force-cgi-redirect
|
||||||
|
fastcgi_param REDIRECT_STATUS 200;
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
|
||||||
|
fastcgi_param QUERY_STRING $query_string;
|
||||||
|
fastcgi_param REQUEST_METHOD $request_method;
|
||||||
|
fastcgi_param CONTENT_TYPE $content_type;
|
||||||
|
fastcgi_param CONTENT_LENGTH $content_length;
|
||||||
|
|
||||||
|
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
|
||||||
|
fastcgi_param REQUEST_URI $request_uri;
|
||||||
|
fastcgi_param DOCUMENT_URI $document_uri;
|
||||||
|
fastcgi_param DOCUMENT_ROOT $document_root;
|
||||||
|
fastcgi_param SERVER_PROTOCOL $server_protocol;
|
||||||
|
fastcgi_param REQUEST_SCHEME $scheme;
|
||||||
|
fastcgi_param HTTPS $https if_not_empty;
|
||||||
|
|
||||||
|
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
|
||||||
|
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
|
||||||
|
|
||||||
|
fastcgi_param REMOTE_ADDR $remote_addr;
|
||||||
|
fastcgi_param REMOTE_PORT $remote_port;
|
||||||
|
fastcgi_param SERVER_ADDR $server_addr;
|
||||||
|
fastcgi_param SERVER_PORT $server_port;
|
||||||
|
fastcgi_param SERVER_NAME $server_name;
|
||||||
|
|
||||||
|
# PHP only, required if PHP was built with --enable-force-cgi-redirect
|
||||||
|
fastcgi_param REDIRECT_STATUS 200;
|
||||||
+109
@@ -0,0 +1,109 @@
|
|||||||
|
|
||||||
|
# This map is not a full koi8-r <> utf8 map: it does not contain
|
||||||
|
# box-drawing and some other characters. Besides this map contains
|
||||||
|
# several koi8-u and Byelorussian letters which are not in koi8-r.
|
||||||
|
# If you need a full and standard map, use contrib/unicode2nginx/koi-utf
|
||||||
|
# map instead.
|
||||||
|
|
||||||
|
charset_map koi8-r utf-8 {
|
||||||
|
|
||||||
|
80 E282AC ; # euro
|
||||||
|
|
||||||
|
95 E280A2 ; # bullet
|
||||||
|
|
||||||
|
9A C2A0 ; #
|
||||||
|
|
||||||
|
9E C2B7 ; # ·
|
||||||
|
|
||||||
|
A3 D191 ; # small yo
|
||||||
|
A4 D194 ; # small Ukrainian ye
|
||||||
|
|
||||||
|
A6 D196 ; # small Ukrainian i
|
||||||
|
A7 D197 ; # small Ukrainian yi
|
||||||
|
|
||||||
|
AD D291 ; # small Ukrainian soft g
|
||||||
|
AE D19E ; # small Byelorussian short u
|
||||||
|
|
||||||
|
B0 C2B0 ; # °
|
||||||
|
|
||||||
|
B3 D081 ; # capital YO
|
||||||
|
B4 D084 ; # capital Ukrainian YE
|
||||||
|
|
||||||
|
B6 D086 ; # capital Ukrainian I
|
||||||
|
B7 D087 ; # capital Ukrainian YI
|
||||||
|
|
||||||
|
B9 E28496 ; # numero sign
|
||||||
|
|
||||||
|
BD D290 ; # capital Ukrainian soft G
|
||||||
|
BE D18E ; # capital Byelorussian short U
|
||||||
|
|
||||||
|
BF C2A9 ; # (C)
|
||||||
|
|
||||||
|
C0 D18E ; # small yu
|
||||||
|
C1 D0B0 ; # small a
|
||||||
|
C2 D0B1 ; # small b
|
||||||
|
C3 D186 ; # small ts
|
||||||
|
C4 D0B4 ; # small d
|
||||||
|
C5 D0B5 ; # small ye
|
||||||
|
C6 D184 ; # small f
|
||||||
|
C7 D0B3 ; # small g
|
||||||
|
C8 D185 ; # small kh
|
||||||
|
C9 D0B8 ; # small i
|
||||||
|
CA D0B9 ; # small j
|
||||||
|
CB D0BA ; # small k
|
||||||
|
CC D0BB ; # small l
|
||||||
|
CD D0BC ; # small m
|
||||||
|
CE D0BD ; # small n
|
||||||
|
CF D0BE ; # small o
|
||||||
|
|
||||||
|
D0 D0BF ; # small p
|
||||||
|
D1 D18F ; # small ya
|
||||||
|
D2 D180 ; # small r
|
||||||
|
D3 D181 ; # small s
|
||||||
|
D4 D182 ; # small t
|
||||||
|
D5 D183 ; # small u
|
||||||
|
D6 D0B6 ; # small zh
|
||||||
|
D7 D0B2 ; # small v
|
||||||
|
D8 D18C ; # small soft sign
|
||||||
|
D9 D18B ; # small y
|
||||||
|
DA D0B7 ; # small z
|
||||||
|
DB D188 ; # small sh
|
||||||
|
DC D18D ; # small e
|
||||||
|
DD D189 ; # small shch
|
||||||
|
DE D187 ; # small ch
|
||||||
|
DF D18A ; # small hard sign
|
||||||
|
|
||||||
|
E0 D0AE ; # capital YU
|
||||||
|
E1 D090 ; # capital A
|
||||||
|
E2 D091 ; # capital B
|
||||||
|
E3 D0A6 ; # capital TS
|
||||||
|
E4 D094 ; # capital D
|
||||||
|
E5 D095 ; # capital YE
|
||||||
|
E6 D0A4 ; # capital F
|
||||||
|
E7 D093 ; # capital G
|
||||||
|
E8 D0A5 ; # capital KH
|
||||||
|
E9 D098 ; # capital I
|
||||||
|
EA D099 ; # capital J
|
||||||
|
EB D09A ; # capital K
|
||||||
|
EC D09B ; # capital L
|
||||||
|
ED D09C ; # capital M
|
||||||
|
EE D09D ; # capital N
|
||||||
|
EF D09E ; # capital O
|
||||||
|
|
||||||
|
F0 D09F ; # capital P
|
||||||
|
F1 D0AF ; # capital YA
|
||||||
|
F2 D0A0 ; # capital R
|
||||||
|
F3 D0A1 ; # capital S
|
||||||
|
F4 D0A2 ; # capital T
|
||||||
|
F5 D0A3 ; # capital U
|
||||||
|
F6 D096 ; # capital ZH
|
||||||
|
F7 D092 ; # capital V
|
||||||
|
F8 D0AC ; # capital soft sign
|
||||||
|
F9 D0AB ; # capital Y
|
||||||
|
FA D097 ; # capital Z
|
||||||
|
FB D0A8 ; # capital SH
|
||||||
|
FC D0AD ; # capital E
|
||||||
|
FD D0A9 ; # capital SHCH
|
||||||
|
FE D0A7 ; # capital CH
|
||||||
|
FF D0AA ; # capital hard sign
|
||||||
|
}
|
||||||
+103
@@ -0,0 +1,103 @@
|
|||||||
|
|
||||||
|
charset_map koi8-r windows-1251 {
|
||||||
|
|
||||||
|
80 88 ; # euro
|
||||||
|
|
||||||
|
95 95 ; # bullet
|
||||||
|
|
||||||
|
9A A0 ; #
|
||||||
|
|
||||||
|
9E B7 ; # ·
|
||||||
|
|
||||||
|
A3 B8 ; # small yo
|
||||||
|
A4 BA ; # small Ukrainian ye
|
||||||
|
|
||||||
|
A6 B3 ; # small Ukrainian i
|
||||||
|
A7 BF ; # small Ukrainian yi
|
||||||
|
|
||||||
|
AD B4 ; # small Ukrainian soft g
|
||||||
|
AE A2 ; # small Byelorussian short u
|
||||||
|
|
||||||
|
B0 B0 ; # °
|
||||||
|
|
||||||
|
B3 A8 ; # capital YO
|
||||||
|
B4 AA ; # capital Ukrainian YE
|
||||||
|
|
||||||
|
B6 B2 ; # capital Ukrainian I
|
||||||
|
B7 AF ; # capital Ukrainian YI
|
||||||
|
|
||||||
|
B9 B9 ; # numero sign
|
||||||
|
|
||||||
|
BD A5 ; # capital Ukrainian soft G
|
||||||
|
BE A1 ; # capital Byelorussian short U
|
||||||
|
|
||||||
|
BF A9 ; # (C)
|
||||||
|
|
||||||
|
C0 FE ; # small yu
|
||||||
|
C1 E0 ; # small a
|
||||||
|
C2 E1 ; # small b
|
||||||
|
C3 F6 ; # small ts
|
||||||
|
C4 E4 ; # small d
|
||||||
|
C5 E5 ; # small ye
|
||||||
|
C6 F4 ; # small f
|
||||||
|
C7 E3 ; # small g
|
||||||
|
C8 F5 ; # small kh
|
||||||
|
C9 E8 ; # small i
|
||||||
|
CA E9 ; # small j
|
||||||
|
CB EA ; # small k
|
||||||
|
CC EB ; # small l
|
||||||
|
CD EC ; # small m
|
||||||
|
CE ED ; # small n
|
||||||
|
CF EE ; # small o
|
||||||
|
|
||||||
|
D0 EF ; # small p
|
||||||
|
D1 FF ; # small ya
|
||||||
|
D2 F0 ; # small r
|
||||||
|
D3 F1 ; # small s
|
||||||
|
D4 F2 ; # small t
|
||||||
|
D5 F3 ; # small u
|
||||||
|
D6 E6 ; # small zh
|
||||||
|
D7 E2 ; # small v
|
||||||
|
D8 FC ; # small soft sign
|
||||||
|
D9 FB ; # small y
|
||||||
|
DA E7 ; # small z
|
||||||
|
DB F8 ; # small sh
|
||||||
|
DC FD ; # small e
|
||||||
|
DD F9 ; # small shch
|
||||||
|
DE F7 ; # small ch
|
||||||
|
DF FA ; # small hard sign
|
||||||
|
|
||||||
|
E0 DE ; # capital YU
|
||||||
|
E1 C0 ; # capital A
|
||||||
|
E2 C1 ; # capital B
|
||||||
|
E3 D6 ; # capital TS
|
||||||
|
E4 C4 ; # capital D
|
||||||
|
E5 C5 ; # capital YE
|
||||||
|
E6 D4 ; # capital F
|
||||||
|
E7 C3 ; # capital G
|
||||||
|
E8 D5 ; # capital KH
|
||||||
|
E9 C8 ; # capital I
|
||||||
|
EA C9 ; # capital J
|
||||||
|
EB CA ; # capital K
|
||||||
|
EC CB ; # capital L
|
||||||
|
ED CC ; # capital M
|
||||||
|
EE CD ; # capital N
|
||||||
|
EF CE ; # capital O
|
||||||
|
|
||||||
|
F0 CF ; # capital P
|
||||||
|
F1 DF ; # capital YA
|
||||||
|
F2 D0 ; # capital R
|
||||||
|
F3 D1 ; # capital S
|
||||||
|
F4 D2 ; # capital T
|
||||||
|
F5 D3 ; # capital U
|
||||||
|
F6 C6 ; # capital ZH
|
||||||
|
F7 C2 ; # capital V
|
||||||
|
F8 DC ; # capital soft sign
|
||||||
|
F9 DB ; # capital Y
|
||||||
|
FA C7 ; # capital Z
|
||||||
|
FB D8 ; # capital SH
|
||||||
|
FC DD ; # capital E
|
||||||
|
FD D9 ; # capital SHCH
|
||||||
|
FE D7 ; # capital CH
|
||||||
|
FF DA ; # capital hard sign
|
||||||
|
}
|
||||||
@@ -0,0 +1,95 @@
|
|||||||
|
|
||||||
|
types {
|
||||||
|
text/html html htm shtml;
|
||||||
|
text/css css;
|
||||||
|
text/xml xml;
|
||||||
|
image/gif gif;
|
||||||
|
image/jpeg jpeg jpg;
|
||||||
|
application/javascript js;
|
||||||
|
application/atom+xml atom;
|
||||||
|
application/rss+xml rss;
|
||||||
|
|
||||||
|
text/mathml mml;
|
||||||
|
text/plain txt;
|
||||||
|
text/vnd.sun.j2me.app-descriptor jad;
|
||||||
|
text/vnd.wap.wml wml;
|
||||||
|
text/x-component htc;
|
||||||
|
|
||||||
|
image/png png;
|
||||||
|
image/svg+xml svg svgz;
|
||||||
|
image/tiff tif tiff;
|
||||||
|
image/vnd.wap.wbmp wbmp;
|
||||||
|
image/webp webp;
|
||||||
|
image/x-icon ico;
|
||||||
|
image/x-jng jng;
|
||||||
|
image/x-ms-bmp bmp;
|
||||||
|
|
||||||
|
application/font-woff woff;
|
||||||
|
application/java-archive jar war ear;
|
||||||
|
application/json json;
|
||||||
|
application/mac-binhex40 hqx;
|
||||||
|
application/msword doc;
|
||||||
|
application/pdf pdf;
|
||||||
|
application/postscript ps eps ai;
|
||||||
|
application/rtf rtf;
|
||||||
|
application/vnd.apple.mpegurl m3u8;
|
||||||
|
application/vnd.google-earth.kml+xml kml;
|
||||||
|
application/vnd.google-earth.kmz kmz;
|
||||||
|
application/vnd.ms-excel xls;
|
||||||
|
application/vnd.ms-fontobject eot;
|
||||||
|
application/vnd.ms-powerpoint ppt;
|
||||||
|
application/vnd.oasis.opendocument.graphics odg;
|
||||||
|
application/vnd.oasis.opendocument.presentation odp;
|
||||||
|
application/vnd.oasis.opendocument.spreadsheet ods;
|
||||||
|
application/vnd.oasis.opendocument.text odt;
|
||||||
|
application/vnd.openxmlformats-officedocument.presentationml.presentation
|
||||||
|
pptx;
|
||||||
|
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
|
||||||
|
xlsx;
|
||||||
|
application/vnd.openxmlformats-officedocument.wordprocessingml.document
|
||||||
|
docx;
|
||||||
|
application/vnd.wap.wmlc wmlc;
|
||||||
|
application/x-7z-compressed 7z;
|
||||||
|
application/x-cocoa cco;
|
||||||
|
application/x-java-archive-diff jardiff;
|
||||||
|
application/x-java-jnlp-file jnlp;
|
||||||
|
application/x-makeself run;
|
||||||
|
application/x-perl pl pm;
|
||||||
|
application/x-pilot prc pdb;
|
||||||
|
application/x-rar-compressed rar;
|
||||||
|
application/x-redhat-package-manager rpm;
|
||||||
|
application/x-sea sea;
|
||||||
|
application/x-shockwave-flash swf;
|
||||||
|
application/x-stuffit sit;
|
||||||
|
application/x-tcl tcl tk;
|
||||||
|
application/x-x509-ca-cert der pem crt;
|
||||||
|
application/x-xpinstall xpi;
|
||||||
|
application/xhtml+xml xhtml;
|
||||||
|
application/xspf+xml xspf;
|
||||||
|
application/zip zip;
|
||||||
|
|
||||||
|
application/octet-stream bin exe dll;
|
||||||
|
application/octet-stream deb;
|
||||||
|
application/octet-stream dmg;
|
||||||
|
application/octet-stream iso img;
|
||||||
|
application/octet-stream msi msp msm;
|
||||||
|
|
||||||
|
audio/midi mid midi kar;
|
||||||
|
audio/mpeg mp3;
|
||||||
|
audio/ogg ogg;
|
||||||
|
audio/x-m4a m4a;
|
||||||
|
audio/x-realaudio ra;
|
||||||
|
|
||||||
|
video/3gpp 3gpp 3gp;
|
||||||
|
video/mp2t ts;
|
||||||
|
video/mp4 mp4;
|
||||||
|
video/mpeg mpeg mpg;
|
||||||
|
video/quicktime mov;
|
||||||
|
video/webm webm;
|
||||||
|
video/x-flv flv;
|
||||||
|
video/x-m4v m4v;
|
||||||
|
video/x-mng mng;
|
||||||
|
video/x-ms-asf asx asf;
|
||||||
|
video/x-ms-wmv wmv;
|
||||||
|
video/x-msvideo avi;
|
||||||
|
}
|
||||||
+117
@@ -0,0 +1,117 @@
|
|||||||
|
|
||||||
|
#user nobody;
|
||||||
|
worker_processes 1;
|
||||||
|
|
||||||
|
#error_log logs/error.log;
|
||||||
|
#error_log logs/error.log notice;
|
||||||
|
#error_log logs/error.log info;
|
||||||
|
|
||||||
|
#pid logs/nginx.pid;
|
||||||
|
|
||||||
|
|
||||||
|
events {
|
||||||
|
worker_connections 1024;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
http {
|
||||||
|
include mime.types;
|
||||||
|
default_type application/octet-stream;
|
||||||
|
|
||||||
|
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
|
||||||
|
# '$status $body_bytes_sent "$http_referer" '
|
||||||
|
# '"$http_user_agent" "$http_x_forwarded_for"';
|
||||||
|
|
||||||
|
#access_log logs/access.log main;
|
||||||
|
|
||||||
|
sendfile on;
|
||||||
|
#tcp_nopush on;
|
||||||
|
|
||||||
|
#keepalive_timeout 0;
|
||||||
|
keepalive_timeout 65;
|
||||||
|
|
||||||
|
#gzip on;
|
||||||
|
|
||||||
|
server {
|
||||||
|
listen 80;
|
||||||
|
server_name localhost;
|
||||||
|
|
||||||
|
#charset koi8-r;
|
||||||
|
|
||||||
|
#access_log logs/host.access.log main;
|
||||||
|
|
||||||
|
location / {
|
||||||
|
root html;
|
||||||
|
index index.html index.htm;
|
||||||
|
}
|
||||||
|
|
||||||
|
#error_page 404 /404.html;
|
||||||
|
|
||||||
|
# redirect server error pages to the static page /50x.html
|
||||||
|
#
|
||||||
|
error_page 500 502 503 504 /50x.html;
|
||||||
|
location = /50x.html {
|
||||||
|
root html;
|
||||||
|
}
|
||||||
|
|
||||||
|
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
|
||||||
|
#
|
||||||
|
#location ~ \.php$ {
|
||||||
|
# proxy_pass http://127.0.0.1;
|
||||||
|
#}
|
||||||
|
|
||||||
|
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
|
||||||
|
#
|
||||||
|
#location ~ \.php$ {
|
||||||
|
# root html;
|
||||||
|
# fastcgi_pass 127.0.0.1:9000;
|
||||||
|
# fastcgi_index index.php;
|
||||||
|
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
|
||||||
|
# include fastcgi_params;
|
||||||
|
#}
|
||||||
|
|
||||||
|
# deny access to .htaccess files, if Apache's document root
|
||||||
|
# concurs with nginx's one
|
||||||
|
#
|
||||||
|
#location ~ /\.ht {
|
||||||
|
# deny all;
|
||||||
|
#}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# another virtual host using mix of IP-, name-, and port-based configuration
|
||||||
|
#
|
||||||
|
#server {
|
||||||
|
# listen 8000;
|
||||||
|
# listen somename:8080;
|
||||||
|
# server_name somename alias another.alias;
|
||||||
|
|
||||||
|
# location / {
|
||||||
|
# root html;
|
||||||
|
# index index.html index.htm;
|
||||||
|
# }
|
||||||
|
#}
|
||||||
|
|
||||||
|
|
||||||
|
# HTTPS server
|
||||||
|
#
|
||||||
|
#server {
|
||||||
|
# listen 443 ssl;
|
||||||
|
# server_name localhost;
|
||||||
|
|
||||||
|
# ssl_certificate cert.pem;
|
||||||
|
# ssl_certificate_key cert.key;
|
||||||
|
|
||||||
|
# ssl_session_cache shared:SSL:1m;
|
||||||
|
# ssl_session_timeout 5m;
|
||||||
|
|
||||||
|
# ssl_ciphers HIGH:!aNULL:!MD5;
|
||||||
|
# ssl_prefer_server_ciphers on;
|
||||||
|
|
||||||
|
# location / {
|
||||||
|
# root html;
|
||||||
|
# index index.html index.htm;
|
||||||
|
# }
|
||||||
|
#}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
|
||||||
|
scgi_param REQUEST_METHOD $request_method;
|
||||||
|
scgi_param REQUEST_URI $request_uri;
|
||||||
|
scgi_param QUERY_STRING $query_string;
|
||||||
|
scgi_param CONTENT_TYPE $content_type;
|
||||||
|
|
||||||
|
scgi_param DOCUMENT_URI $document_uri;
|
||||||
|
scgi_param DOCUMENT_ROOT $document_root;
|
||||||
|
scgi_param SCGI 1;
|
||||||
|
scgi_param SERVER_PROTOCOL $server_protocol;
|
||||||
|
scgi_param REQUEST_SCHEME $scheme;
|
||||||
|
scgi_param HTTPS $https if_not_empty;
|
||||||
|
|
||||||
|
scgi_param REMOTE_ADDR $remote_addr;
|
||||||
|
scgi_param REMOTE_PORT $remote_port;
|
||||||
|
scgi_param SERVER_PORT $server_port;
|
||||||
|
scgi_param SERVER_NAME $server_name;
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
|
||||||
|
uwsgi_param QUERY_STRING $query_string;
|
||||||
|
uwsgi_param REQUEST_METHOD $request_method;
|
||||||
|
uwsgi_param CONTENT_TYPE $content_type;
|
||||||
|
uwsgi_param CONTENT_LENGTH $content_length;
|
||||||
|
|
||||||
|
uwsgi_param REQUEST_URI $request_uri;
|
||||||
|
uwsgi_param PATH_INFO $document_uri;
|
||||||
|
uwsgi_param DOCUMENT_ROOT $document_root;
|
||||||
|
uwsgi_param SERVER_PROTOCOL $server_protocol;
|
||||||
|
uwsgi_param REQUEST_SCHEME $scheme;
|
||||||
|
uwsgi_param HTTPS $https if_not_empty;
|
||||||
|
|
||||||
|
uwsgi_param REMOTE_ADDR $remote_addr;
|
||||||
|
uwsgi_param REMOTE_PORT $remote_port;
|
||||||
|
uwsgi_param SERVER_PORT $server_port;
|
||||||
|
uwsgi_param SERVER_NAME $server_name;
|
||||||
+126
@@ -0,0 +1,126 @@
|
|||||||
|
|
||||||
|
# This map is not a full windows-1251 <> utf8 map: it does not
|
||||||
|
# contain Serbian and Macedonian letters. If you need a full map,
|
||||||
|
# use contrib/unicode2nginx/win-utf map instead.
|
||||||
|
|
||||||
|
charset_map windows-1251 utf-8 {
|
||||||
|
|
||||||
|
82 E2809A ; # single low-9 quotation mark
|
||||||
|
|
||||||
|
84 E2809E ; # double low-9 quotation mark
|
||||||
|
85 E280A6 ; # ellipsis
|
||||||
|
86 E280A0 ; # dagger
|
||||||
|
87 E280A1 ; # double dagger
|
||||||
|
88 E282AC ; # euro
|
||||||
|
89 E280B0 ; # per mille
|
||||||
|
|
||||||
|
91 E28098 ; # left single quotation mark
|
||||||
|
92 E28099 ; # right single quotation mark
|
||||||
|
93 E2809C ; # left double quotation mark
|
||||||
|
94 E2809D ; # right double quotation mark
|
||||||
|
95 E280A2 ; # bullet
|
||||||
|
96 E28093 ; # en dash
|
||||||
|
97 E28094 ; # em dash
|
||||||
|
|
||||||
|
99 E284A2 ; # trade mark sign
|
||||||
|
|
||||||
|
A0 C2A0 ; #
|
||||||
|
A1 D18E ; # capital Byelorussian short U
|
||||||
|
A2 D19E ; # small Byelorussian short u
|
||||||
|
|
||||||
|
A4 C2A4 ; # currency sign
|
||||||
|
A5 D290 ; # capital Ukrainian soft G
|
||||||
|
A6 C2A6 ; # borken bar
|
||||||
|
A7 C2A7 ; # section sign
|
||||||
|
A8 D081 ; # capital YO
|
||||||
|
A9 C2A9 ; # (C)
|
||||||
|
AA D084 ; # capital Ukrainian YE
|
||||||
|
AB C2AB ; # left-pointing double angle quotation mark
|
||||||
|
AC C2AC ; # not sign
|
||||||
|
AD C2AD ; # soft hypen
|
||||||
|
AE C2AE ; # (R)
|
||||||
|
AF D087 ; # capital Ukrainian YI
|
||||||
|
|
||||||
|
B0 C2B0 ; # °
|
||||||
|
B1 C2B1 ; # plus-minus sign
|
||||||
|
B2 D086 ; # capital Ukrainian I
|
||||||
|
B3 D196 ; # small Ukrainian i
|
||||||
|
B4 D291 ; # small Ukrainian soft g
|
||||||
|
B5 C2B5 ; # micro sign
|
||||||
|
B6 C2B6 ; # pilcrow sign
|
||||||
|
B7 C2B7 ; # ·
|
||||||
|
B8 D191 ; # small yo
|
||||||
|
B9 E28496 ; # numero sign
|
||||||
|
BA D194 ; # small Ukrainian ye
|
||||||
|
BB C2BB ; # right-pointing double angle quotation mark
|
||||||
|
|
||||||
|
BF D197 ; # small Ukrainian yi
|
||||||
|
|
||||||
|
C0 D090 ; # capital A
|
||||||
|
C1 D091 ; # capital B
|
||||||
|
C2 D092 ; # capital V
|
||||||
|
C3 D093 ; # capital G
|
||||||
|
C4 D094 ; # capital D
|
||||||
|
C5 D095 ; # capital YE
|
||||||
|
C6 D096 ; # capital ZH
|
||||||
|
C7 D097 ; # capital Z
|
||||||
|
C8 D098 ; # capital I
|
||||||
|
C9 D099 ; # capital J
|
||||||
|
CA D09A ; # capital K
|
||||||
|
CB D09B ; # capital L
|
||||||
|
CC D09C ; # capital M
|
||||||
|
CD D09D ; # capital N
|
||||||
|
CE D09E ; # capital O
|
||||||
|
CF D09F ; # capital P
|
||||||
|
|
||||||
|
D0 D0A0 ; # capital R
|
||||||
|
D1 D0A1 ; # capital S
|
||||||
|
D2 D0A2 ; # capital T
|
||||||
|
D3 D0A3 ; # capital U
|
||||||
|
D4 D0A4 ; # capital F
|
||||||
|
D5 D0A5 ; # capital KH
|
||||||
|
D6 D0A6 ; # capital TS
|
||||||
|
D7 D0A7 ; # capital CH
|
||||||
|
D8 D0A8 ; # capital SH
|
||||||
|
D9 D0A9 ; # capital SHCH
|
||||||
|
DA D0AA ; # capital hard sign
|
||||||
|
DB D0AB ; # capital Y
|
||||||
|
DC D0AC ; # capital soft sign
|
||||||
|
DD D0AD ; # capital E
|
||||||
|
DE D0AE ; # capital YU
|
||||||
|
DF D0AF ; # capital YA
|
||||||
|
|
||||||
|
E0 D0B0 ; # small a
|
||||||
|
E1 D0B1 ; # small b
|
||||||
|
E2 D0B2 ; # small v
|
||||||
|
E3 D0B3 ; # small g
|
||||||
|
E4 D0B4 ; # small d
|
||||||
|
E5 D0B5 ; # small ye
|
||||||
|
E6 D0B6 ; # small zh
|
||||||
|
E7 D0B7 ; # small z
|
||||||
|
E8 D0B8 ; # small i
|
||||||
|
E9 D0B9 ; # small j
|
||||||
|
EA D0BA ; # small k
|
||||||
|
EB D0BB ; # small l
|
||||||
|
EC D0BC ; # small m
|
||||||
|
ED D0BD ; # small n
|
||||||
|
EE D0BE ; # small o
|
||||||
|
EF D0BF ; # small p
|
||||||
|
|
||||||
|
F0 D180 ; # small r
|
||||||
|
F1 D181 ; # small s
|
||||||
|
F2 D182 ; # small t
|
||||||
|
F3 D183 ; # small u
|
||||||
|
F4 D184 ; # small f
|
||||||
|
F5 D185 ; # small kh
|
||||||
|
F6 D186 ; # small ts
|
||||||
|
F7 D187 ; # small ch
|
||||||
|
F8 D188 ; # small sh
|
||||||
|
F9 D189 ; # small shch
|
||||||
|
FA D18A ; # small hard sign
|
||||||
|
FB D18B ; # small y
|
||||||
|
FC D18C ; # small soft sign
|
||||||
|
FD D18D ; # small e
|
||||||
|
FE D18E ; # small yu
|
||||||
|
FF D18F ; # small ya
|
||||||
|
}
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
|
||||||
|
geo2nginx.pl by Andrei Nigmatulin
|
||||||
|
|
||||||
|
The perl script to convert CSV geoip database ( free download
|
||||||
|
at http://www.maxmind.com/app/geoip_country ) to format, suitable
|
||||||
|
for use by the ngx_http_geo_module.
|
||||||
|
|
||||||
|
|
||||||
|
unicode2nginx by Maxim Dounin
|
||||||
|
|
||||||
|
The perl script to convert unicode mappings ( available
|
||||||
|
at http://www.unicode.org/Public/MAPPINGS/ ) to the nginx
|
||||||
|
configuration file format.
|
||||||
|
Two generated full maps for windows-1251 and koi8-r.
|
||||||
|
|
||||||
|
|
||||||
|
vim by Evan Miller
|
||||||
|
|
||||||
|
Syntax highlighting of nginx configuration for vim, to be
|
||||||
|
placed into ~/.vim/.
|
||||||
|
|
||||||
@@ -0,0 +1,58 @@
|
|||||||
|
#!/usr/bin/perl -w
|
||||||
|
|
||||||
|
# (c) Andrei Nigmatulin, 2005
|
||||||
|
#
|
||||||
|
# this script provided "as is", without any warranties. use it at your own risk.
|
||||||
|
#
|
||||||
|
# special thanx to Andrew Sitnikov for perl port
|
||||||
|
#
|
||||||
|
# this script converts CSV geoip database (free download at http://www.maxmind.com/app/geoip_country)
|
||||||
|
# to format, suitable for use with nginx_http_geo module (http://sysoev.ru/nginx)
|
||||||
|
#
|
||||||
|
# for example, line with ip range
|
||||||
|
#
|
||||||
|
# "62.16.68.0","62.16.127.255","1041253376","1041268735","RU","Russian Federation"
|
||||||
|
#
|
||||||
|
# will be converted to four subnetworks:
|
||||||
|
#
|
||||||
|
# 62.16.68.0/22 RU;
|
||||||
|
# 62.16.72.0/21 RU;
|
||||||
|
# 62.16.80.0/20 RU;
|
||||||
|
# 62.16.96.0/19 RU;
|
||||||
|
|
||||||
|
|
||||||
|
use warnings;
|
||||||
|
use strict;
|
||||||
|
|
||||||
|
while( <STDIN> ){
|
||||||
|
if (/"[^"]+","[^"]+","([^"]+)","([^"]+)","([^"]+)"/){
|
||||||
|
print_subnets($1, $2, $3);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
sub print_subnets {
|
||||||
|
my ($a1, $a2, $c) = @_;
|
||||||
|
my $l;
|
||||||
|
while ($a1 <= $a2) {
|
||||||
|
for ($l = 0; ($a1 & (1 << $l)) == 0 && ($a1 + ((1 << ($l + 1)) - 1)) <= $a2; $l++){};
|
||||||
|
print long2ip($a1) . "/" . (32 - $l) . " " . $c . ";\n";
|
||||||
|
$a1 += (1 << $l);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
sub long2ip {
|
||||||
|
my $ip = shift;
|
||||||
|
|
||||||
|
my $str = 0;
|
||||||
|
|
||||||
|
$str = ($ip & 255);
|
||||||
|
|
||||||
|
$ip >>= 8;
|
||||||
|
$str = ($ip & 255).".$str";
|
||||||
|
|
||||||
|
$ip >>= 8;
|
||||||
|
$str = ($ip & 255).".$str";
|
||||||
|
|
||||||
|
$ip >>= 8;
|
||||||
|
$str = ($ip & 255).".$str";
|
||||||
|
}
|
||||||
@@ -0,0 +1,131 @@
|
|||||||
|
charset_map koi8-r utf-8 {
|
||||||
|
|
||||||
|
80 E29480 ; # BOX DRAWINGS LIGHT HORIZONTAL
|
||||||
|
81 E29482 ; # BOX DRAWINGS LIGHT VERTICAL
|
||||||
|
82 E2948C ; # BOX DRAWINGS LIGHT DOWN AND RIGHT
|
||||||
|
83 E29490 ; # BOX DRAWINGS LIGHT DOWN AND LEFT
|
||||||
|
84 E29494 ; # BOX DRAWINGS LIGHT UP AND RIGHT
|
||||||
|
85 E29498 ; # BOX DRAWINGS LIGHT UP AND LEFT
|
||||||
|
86 E2949C ; # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
|
||||||
|
87 E294A4 ; # BOX DRAWINGS LIGHT VERTICAL AND LEFT
|
||||||
|
88 E294AC ; # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
|
||||||
|
89 E294B4 ; # BOX DRAWINGS LIGHT UP AND HORIZONTAL
|
||||||
|
8A E294BC ; # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
|
||||||
|
8B E29680 ; # UPPER HALF BLOCK
|
||||||
|
8C E29684 ; # LOWER HALF BLOCK
|
||||||
|
8D E29688 ; # FULL BLOCK
|
||||||
|
8E E2968C ; # LEFT HALF BLOCK
|
||||||
|
8F E29690 ; # RIGHT HALF BLOCK
|
||||||
|
90 E29691 ; # LIGHT SHADE
|
||||||
|
91 E29692 ; # MEDIUM SHADE
|
||||||
|
92 E29693 ; # DARK SHADE
|
||||||
|
93 E28CA0 ; # TOP HALF INTEGRAL
|
||||||
|
94 E296A0 ; # BLACK SQUARE
|
||||||
|
95 E28899 ; # BULLET OPERATOR
|
||||||
|
96 E2889A ; # SQUARE ROOT
|
||||||
|
97 E28988 ; # ALMOST EQUAL TO
|
||||||
|
98 E289A4 ; # LESS-THAN OR EQUAL TO
|
||||||
|
99 E289A5 ; # GREATER-THAN OR EQUAL TO
|
||||||
|
9A C2A0 ; # NO-BREAK SPACE
|
||||||
|
9B E28CA1 ; # BOTTOM HALF INTEGRAL
|
||||||
|
9C C2B0 ; # DEGREE SIGN
|
||||||
|
9D C2B2 ; # SUPERSCRIPT TWO
|
||||||
|
9E C2B7 ; # MIDDLE DOT
|
||||||
|
9F C3B7 ; # DIVISION SIGN
|
||||||
|
A0 E29590 ; # BOX DRAWINGS DOUBLE HORIZONTAL
|
||||||
|
A1 E29591 ; # BOX DRAWINGS DOUBLE VERTICAL
|
||||||
|
A2 E29592 ; # BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
|
||||||
|
A3 D191 ; # CYRILLIC SMALL LETTER IO
|
||||||
|
A4 E29593 ; # BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
|
||||||
|
A5 E29594 ; # BOX DRAWINGS DOUBLE DOWN AND RIGHT
|
||||||
|
A6 E29595 ; # BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
|
||||||
|
A7 E29596 ; # BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
|
||||||
|
A8 E29597 ; # BOX DRAWINGS DOUBLE DOWN AND LEFT
|
||||||
|
A9 E29598 ; # BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
|
||||||
|
AA E29599 ; # BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
|
||||||
|
AB E2959A ; # BOX DRAWINGS DOUBLE UP AND RIGHT
|
||||||
|
AC E2959B ; # BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
|
||||||
|
AD E2959C ; # BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
|
||||||
|
AE E2959D ; # BOX DRAWINGS DOUBLE UP AND LEFT
|
||||||
|
AF E2959E ; # BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
|
||||||
|
B0 E2959F ; # BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
|
||||||
|
B1 E295A0 ; # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
|
||||||
|
B2 E295A1 ; # BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
|
||||||
|
B3 D081 ; # CYRILLIC CAPITAL LETTER IO
|
||||||
|
B4 E295A2 ; # BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
|
||||||
|
B5 E295A3 ; # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
|
||||||
|
B6 E295A4 ; # BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
|
||||||
|
B7 E295A5 ; # BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
|
||||||
|
B8 E295A6 ; # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
|
||||||
|
B9 E295A7 ; # BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
|
||||||
|
BA E295A8 ; # BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
|
||||||
|
BB E295A9 ; # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
|
||||||
|
BC E295AA ; # BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
|
||||||
|
BD E295AB ; # BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
|
||||||
|
BE E295AC ; # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
|
||||||
|
BF C2A9 ; # COPYRIGHT SIGN
|
||||||
|
C0 D18E ; # CYRILLIC SMALL LETTER YU
|
||||||
|
C1 D0B0 ; # CYRILLIC SMALL LETTER A
|
||||||
|
C2 D0B1 ; # CYRILLIC SMALL LETTER BE
|
||||||
|
C3 D186 ; # CYRILLIC SMALL LETTER TSE
|
||||||
|
C4 D0B4 ; # CYRILLIC SMALL LETTER DE
|
||||||
|
C5 D0B5 ; # CYRILLIC SMALL LETTER IE
|
||||||
|
C6 D184 ; # CYRILLIC SMALL LETTER EF
|
||||||
|
C7 D0B3 ; # CYRILLIC SMALL LETTER GHE
|
||||||
|
C8 D185 ; # CYRILLIC SMALL LETTER HA
|
||||||
|
C9 D0B8 ; # CYRILLIC SMALL LETTER I
|
||||||
|
CA D0B9 ; # CYRILLIC SMALL LETTER SHORT I
|
||||||
|
CB D0BA ; # CYRILLIC SMALL LETTER KA
|
||||||
|
CC D0BB ; # CYRILLIC SMALL LETTER EL
|
||||||
|
CD D0BC ; # CYRILLIC SMALL LETTER EM
|
||||||
|
CE D0BD ; # CYRILLIC SMALL LETTER EN
|
||||||
|
CF D0BE ; # CYRILLIC SMALL LETTER O
|
||||||
|
D0 D0BF ; # CYRILLIC SMALL LETTER PE
|
||||||
|
D1 D18F ; # CYRILLIC SMALL LETTER YA
|
||||||
|
D2 D180 ; # CYRILLIC SMALL LETTER ER
|
||||||
|
D3 D181 ; # CYRILLIC SMALL LETTER ES
|
||||||
|
D4 D182 ; # CYRILLIC SMALL LETTER TE
|
||||||
|
D5 D183 ; # CYRILLIC SMALL LETTER U
|
||||||
|
D6 D0B6 ; # CYRILLIC SMALL LETTER ZHE
|
||||||
|
D7 D0B2 ; # CYRILLIC SMALL LETTER VE
|
||||||
|
D8 D18C ; # CYRILLIC SMALL LETTER SOFT SIGN
|
||||||
|
D9 D18B ; # CYRILLIC SMALL LETTER YERU
|
||||||
|
DA D0B7 ; # CYRILLIC SMALL LETTER ZE
|
||||||
|
DB D188 ; # CYRILLIC SMALL LETTER SHA
|
||||||
|
DC D18D ; # CYRILLIC SMALL LETTER E
|
||||||
|
DD D189 ; # CYRILLIC SMALL LETTER SHCHA
|
||||||
|
DE D187 ; # CYRILLIC SMALL LETTER CHE
|
||||||
|
DF D18A ; # CYRILLIC SMALL LETTER HARD SIGN
|
||||||
|
E0 D0AE ; # CYRILLIC CAPITAL LETTER YU
|
||||||
|
E1 D090 ; # CYRILLIC CAPITAL LETTER A
|
||||||
|
E2 D091 ; # CYRILLIC CAPITAL LETTER BE
|
||||||
|
E3 D0A6 ; # CYRILLIC CAPITAL LETTER TSE
|
||||||
|
E4 D094 ; # CYRILLIC CAPITAL LETTER DE
|
||||||
|
E5 D095 ; # CYRILLIC CAPITAL LETTER IE
|
||||||
|
E6 D0A4 ; # CYRILLIC CAPITAL LETTER EF
|
||||||
|
E7 D093 ; # CYRILLIC CAPITAL LETTER GHE
|
||||||
|
E8 D0A5 ; # CYRILLIC CAPITAL LETTER HA
|
||||||
|
E9 D098 ; # CYRILLIC CAPITAL LETTER I
|
||||||
|
EA D099 ; # CYRILLIC CAPITAL LETTER SHORT I
|
||||||
|
EB D09A ; # CYRILLIC CAPITAL LETTER KA
|
||||||
|
EC D09B ; # CYRILLIC CAPITAL LETTER EL
|
||||||
|
ED D09C ; # CYRILLIC CAPITAL LETTER EM
|
||||||
|
EE D09D ; # CYRILLIC CAPITAL LETTER EN
|
||||||
|
EF D09E ; # CYRILLIC CAPITAL LETTER O
|
||||||
|
F0 D09F ; # CYRILLIC CAPITAL LETTER PE
|
||||||
|
F1 D0AF ; # CYRILLIC CAPITAL LETTER YA
|
||||||
|
F2 D0A0 ; # CYRILLIC CAPITAL LETTER ER
|
||||||
|
F3 D0A1 ; # CYRILLIC CAPITAL LETTER ES
|
||||||
|
F4 D0A2 ; # CYRILLIC CAPITAL LETTER TE
|
||||||
|
F5 D0A3 ; # CYRILLIC CAPITAL LETTER U
|
||||||
|
F6 D096 ; # CYRILLIC CAPITAL LETTER ZHE
|
||||||
|
F7 D092 ; # CYRILLIC CAPITAL LETTER VE
|
||||||
|
F8 D0AC ; # CYRILLIC CAPITAL LETTER SOFT SIGN
|
||||||
|
F9 D0AB ; # CYRILLIC CAPITAL LETTER YERU
|
||||||
|
FA D097 ; # CYRILLIC CAPITAL LETTER ZE
|
||||||
|
FB D0A8 ; # CYRILLIC CAPITAL LETTER SHA
|
||||||
|
FC D0AD ; # CYRILLIC CAPITAL LETTER E
|
||||||
|
FD D0A9 ; # CYRILLIC CAPITAL LETTER SHCHA
|
||||||
|
FE D0A7 ; # CYRILLIC CAPITAL LETTER CHE
|
||||||
|
FF D0AA ; # CYRILLIC CAPITAL LETTER HARD SIGN
|
||||||
|
}
|
||||||
@@ -0,0 +1,48 @@
|
|||||||
|
#!/usr/bin/perl -w
|
||||||
|
|
||||||
|
# Convert unicode mappings to nginx configuration file format.
|
||||||
|
|
||||||
|
# You may find useful mappings in various places, including
|
||||||
|
# unicode.org official site:
|
||||||
|
#
|
||||||
|
# http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1251.TXT
|
||||||
|
# http://www.unicode.org/Public/MAPPINGS/VENDORS/MISC/KOI8-R.TXT
|
||||||
|
|
||||||
|
# Needs perl 5.6 or later.
|
||||||
|
|
||||||
|
# Written by Maxim Dounin, mdounin@mdounin.ru
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
require 5.006;
|
||||||
|
|
||||||
|
while (<>) {
|
||||||
|
# Skip comments and empty lines
|
||||||
|
|
||||||
|
next if /^#/;
|
||||||
|
next if /^\s*$/;
|
||||||
|
chomp;
|
||||||
|
|
||||||
|
# Convert mappings
|
||||||
|
|
||||||
|
if (/^\s*0x(..)\s*0x(....)\s*(#.*)/) {
|
||||||
|
# Mapping <from-code> <unicode-code> "#" <unicode-name>
|
||||||
|
my $cs_code = $1;
|
||||||
|
my $un_code = $2;
|
||||||
|
my $un_name = $3;
|
||||||
|
|
||||||
|
# Produce UTF-8 sequence from character code;
|
||||||
|
|
||||||
|
my $un_utf8 = join('',
|
||||||
|
map { sprintf("%02X", $_) }
|
||||||
|
unpack("U0C*", pack("U", hex($un_code)))
|
||||||
|
);
|
||||||
|
|
||||||
|
print " $cs_code $un_utf8 ; $un_name\n";
|
||||||
|
|
||||||
|
} else {
|
||||||
|
warn "Unrecognized line: '$_'";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
@@ -0,0 +1,130 @@
|
|||||||
|
charset_map windows-1251 utf-8 {
|
||||||
|
|
||||||
|
80 D082 ; #CYRILLIC CAPITAL LETTER DJE
|
||||||
|
81 D083 ; #CYRILLIC CAPITAL LETTER GJE
|
||||||
|
82 E2809A ; #SINGLE LOW-9 QUOTATION MARK
|
||||||
|
83 D193 ; #CYRILLIC SMALL LETTER GJE
|
||||||
|
84 E2809E ; #DOUBLE LOW-9 QUOTATION MARK
|
||||||
|
85 E280A6 ; #HORIZONTAL ELLIPSIS
|
||||||
|
86 E280A0 ; #DAGGER
|
||||||
|
87 E280A1 ; #DOUBLE DAGGER
|
||||||
|
88 E282AC ; #EURO SIGN
|
||||||
|
89 E280B0 ; #PER MILLE SIGN
|
||||||
|
8A D089 ; #CYRILLIC CAPITAL LETTER LJE
|
||||||
|
8B E280B9 ; #SINGLE LEFT-POINTING ANGLE QUOTATION MARK
|
||||||
|
8C D08A ; #CYRILLIC CAPITAL LETTER NJE
|
||||||
|
8D D08C ; #CYRILLIC CAPITAL LETTER KJE
|
||||||
|
8E D08B ; #CYRILLIC CAPITAL LETTER TSHE
|
||||||
|
8F D08F ; #CYRILLIC CAPITAL LETTER DZHE
|
||||||
|
90 D192 ; #CYRILLIC SMALL LETTER DJE
|
||||||
|
91 E28098 ; #LEFT SINGLE QUOTATION MARK
|
||||||
|
92 E28099 ; #RIGHT SINGLE QUOTATION MARK
|
||||||
|
93 E2809C ; #LEFT DOUBLE QUOTATION MARK
|
||||||
|
94 E2809D ; #RIGHT DOUBLE QUOTATION MARK
|
||||||
|
95 E280A2 ; #BULLET
|
||||||
|
96 E28093 ; #EN DASH
|
||||||
|
97 E28094 ; #EM DASH
|
||||||
|
99 E284A2 ; #TRADE MARK SIGN
|
||||||
|
9A D199 ; #CYRILLIC SMALL LETTER LJE
|
||||||
|
9B E280BA ; #SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
|
||||||
|
9C D19A ; #CYRILLIC SMALL LETTER NJE
|
||||||
|
9D D19C ; #CYRILLIC SMALL LETTER KJE
|
||||||
|
9E D19B ; #CYRILLIC SMALL LETTER TSHE
|
||||||
|
9F D19F ; #CYRILLIC SMALL LETTER DZHE
|
||||||
|
A0 C2A0 ; #NO-BREAK SPACE
|
||||||
|
A1 D08E ; #CYRILLIC CAPITAL LETTER SHORT U
|
||||||
|
A2 D19E ; #CYRILLIC SMALL LETTER SHORT U
|
||||||
|
A3 D088 ; #CYRILLIC CAPITAL LETTER JE
|
||||||
|
A4 C2A4 ; #CURRENCY SIGN
|
||||||
|
A5 D290 ; #CYRILLIC CAPITAL LETTER GHE WITH UPTURN
|
||||||
|
A6 C2A6 ; #BROKEN BAR
|
||||||
|
A7 C2A7 ; #SECTION SIGN
|
||||||
|
A8 D081 ; #CYRILLIC CAPITAL LETTER IO
|
||||||
|
A9 C2A9 ; #COPYRIGHT SIGN
|
||||||
|
AA D084 ; #CYRILLIC CAPITAL LETTER UKRAINIAN IE
|
||||||
|
AB C2AB ; #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||||
|
AC C2AC ; #NOT SIGN
|
||||||
|
AD C2AD ; #SOFT HYPHEN
|
||||||
|
AE C2AE ; #REGISTERED SIGN
|
||||||
|
AF D087 ; #CYRILLIC CAPITAL LETTER YI
|
||||||
|
B0 C2B0 ; #DEGREE SIGN
|
||||||
|
B1 C2B1 ; #PLUS-MINUS SIGN
|
||||||
|
B2 D086 ; #CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
|
||||||
|
B3 D196 ; #CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
|
||||||
|
B4 D291 ; #CYRILLIC SMALL LETTER GHE WITH UPTURN
|
||||||
|
B5 C2B5 ; #MICRO SIGN
|
||||||
|
B6 C2B6 ; #PILCROW SIGN
|
||||||
|
B7 C2B7 ; #MIDDLE DOT
|
||||||
|
B8 D191 ; #CYRILLIC SMALL LETTER IO
|
||||||
|
B9 E28496 ; #NUMERO SIGN
|
||||||
|
BA D194 ; #CYRILLIC SMALL LETTER UKRAINIAN IE
|
||||||
|
BB C2BB ; #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||||
|
BC D198 ; #CYRILLIC SMALL LETTER JE
|
||||||
|
BD D085 ; #CYRILLIC CAPITAL LETTER DZE
|
||||||
|
BE D195 ; #CYRILLIC SMALL LETTER DZE
|
||||||
|
BF D197 ; #CYRILLIC SMALL LETTER YI
|
||||||
|
C0 D090 ; #CYRILLIC CAPITAL LETTER A
|
||||||
|
C1 D091 ; #CYRILLIC CAPITAL LETTER BE
|
||||||
|
C2 D092 ; #CYRILLIC CAPITAL LETTER VE
|
||||||
|
C3 D093 ; #CYRILLIC CAPITAL LETTER GHE
|
||||||
|
C4 D094 ; #CYRILLIC CAPITAL LETTER DE
|
||||||
|
C5 D095 ; #CYRILLIC CAPITAL LETTER IE
|
||||||
|
C6 D096 ; #CYRILLIC CAPITAL LETTER ZHE
|
||||||
|
C7 D097 ; #CYRILLIC CAPITAL LETTER ZE
|
||||||
|
C8 D098 ; #CYRILLIC CAPITAL LETTER I
|
||||||
|
C9 D099 ; #CYRILLIC CAPITAL LETTER SHORT I
|
||||||
|
CA D09A ; #CYRILLIC CAPITAL LETTER KA
|
||||||
|
CB D09B ; #CYRILLIC CAPITAL LETTER EL
|
||||||
|
CC D09C ; #CYRILLIC CAPITAL LETTER EM
|
||||||
|
CD D09D ; #CYRILLIC CAPITAL LETTER EN
|
||||||
|
CE D09E ; #CYRILLIC CAPITAL LETTER O
|
||||||
|
CF D09F ; #CYRILLIC CAPITAL LETTER PE
|
||||||
|
D0 D0A0 ; #CYRILLIC CAPITAL LETTER ER
|
||||||
|
D1 D0A1 ; #CYRILLIC CAPITAL LETTER ES
|
||||||
|
D2 D0A2 ; #CYRILLIC CAPITAL LETTER TE
|
||||||
|
D3 D0A3 ; #CYRILLIC CAPITAL LETTER U
|
||||||
|
D4 D0A4 ; #CYRILLIC CAPITAL LETTER EF
|
||||||
|
D5 D0A5 ; #CYRILLIC CAPITAL LETTER HA
|
||||||
|
D6 D0A6 ; #CYRILLIC CAPITAL LETTER TSE
|
||||||
|
D7 D0A7 ; #CYRILLIC CAPITAL LETTER CHE
|
||||||
|
D8 D0A8 ; #CYRILLIC CAPITAL LETTER SHA
|
||||||
|
D9 D0A9 ; #CYRILLIC CAPITAL LETTER SHCHA
|
||||||
|
DA D0AA ; #CYRILLIC CAPITAL LETTER HARD SIGN
|
||||||
|
DB D0AB ; #CYRILLIC CAPITAL LETTER YERU
|
||||||
|
DC D0AC ; #CYRILLIC CAPITAL LETTER SOFT SIGN
|
||||||
|
DD D0AD ; #CYRILLIC CAPITAL LETTER E
|
||||||
|
DE D0AE ; #CYRILLIC CAPITAL LETTER YU
|
||||||
|
DF D0AF ; #CYRILLIC CAPITAL LETTER YA
|
||||||
|
E0 D0B0 ; #CYRILLIC SMALL LETTER A
|
||||||
|
E1 D0B1 ; #CYRILLIC SMALL LETTER BE
|
||||||
|
E2 D0B2 ; #CYRILLIC SMALL LETTER VE
|
||||||
|
E3 D0B3 ; #CYRILLIC SMALL LETTER GHE
|
||||||
|
E4 D0B4 ; #CYRILLIC SMALL LETTER DE
|
||||||
|
E5 D0B5 ; #CYRILLIC SMALL LETTER IE
|
||||||
|
E6 D0B6 ; #CYRILLIC SMALL LETTER ZHE
|
||||||
|
E7 D0B7 ; #CYRILLIC SMALL LETTER ZE
|
||||||
|
E8 D0B8 ; #CYRILLIC SMALL LETTER I
|
||||||
|
E9 D0B9 ; #CYRILLIC SMALL LETTER SHORT I
|
||||||
|
EA D0BA ; #CYRILLIC SMALL LETTER KA
|
||||||
|
EB D0BB ; #CYRILLIC SMALL LETTER EL
|
||||||
|
EC D0BC ; #CYRILLIC SMALL LETTER EM
|
||||||
|
ED D0BD ; #CYRILLIC SMALL LETTER EN
|
||||||
|
EE D0BE ; #CYRILLIC SMALL LETTER O
|
||||||
|
EF D0BF ; #CYRILLIC SMALL LETTER PE
|
||||||
|
F0 D180 ; #CYRILLIC SMALL LETTER ER
|
||||||
|
F1 D181 ; #CYRILLIC SMALL LETTER ES
|
||||||
|
F2 D182 ; #CYRILLIC SMALL LETTER TE
|
||||||
|
F3 D183 ; #CYRILLIC SMALL LETTER U
|
||||||
|
F4 D184 ; #CYRILLIC SMALL LETTER EF
|
||||||
|
F5 D185 ; #CYRILLIC SMALL LETTER HA
|
||||||
|
F6 D186 ; #CYRILLIC SMALL LETTER TSE
|
||||||
|
F7 D187 ; #CYRILLIC SMALL LETTER CHE
|
||||||
|
F8 D188 ; #CYRILLIC SMALL LETTER SHA
|
||||||
|
F9 D189 ; #CYRILLIC SMALL LETTER SHCHA
|
||||||
|
FA D18A ; #CYRILLIC SMALL LETTER HARD SIGN
|
||||||
|
FB D18B ; #CYRILLIC SMALL LETTER YERU
|
||||||
|
FC D18C ; #CYRILLIC SMALL LETTER SOFT SIGN
|
||||||
|
FD D18D ; #CYRILLIC SMALL LETTER E
|
||||||
|
FE D18E ; #CYRILLIC SMALL LETTER YU
|
||||||
|
FF D18F ; #CYRILLIC SMALL LETTER YA
|
||||||
|
}
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
au BufRead,BufNewFile *.nginx set ft=nginx
|
||||||
|
au BufRead,BufNewFile */etc/nginx/* set ft=nginx
|
||||||
|
au BufRead,BufNewFile */usr/local/nginx/conf/* set ft=nginx
|
||||||
|
au BufRead,BufNewFile nginx.conf set ft=nginx
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
setlocal commentstring=#\ %s
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
if exists("b:did_indent")
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
let b:did_indent = 1
|
||||||
|
|
||||||
|
setlocal indentexpr=
|
||||||
|
|
||||||
|
" cindent actually works for nginx' simple file structure
|
||||||
|
setlocal cindent
|
||||||
|
" Just make sure that the comments are not reset as defs would be.
|
||||||
|
setlocal cinkeys-=0#
|
||||||
@@ -0,0 +1,2238 @@
|
|||||||
|
" Vim syntax file
|
||||||
|
" Language: nginx.conf
|
||||||
|
|
||||||
|
if exists("b:current_syntax")
|
||||||
|
finish
|
||||||
|
end
|
||||||
|
|
||||||
|
" general syntax
|
||||||
|
|
||||||
|
if has("patch-7.4.1142")
|
||||||
|
" except control characters, ";", "{", and "}"
|
||||||
|
syn iskeyword 33-58,60-122,124,126-255
|
||||||
|
endif
|
||||||
|
|
||||||
|
syn match ngxName '\([^;{} \t\\]\|\\.\)\+'
|
||||||
|
\ contains=@ngxDirectives
|
||||||
|
\ nextgroup=@ngxParams skipwhite skipempty
|
||||||
|
syn match ngxParam '\(\${\|[^;{ \t\\]\|\\.\)\+'
|
||||||
|
\ contained
|
||||||
|
\ contains=ngxVariable
|
||||||
|
\ nextgroup=@ngxParams skipwhite skipempty
|
||||||
|
syn region ngxString start=+\z(["']\)+ end=+\z1+ skip=+\\\\\|\\\z1+
|
||||||
|
\ contains=ngxVariableString
|
||||||
|
\ nextgroup=@ngxParams skipwhite skipempty
|
||||||
|
syn match ngxParamComment '#.*$'
|
||||||
|
\ nextgroup=@ngxParams skipwhite skipempty
|
||||||
|
syn match ngxSemicolon ';' contained
|
||||||
|
syn region ngxBlock start=+{+ end=+}+ contained
|
||||||
|
\ contains=@ngxTopLevel
|
||||||
|
syn match ngxComment '#.*$'
|
||||||
|
|
||||||
|
syn match ngxVariable '\$\(\w\+\|{\w\+}\)' contained
|
||||||
|
syn match ngxVariableString '\$\(\w\+\|{\w\+}\)' contained
|
||||||
|
|
||||||
|
syn cluster ngxTopLevel
|
||||||
|
\ contains=ngxName,ngxString,ngxComment
|
||||||
|
syn cluster ngxDirectives
|
||||||
|
\ contains=ngxDirective,ngxDirectiveBlock,ngxDirectiveImportant
|
||||||
|
\ add=ngxDirectiveControl,ngxDirectiveError,ngxDirectiveDeprecated
|
||||||
|
\ add=ngxDirectiveThirdParty,ngxDirectiveThirdPartyDeprecated
|
||||||
|
syn cluster ngxParams
|
||||||
|
\ contains=ngxParam,ngxString,ngxParamComment,ngxSemicolon,ngxBlock
|
||||||
|
|
||||||
|
" boolean parameters
|
||||||
|
|
||||||
|
syn keyword ngxBoolean contained on off
|
||||||
|
\ nextgroup=@ngxParams skipwhite skipempty
|
||||||
|
syn cluster ngxParams add=ngxBoolean
|
||||||
|
|
||||||
|
" listen directive
|
||||||
|
|
||||||
|
syn cluster ngxTopLevel add=ngxDirectiveListen
|
||||||
|
syn keyword ngxDirectiveListen listen
|
||||||
|
\ nextgroup=@ngxListenParams skipwhite skipempty
|
||||||
|
syn match ngxListenParam '\(\${\|[^;{ \t\\]\|\\.\)\+'
|
||||||
|
\ contained
|
||||||
|
\ nextgroup=@ngxListenParams skipwhite skipempty
|
||||||
|
syn region ngxListenString start=+\z(["']\)+ end=+\z1+ skip=+\\\\\|\\\z1+
|
||||||
|
\ contained
|
||||||
|
\ nextgroup=@ngxListenParams skipwhite skipempty
|
||||||
|
syn match ngxListenComment '#.*$'
|
||||||
|
\ contained
|
||||||
|
\ nextgroup=@ngxListenParams skipwhite skipempty
|
||||||
|
syn keyword ngxListenOptions contained
|
||||||
|
\ default_server ssl http2 proxy_protocol
|
||||||
|
\ setfib fastopen backlog rcvbuf sndbuf accept_filter deferred bind
|
||||||
|
\ ipv6only reuseport so_keepalive
|
||||||
|
\ nextgroup=@ngxListenParams skipwhite skipempty
|
||||||
|
syn keyword ngxListenOptionsDeprecated contained
|
||||||
|
\ spdy
|
||||||
|
\ nextgroup=@ngxListenParams skipwhite skipempty
|
||||||
|
syn cluster ngxListenParams
|
||||||
|
\ contains=ngxListenParam,ngxListenString,ngxListenComment
|
||||||
|
\ add=ngxListenOptions,ngxListenOptionsDeprecated
|
||||||
|
|
||||||
|
syn keyword ngxDirectiveBlock contained http
|
||||||
|
syn keyword ngxDirectiveBlock contained stream
|
||||||
|
syn keyword ngxDirectiveBlock contained mail
|
||||||
|
syn keyword ngxDirectiveBlock contained events
|
||||||
|
syn keyword ngxDirectiveBlock contained server
|
||||||
|
syn keyword ngxDirectiveBlock contained types
|
||||||
|
syn keyword ngxDirectiveBlock contained location
|
||||||
|
syn keyword ngxDirectiveBlock contained upstream
|
||||||
|
syn keyword ngxDirectiveBlock contained charset_map
|
||||||
|
syn keyword ngxDirectiveBlock contained limit_except
|
||||||
|
syn keyword ngxDirectiveBlock contained if
|
||||||
|
syn keyword ngxDirectiveBlock contained geo
|
||||||
|
syn keyword ngxDirectiveBlock contained map
|
||||||
|
syn keyword ngxDirectiveBlock contained split_clients
|
||||||
|
syn keyword ngxDirectiveBlock contained match
|
||||||
|
|
||||||
|
syn keyword ngxDirectiveImportant contained include
|
||||||
|
syn keyword ngxDirectiveImportant contained root
|
||||||
|
syn keyword ngxDirectiveImportant contained server_name
|
||||||
|
syn keyword ngxDirectiveImportant contained internal
|
||||||
|
syn keyword ngxDirectiveImportant contained proxy_pass
|
||||||
|
syn keyword ngxDirectiveImportant contained memcached_pass
|
||||||
|
syn keyword ngxDirectiveImportant contained fastcgi_pass
|
||||||
|
syn keyword ngxDirectiveImportant contained scgi_pass
|
||||||
|
syn keyword ngxDirectiveImportant contained uwsgi_pass
|
||||||
|
syn keyword ngxDirectiveImportant contained try_files
|
||||||
|
|
||||||
|
syn keyword ngxDirectiveControl contained break
|
||||||
|
syn keyword ngxDirectiveControl contained return
|
||||||
|
syn keyword ngxDirectiveControl contained rewrite
|
||||||
|
syn keyword ngxDirectiveControl contained set
|
||||||
|
|
||||||
|
syn keyword ngxDirectiveError contained error_page
|
||||||
|
syn keyword ngxDirectiveError contained post_action
|
||||||
|
|
||||||
|
syn keyword ngxDirectiveDeprecated contained proxy_downstream_buffer
|
||||||
|
syn keyword ngxDirectiveDeprecated contained proxy_upstream_buffer
|
||||||
|
syn keyword ngxDirectiveDeprecated contained spdy_chunk_size
|
||||||
|
syn keyword ngxDirectiveDeprecated contained spdy_headers_comp
|
||||||
|
syn keyword ngxDirectiveDeprecated contained spdy_keepalive_timeout
|
||||||
|
syn keyword ngxDirectiveDeprecated contained spdy_max_concurrent_streams
|
||||||
|
syn keyword ngxDirectiveDeprecated contained spdy_pool_size
|
||||||
|
syn keyword ngxDirectiveDeprecated contained spdy_recv_buffer_size
|
||||||
|
syn keyword ngxDirectiveDeprecated contained spdy_recv_timeout
|
||||||
|
syn keyword ngxDirectiveDeprecated contained spdy_streams_index_size
|
||||||
|
syn keyword ngxDirectiveDeprecated contained upstream_conf
|
||||||
|
|
||||||
|
syn keyword ngxDirective contained absolute_redirect
|
||||||
|
syn keyword ngxDirective contained accept_mutex
|
||||||
|
syn keyword ngxDirective contained accept_mutex_delay
|
||||||
|
syn keyword ngxDirective contained acceptex_read
|
||||||
|
syn keyword ngxDirective contained access_log
|
||||||
|
syn keyword ngxDirective contained add_after_body
|
||||||
|
syn keyword ngxDirective contained add_before_body
|
||||||
|
syn keyword ngxDirective contained add_header
|
||||||
|
syn keyword ngxDirective contained add_trailer
|
||||||
|
syn keyword ngxDirective contained addition_types
|
||||||
|
syn keyword ngxDirective contained aio
|
||||||
|
syn keyword ngxDirective contained aio_write
|
||||||
|
syn keyword ngxDirective contained alias
|
||||||
|
syn keyword ngxDirective contained allow
|
||||||
|
syn keyword ngxDirective contained ancient_browser
|
||||||
|
syn keyword ngxDirective contained ancient_browser_value
|
||||||
|
syn keyword ngxDirective contained auth_basic
|
||||||
|
syn keyword ngxDirective contained auth_basic_user_file
|
||||||
|
syn keyword ngxDirective contained auth_http
|
||||||
|
syn keyword ngxDirective contained auth_http_header
|
||||||
|
syn keyword ngxDirective contained auth_http_pass_client_cert
|
||||||
|
syn keyword ngxDirective contained auth_http_timeout
|
||||||
|
syn keyword ngxDirective contained auth_jwt
|
||||||
|
syn keyword ngxDirective contained auth_jwt_key_file
|
||||||
|
syn keyword ngxDirective contained auth_request
|
||||||
|
syn keyword ngxDirective contained auth_request_set
|
||||||
|
syn keyword ngxDirective contained autoindex
|
||||||
|
syn keyword ngxDirective contained autoindex_exact_size
|
||||||
|
syn keyword ngxDirective contained autoindex_format
|
||||||
|
syn keyword ngxDirective contained autoindex_localtime
|
||||||
|
syn keyword ngxDirective contained charset
|
||||||
|
syn keyword ngxDirective contained charset_types
|
||||||
|
syn keyword ngxDirective contained chunked_transfer_encoding
|
||||||
|
syn keyword ngxDirective contained client_body_buffer_size
|
||||||
|
syn keyword ngxDirective contained client_body_in_file_only
|
||||||
|
syn keyword ngxDirective contained client_body_in_single_buffer
|
||||||
|
syn keyword ngxDirective contained client_body_temp_path
|
||||||
|
syn keyword ngxDirective contained client_body_timeout
|
||||||
|
syn keyword ngxDirective contained client_header_buffer_size
|
||||||
|
syn keyword ngxDirective contained client_header_timeout
|
||||||
|
syn keyword ngxDirective contained client_max_body_size
|
||||||
|
syn keyword ngxDirective contained connection_pool_size
|
||||||
|
syn keyword ngxDirective contained create_full_put_path
|
||||||
|
syn keyword ngxDirective contained daemon
|
||||||
|
syn keyword ngxDirective contained dav_access
|
||||||
|
syn keyword ngxDirective contained dav_methods
|
||||||
|
syn keyword ngxDirective contained debug_connection
|
||||||
|
syn keyword ngxDirective contained debug_points
|
||||||
|
syn keyword ngxDirective contained default_type
|
||||||
|
syn keyword ngxDirective contained degradation
|
||||||
|
syn keyword ngxDirective contained degrade
|
||||||
|
syn keyword ngxDirective contained deny
|
||||||
|
syn keyword ngxDirective contained devpoll_changes
|
||||||
|
syn keyword ngxDirective contained devpoll_events
|
||||||
|
syn keyword ngxDirective contained directio
|
||||||
|
syn keyword ngxDirective contained directio_alignment
|
||||||
|
syn keyword ngxDirective contained disable_symlinks
|
||||||
|
syn keyword ngxDirective contained empty_gif
|
||||||
|
syn keyword ngxDirective contained env
|
||||||
|
syn keyword ngxDirective contained epoll_events
|
||||||
|
syn keyword ngxDirective contained error_log
|
||||||
|
syn keyword ngxDirective contained etag
|
||||||
|
syn keyword ngxDirective contained eventport_events
|
||||||
|
syn keyword ngxDirective contained expires
|
||||||
|
syn keyword ngxDirective contained f4f
|
||||||
|
syn keyword ngxDirective contained f4f_buffer_size
|
||||||
|
syn keyword ngxDirective contained fastcgi_bind
|
||||||
|
syn keyword ngxDirective contained fastcgi_buffer_size
|
||||||
|
syn keyword ngxDirective contained fastcgi_buffering
|
||||||
|
syn keyword ngxDirective contained fastcgi_buffers
|
||||||
|
syn keyword ngxDirective contained fastcgi_busy_buffers_size
|
||||||
|
syn keyword ngxDirective contained fastcgi_cache
|
||||||
|
syn keyword ngxDirective contained fastcgi_cache_background_update
|
||||||
|
syn keyword ngxDirective contained fastcgi_cache_bypass
|
||||||
|
syn keyword ngxDirective contained fastcgi_cache_key
|
||||||
|
syn keyword ngxDirective contained fastcgi_cache_lock
|
||||||
|
syn keyword ngxDirective contained fastcgi_cache_lock_age
|
||||||
|
syn keyword ngxDirective contained fastcgi_cache_lock_timeout
|
||||||
|
syn keyword ngxDirective contained fastcgi_cache_max_range_offset
|
||||||
|
syn keyword ngxDirective contained fastcgi_cache_methods
|
||||||
|
syn keyword ngxDirective contained fastcgi_cache_min_uses
|
||||||
|
syn keyword ngxDirective contained fastcgi_cache_path
|
||||||
|
syn keyword ngxDirective contained fastcgi_cache_purge
|
||||||
|
syn keyword ngxDirective contained fastcgi_cache_revalidate
|
||||||
|
syn keyword ngxDirective contained fastcgi_cache_use_stale
|
||||||
|
syn keyword ngxDirective contained fastcgi_cache_valid
|
||||||
|
syn keyword ngxDirective contained fastcgi_catch_stderr
|
||||||
|
syn keyword ngxDirective contained fastcgi_connect_timeout
|
||||||
|
syn keyword ngxDirective contained fastcgi_force_ranges
|
||||||
|
syn keyword ngxDirective contained fastcgi_hide_header
|
||||||
|
syn keyword ngxDirective contained fastcgi_ignore_client_abort
|
||||||
|
syn keyword ngxDirective contained fastcgi_ignore_headers
|
||||||
|
syn keyword ngxDirective contained fastcgi_index
|
||||||
|
syn keyword ngxDirective contained fastcgi_intercept_errors
|
||||||
|
syn keyword ngxDirective contained fastcgi_keep_conn
|
||||||
|
syn keyword ngxDirective contained fastcgi_limit_rate
|
||||||
|
syn keyword ngxDirective contained fastcgi_max_temp_file_size
|
||||||
|
syn keyword ngxDirective contained fastcgi_next_upstream
|
||||||
|
syn keyword ngxDirective contained fastcgi_next_upstream_timeout
|
||||||
|
syn keyword ngxDirective contained fastcgi_next_upstream_tries
|
||||||
|
syn keyword ngxDirective contained fastcgi_no_cache
|
||||||
|
syn keyword ngxDirective contained fastcgi_param
|
||||||
|
syn keyword ngxDirective contained fastcgi_pass_header
|
||||||
|
syn keyword ngxDirective contained fastcgi_pass_request_body
|
||||||
|
syn keyword ngxDirective contained fastcgi_pass_request_headers
|
||||||
|
syn keyword ngxDirective contained fastcgi_read_timeout
|
||||||
|
syn keyword ngxDirective contained fastcgi_request_buffering
|
||||||
|
syn keyword ngxDirective contained fastcgi_send_lowat
|
||||||
|
syn keyword ngxDirective contained fastcgi_send_timeout
|
||||||
|
syn keyword ngxDirective contained fastcgi_split_path_info
|
||||||
|
syn keyword ngxDirective contained fastcgi_store
|
||||||
|
syn keyword ngxDirective contained fastcgi_store_access
|
||||||
|
syn keyword ngxDirective contained fastcgi_temp_file_write_size
|
||||||
|
syn keyword ngxDirective contained fastcgi_temp_path
|
||||||
|
syn keyword ngxDirective contained flv
|
||||||
|
syn keyword ngxDirective contained geoip_city
|
||||||
|
syn keyword ngxDirective contained geoip_country
|
||||||
|
syn keyword ngxDirective contained geoip_org
|
||||||
|
syn keyword ngxDirective contained geoip_proxy
|
||||||
|
syn keyword ngxDirective contained geoip_proxy_recursive
|
||||||
|
syn keyword ngxDirective contained google_perftools_profiles
|
||||||
|
syn keyword ngxDirective contained gunzip
|
||||||
|
syn keyword ngxDirective contained gunzip_buffers
|
||||||
|
syn keyword ngxDirective contained gzip
|
||||||
|
syn keyword ngxDirective contained gzip_buffers
|
||||||
|
syn keyword ngxDirective contained gzip_comp_level
|
||||||
|
syn keyword ngxDirective contained gzip_disable
|
||||||
|
syn keyword ngxDirective contained gzip_hash
|
||||||
|
syn keyword ngxDirective contained gzip_http_version
|
||||||
|
syn keyword ngxDirective contained gzip_min_length
|
||||||
|
syn keyword ngxDirective contained gzip_no_buffer
|
||||||
|
syn keyword ngxDirective contained gzip_proxied
|
||||||
|
syn keyword ngxDirective contained gzip_static
|
||||||
|
syn keyword ngxDirective contained gzip_types
|
||||||
|
syn keyword ngxDirective contained gzip_vary
|
||||||
|
syn keyword ngxDirective contained gzip_window
|
||||||
|
syn keyword ngxDirective contained hash
|
||||||
|
syn keyword ngxDirective contained health_check
|
||||||
|
syn keyword ngxDirective contained health_check_timeout
|
||||||
|
syn keyword ngxDirective contained hls
|
||||||
|
syn keyword ngxDirective contained hls_buffers
|
||||||
|
syn keyword ngxDirective contained hls_forward_args
|
||||||
|
syn keyword ngxDirective contained hls_fragment
|
||||||
|
syn keyword ngxDirective contained hls_mp4_buffer_size
|
||||||
|
syn keyword ngxDirective contained hls_mp4_max_buffer_size
|
||||||
|
syn keyword ngxDirective contained http2_body_preread_size
|
||||||
|
syn keyword ngxDirective contained http2_chunk_size
|
||||||
|
syn keyword ngxDirective contained http2_idle_timeout
|
||||||
|
syn keyword ngxDirective contained http2_max_concurrent_streams
|
||||||
|
syn keyword ngxDirective contained http2_max_field_size
|
||||||
|
syn keyword ngxDirective contained http2_max_header_size
|
||||||
|
syn keyword ngxDirective contained http2_max_requests
|
||||||
|
syn keyword ngxDirective contained http2_pool_size
|
||||||
|
syn keyword ngxDirective contained http2_recv_buffer_size
|
||||||
|
syn keyword ngxDirective contained http2_recv_timeout
|
||||||
|
syn keyword ngxDirective contained http2_streams_index_size
|
||||||
|
syn keyword ngxDirective contained if_modified_since
|
||||||
|
syn keyword ngxDirective contained ignore_invalid_headers
|
||||||
|
syn keyword ngxDirective contained image_filter
|
||||||
|
syn keyword ngxDirective contained image_filter_buffer
|
||||||
|
syn keyword ngxDirective contained image_filter_interlace
|
||||||
|
syn keyword ngxDirective contained image_filter_jpeg_quality
|
||||||
|
syn keyword ngxDirective contained image_filter_sharpen
|
||||||
|
syn keyword ngxDirective contained image_filter_transparency
|
||||||
|
syn keyword ngxDirective contained image_filter_webp_quality
|
||||||
|
syn keyword ngxDirective contained imap_auth
|
||||||
|
syn keyword ngxDirective contained imap_capabilities
|
||||||
|
syn keyword ngxDirective contained imap_client_buffer
|
||||||
|
syn keyword ngxDirective contained index
|
||||||
|
syn keyword ngxDirective contained iocp_threads
|
||||||
|
syn keyword ngxDirective contained ip_hash
|
||||||
|
syn keyword ngxDirective contained js_access
|
||||||
|
syn keyword ngxDirective contained js_content
|
||||||
|
syn keyword ngxDirective contained js_filter
|
||||||
|
syn keyword ngxDirective contained js_include
|
||||||
|
syn keyword ngxDirective contained js_preread
|
||||||
|
syn keyword ngxDirective contained js_set
|
||||||
|
syn keyword ngxDirective contained keepalive
|
||||||
|
syn keyword ngxDirective contained keepalive_disable
|
||||||
|
syn keyword ngxDirective contained keepalive_requests
|
||||||
|
syn keyword ngxDirective contained keepalive_timeout
|
||||||
|
syn keyword ngxDirective contained kqueue_changes
|
||||||
|
syn keyword ngxDirective contained kqueue_events
|
||||||
|
syn keyword ngxDirective contained large_client_header_buffers
|
||||||
|
syn keyword ngxDirective contained least_conn
|
||||||
|
syn keyword ngxDirective contained least_time
|
||||||
|
syn keyword ngxDirective contained limit_conn
|
||||||
|
syn keyword ngxDirective contained limit_conn_log_level
|
||||||
|
syn keyword ngxDirective contained limit_conn_status
|
||||||
|
syn keyword ngxDirective contained limit_conn_zone
|
||||||
|
syn keyword ngxDirective contained limit_rate
|
||||||
|
syn keyword ngxDirective contained limit_rate_after
|
||||||
|
syn keyword ngxDirective contained limit_req
|
||||||
|
syn keyword ngxDirective contained limit_req_log_level
|
||||||
|
syn keyword ngxDirective contained limit_req_status
|
||||||
|
syn keyword ngxDirective contained limit_req_zone
|
||||||
|
syn keyword ngxDirective contained lingering_close
|
||||||
|
syn keyword ngxDirective contained lingering_time
|
||||||
|
syn keyword ngxDirective contained lingering_timeout
|
||||||
|
syn keyword ngxDirective contained load_module
|
||||||
|
syn keyword ngxDirective contained lock_file
|
||||||
|
syn keyword ngxDirective contained log_format
|
||||||
|
syn keyword ngxDirective contained log_not_found
|
||||||
|
syn keyword ngxDirective contained log_subrequest
|
||||||
|
syn keyword ngxDirective contained map_hash_bucket_size
|
||||||
|
syn keyword ngxDirective contained map_hash_max_size
|
||||||
|
syn keyword ngxDirective contained master_process
|
||||||
|
syn keyword ngxDirective contained max_ranges
|
||||||
|
syn keyword ngxDirective contained memcached_bind
|
||||||
|
syn keyword ngxDirective contained memcached_buffer_size
|
||||||
|
syn keyword ngxDirective contained memcached_connect_timeout
|
||||||
|
syn keyword ngxDirective contained memcached_force_ranges
|
||||||
|
syn keyword ngxDirective contained memcached_gzip_flag
|
||||||
|
syn keyword ngxDirective contained memcached_next_upstream
|
||||||
|
syn keyword ngxDirective contained memcached_next_upstream_timeout
|
||||||
|
syn keyword ngxDirective contained memcached_next_upstream_tries
|
||||||
|
syn keyword ngxDirective contained memcached_read_timeout
|
||||||
|
syn keyword ngxDirective contained memcached_send_timeout
|
||||||
|
syn keyword ngxDirective contained merge_slashes
|
||||||
|
syn keyword ngxDirective contained min_delete_depth
|
||||||
|
syn keyword ngxDirective contained mirror
|
||||||
|
syn keyword ngxDirective contained mirror_request_body
|
||||||
|
syn keyword ngxDirective contained modern_browser
|
||||||
|
syn keyword ngxDirective contained modern_browser_value
|
||||||
|
syn keyword ngxDirective contained mp4
|
||||||
|
syn keyword ngxDirective contained mp4_buffer_size
|
||||||
|
syn keyword ngxDirective contained mp4_max_buffer_size
|
||||||
|
syn keyword ngxDirective contained mp4_limit_rate
|
||||||
|
syn keyword ngxDirective contained mp4_limit_rate_after
|
||||||
|
syn keyword ngxDirective contained msie_padding
|
||||||
|
syn keyword ngxDirective contained msie_refresh
|
||||||
|
syn keyword ngxDirective contained multi_accept
|
||||||
|
syn keyword ngxDirective contained ntlm
|
||||||
|
syn keyword ngxDirective contained open_file_cache
|
||||||
|
syn keyword ngxDirective contained open_file_cache_errors
|
||||||
|
syn keyword ngxDirective contained open_file_cache_events
|
||||||
|
syn keyword ngxDirective contained open_file_cache_min_uses
|
||||||
|
syn keyword ngxDirective contained open_file_cache_valid
|
||||||
|
syn keyword ngxDirective contained open_log_file_cache
|
||||||
|
syn keyword ngxDirective contained output_buffers
|
||||||
|
syn keyword ngxDirective contained override_charset
|
||||||
|
syn keyword ngxDirective contained pcre_jit
|
||||||
|
syn keyword ngxDirective contained perl
|
||||||
|
syn keyword ngxDirective contained perl_modules
|
||||||
|
syn keyword ngxDirective contained perl_require
|
||||||
|
syn keyword ngxDirective contained perl_set
|
||||||
|
syn keyword ngxDirective contained pid
|
||||||
|
syn keyword ngxDirective contained pop3_auth
|
||||||
|
syn keyword ngxDirective contained pop3_capabilities
|
||||||
|
syn keyword ngxDirective contained port_in_redirect
|
||||||
|
syn keyword ngxDirective contained post_acceptex
|
||||||
|
syn keyword ngxDirective contained postpone_gzipping
|
||||||
|
syn keyword ngxDirective contained postpone_output
|
||||||
|
syn keyword ngxDirective contained preread_buffer_size
|
||||||
|
syn keyword ngxDirective contained preread_timeout
|
||||||
|
syn keyword ngxDirective contained protocol
|
||||||
|
syn keyword ngxDirective contained proxy
|
||||||
|
syn keyword ngxDirective contained proxy_bind
|
||||||
|
syn keyword ngxDirective contained proxy_buffer
|
||||||
|
syn keyword ngxDirective contained proxy_buffer_size
|
||||||
|
syn keyword ngxDirective contained proxy_buffering
|
||||||
|
syn keyword ngxDirective contained proxy_buffers
|
||||||
|
syn keyword ngxDirective contained proxy_busy_buffers_size
|
||||||
|
syn keyword ngxDirective contained proxy_cache
|
||||||
|
syn keyword ngxDirective contained proxy_cache_background_update
|
||||||
|
syn keyword ngxDirective contained proxy_cache_bypass
|
||||||
|
syn keyword ngxDirective contained proxy_cache_convert_head
|
||||||
|
syn keyword ngxDirective contained proxy_cache_key
|
||||||
|
syn keyword ngxDirective contained proxy_cache_lock
|
||||||
|
syn keyword ngxDirective contained proxy_cache_lock_age
|
||||||
|
syn keyword ngxDirective contained proxy_cache_lock_timeout
|
||||||
|
syn keyword ngxDirective contained proxy_cache_max_range_offset
|
||||||
|
syn keyword ngxDirective contained proxy_cache_methods
|
||||||
|
syn keyword ngxDirective contained proxy_cache_min_uses
|
||||||
|
syn keyword ngxDirective contained proxy_cache_path
|
||||||
|
syn keyword ngxDirective contained proxy_cache_purge
|
||||||
|
syn keyword ngxDirective contained proxy_cache_revalidate
|
||||||
|
syn keyword ngxDirective contained proxy_cache_use_stale
|
||||||
|
syn keyword ngxDirective contained proxy_cache_valid
|
||||||
|
syn keyword ngxDirective contained proxy_connect_timeout
|
||||||
|
syn keyword ngxDirective contained proxy_cookie_domain
|
||||||
|
syn keyword ngxDirective contained proxy_cookie_path
|
||||||
|
syn keyword ngxDirective contained proxy_download_rate
|
||||||
|
syn keyword ngxDirective contained proxy_force_ranges
|
||||||
|
syn keyword ngxDirective contained proxy_headers_hash_bucket_size
|
||||||
|
syn keyword ngxDirective contained proxy_headers_hash_max_size
|
||||||
|
syn keyword ngxDirective contained proxy_hide_header
|
||||||
|
syn keyword ngxDirective contained proxy_http_version
|
||||||
|
syn keyword ngxDirective contained proxy_ignore_client_abort
|
||||||
|
syn keyword ngxDirective contained proxy_ignore_headers
|
||||||
|
syn keyword ngxDirective contained proxy_intercept_errors
|
||||||
|
syn keyword ngxDirective contained proxy_limit_rate
|
||||||
|
syn keyword ngxDirective contained proxy_max_temp_file_size
|
||||||
|
syn keyword ngxDirective contained proxy_method
|
||||||
|
syn keyword ngxDirective contained proxy_next_upstream
|
||||||
|
syn keyword ngxDirective contained proxy_next_upstream_timeout
|
||||||
|
syn keyword ngxDirective contained proxy_next_upstream_tries
|
||||||
|
syn keyword ngxDirective contained proxy_no_cache
|
||||||
|
syn keyword ngxDirective contained proxy_pass_error_message
|
||||||
|
syn keyword ngxDirective contained proxy_pass_header
|
||||||
|
syn keyword ngxDirective contained proxy_pass_request_body
|
||||||
|
syn keyword ngxDirective contained proxy_pass_request_headers
|
||||||
|
syn keyword ngxDirective contained proxy_protocol
|
||||||
|
syn keyword ngxDirective contained proxy_protocol_timeout
|
||||||
|
syn keyword ngxDirective contained proxy_read_timeout
|
||||||
|
syn keyword ngxDirective contained proxy_redirect
|
||||||
|
syn keyword ngxDirective contained proxy_request_buffering
|
||||||
|
syn keyword ngxDirective contained proxy_responses
|
||||||
|
syn keyword ngxDirective contained proxy_send_lowat
|
||||||
|
syn keyword ngxDirective contained proxy_send_timeout
|
||||||
|
syn keyword ngxDirective contained proxy_set_body
|
||||||
|
syn keyword ngxDirective contained proxy_set_header
|
||||||
|
syn keyword ngxDirective contained proxy_ssl
|
||||||
|
syn keyword ngxDirective contained proxy_ssl_certificate
|
||||||
|
syn keyword ngxDirective contained proxy_ssl_certificate_key
|
||||||
|
syn keyword ngxDirective contained proxy_ssl_ciphers
|
||||||
|
syn keyword ngxDirective contained proxy_ssl_crl
|
||||||
|
syn keyword ngxDirective contained proxy_ssl_name
|
||||||
|
syn keyword ngxDirective contained proxy_ssl_password_file
|
||||||
|
syn keyword ngxDirective contained proxy_ssl_protocols
|
||||||
|
syn keyword ngxDirective contained proxy_ssl_server_name
|
||||||
|
syn keyword ngxDirective contained proxy_ssl_session_reuse
|
||||||
|
syn keyword ngxDirective contained proxy_ssl_trusted_certificate
|
||||||
|
syn keyword ngxDirective contained proxy_ssl_verify
|
||||||
|
syn keyword ngxDirective contained proxy_ssl_verify_depth
|
||||||
|
syn keyword ngxDirective contained proxy_store
|
||||||
|
syn keyword ngxDirective contained proxy_store_access
|
||||||
|
syn keyword ngxDirective contained proxy_temp_file_write_size
|
||||||
|
syn keyword ngxDirective contained proxy_temp_path
|
||||||
|
syn keyword ngxDirective contained proxy_timeout
|
||||||
|
syn keyword ngxDirective contained proxy_upload_rate
|
||||||
|
syn keyword ngxDirective contained queue
|
||||||
|
syn keyword ngxDirective contained random_index
|
||||||
|
syn keyword ngxDirective contained read_ahead
|
||||||
|
syn keyword ngxDirective contained real_ip_header
|
||||||
|
syn keyword ngxDirective contained real_ip_recursive
|
||||||
|
syn keyword ngxDirective contained recursive_error_pages
|
||||||
|
syn keyword ngxDirective contained referer_hash_bucket_size
|
||||||
|
syn keyword ngxDirective contained referer_hash_max_size
|
||||||
|
syn keyword ngxDirective contained request_pool_size
|
||||||
|
syn keyword ngxDirective contained reset_timedout_connection
|
||||||
|
syn keyword ngxDirective contained resolver
|
||||||
|
syn keyword ngxDirective contained resolver_timeout
|
||||||
|
syn keyword ngxDirective contained rewrite_log
|
||||||
|
syn keyword ngxDirective contained satisfy
|
||||||
|
syn keyword ngxDirective contained scgi_bind
|
||||||
|
syn keyword ngxDirective contained scgi_buffer_size
|
||||||
|
syn keyword ngxDirective contained scgi_buffering
|
||||||
|
syn keyword ngxDirective contained scgi_buffers
|
||||||
|
syn keyword ngxDirective contained scgi_busy_buffers_size
|
||||||
|
syn keyword ngxDirective contained scgi_cache
|
||||||
|
syn keyword ngxDirective contained scgi_cache_background_update
|
||||||
|
syn keyword ngxDirective contained scgi_cache_bypass
|
||||||
|
syn keyword ngxDirective contained scgi_cache_key
|
||||||
|
syn keyword ngxDirective contained scgi_cache_lock
|
||||||
|
syn keyword ngxDirective contained scgi_cache_lock_age
|
||||||
|
syn keyword ngxDirective contained scgi_cache_lock_timeout
|
||||||
|
syn keyword ngxDirective contained scgi_cache_max_range_offset
|
||||||
|
syn keyword ngxDirective contained scgi_cache_methods
|
||||||
|
syn keyword ngxDirective contained scgi_cache_min_uses
|
||||||
|
syn keyword ngxDirective contained scgi_cache_path
|
||||||
|
syn keyword ngxDirective contained scgi_cache_purge
|
||||||
|
syn keyword ngxDirective contained scgi_cache_revalidate
|
||||||
|
syn keyword ngxDirective contained scgi_cache_use_stale
|
||||||
|
syn keyword ngxDirective contained scgi_cache_valid
|
||||||
|
syn keyword ngxDirective contained scgi_connect_timeout
|
||||||
|
syn keyword ngxDirective contained scgi_force_ranges
|
||||||
|
syn keyword ngxDirective contained scgi_hide_header
|
||||||
|
syn keyword ngxDirective contained scgi_ignore_client_abort
|
||||||
|
syn keyword ngxDirective contained scgi_ignore_headers
|
||||||
|
syn keyword ngxDirective contained scgi_intercept_errors
|
||||||
|
syn keyword ngxDirective contained scgi_limit_rate
|
||||||
|
syn keyword ngxDirective contained scgi_max_temp_file_size
|
||||||
|
syn keyword ngxDirective contained scgi_next_upstream
|
||||||
|
syn keyword ngxDirective contained scgi_next_upstream_timeout
|
||||||
|
syn keyword ngxDirective contained scgi_next_upstream_tries
|
||||||
|
syn keyword ngxDirective contained scgi_no_cache
|
||||||
|
syn keyword ngxDirective contained scgi_param
|
||||||
|
syn keyword ngxDirective contained scgi_pass_header
|
||||||
|
syn keyword ngxDirective contained scgi_pass_request_body
|
||||||
|
syn keyword ngxDirective contained scgi_pass_request_headers
|
||||||
|
syn keyword ngxDirective contained scgi_read_timeout
|
||||||
|
syn keyword ngxDirective contained scgi_request_buffering
|
||||||
|
syn keyword ngxDirective contained scgi_send_timeout
|
||||||
|
syn keyword ngxDirective contained scgi_store
|
||||||
|
syn keyword ngxDirective contained scgi_store_access
|
||||||
|
syn keyword ngxDirective contained scgi_temp_file_write_size
|
||||||
|
syn keyword ngxDirective contained scgi_temp_path
|
||||||
|
syn keyword ngxDirective contained secure_link
|
||||||
|
syn keyword ngxDirective contained secure_link_md5
|
||||||
|
syn keyword ngxDirective contained secure_link_secret
|
||||||
|
syn keyword ngxDirective contained send_lowat
|
||||||
|
syn keyword ngxDirective contained send_timeout
|
||||||
|
syn keyword ngxDirective contained sendfile
|
||||||
|
syn keyword ngxDirective contained sendfile_max_chunk
|
||||||
|
syn keyword ngxDirective contained server_name_in_redirect
|
||||||
|
syn keyword ngxDirective contained server_names_hash_bucket_size
|
||||||
|
syn keyword ngxDirective contained server_names_hash_max_size
|
||||||
|
syn keyword ngxDirective contained server_tokens
|
||||||
|
syn keyword ngxDirective contained session_log
|
||||||
|
syn keyword ngxDirective contained session_log_format
|
||||||
|
syn keyword ngxDirective contained session_log_zone
|
||||||
|
syn keyword ngxDirective contained set_real_ip_from
|
||||||
|
syn keyword ngxDirective contained slice
|
||||||
|
syn keyword ngxDirective contained smtp_auth
|
||||||
|
syn keyword ngxDirective contained smtp_capabilities
|
||||||
|
syn keyword ngxDirective contained smtp_client_buffer
|
||||||
|
syn keyword ngxDirective contained smtp_greeting_delay
|
||||||
|
syn keyword ngxDirective contained source_charset
|
||||||
|
syn keyword ngxDirective contained ssi
|
||||||
|
syn keyword ngxDirective contained ssi_ignore_recycled_buffers
|
||||||
|
syn keyword ngxDirective contained ssi_last_modified
|
||||||
|
syn keyword ngxDirective contained ssi_min_file_chunk
|
||||||
|
syn keyword ngxDirective contained ssi_silent_errors
|
||||||
|
syn keyword ngxDirective contained ssi_types
|
||||||
|
syn keyword ngxDirective contained ssi_value_length
|
||||||
|
syn keyword ngxDirective contained ssl
|
||||||
|
syn keyword ngxDirective contained ssl_buffer_size
|
||||||
|
syn keyword ngxDirective contained ssl_certificate
|
||||||
|
syn keyword ngxDirective contained ssl_certificate_key
|
||||||
|
syn keyword ngxDirective contained ssl_ciphers
|
||||||
|
syn keyword ngxDirective contained ssl_client_certificate
|
||||||
|
syn keyword ngxDirective contained ssl_crl
|
||||||
|
syn keyword ngxDirective contained ssl_dhparam
|
||||||
|
syn keyword ngxDirective contained ssl_ecdh_curve
|
||||||
|
syn keyword ngxDirective contained ssl_engine
|
||||||
|
syn keyword ngxDirective contained ssl_handshake_timeout
|
||||||
|
syn keyword ngxDirective contained ssl_password_file
|
||||||
|
syn keyword ngxDirective contained ssl_prefer_server_ciphers
|
||||||
|
syn keyword ngxDirective contained ssl_preread
|
||||||
|
syn keyword ngxDirective contained ssl_protocols
|
||||||
|
syn keyword ngxDirective contained ssl_session_cache
|
||||||
|
syn keyword ngxDirective contained ssl_session_ticket_key
|
||||||
|
syn keyword ngxDirective contained ssl_session_tickets
|
||||||
|
syn keyword ngxDirective contained ssl_session_timeout
|
||||||
|
syn keyword ngxDirective contained ssl_stapling
|
||||||
|
syn keyword ngxDirective contained ssl_stapling_file
|
||||||
|
syn keyword ngxDirective contained ssl_stapling_responder
|
||||||
|
syn keyword ngxDirective contained ssl_stapling_verify
|
||||||
|
syn keyword ngxDirective contained ssl_trusted_certificate
|
||||||
|
syn keyword ngxDirective contained ssl_verify_client
|
||||||
|
syn keyword ngxDirective contained ssl_verify_depth
|
||||||
|
syn keyword ngxDirective contained starttls
|
||||||
|
syn keyword ngxDirective contained state
|
||||||
|
syn keyword ngxDirective contained status
|
||||||
|
syn keyword ngxDirective contained status_format
|
||||||
|
syn keyword ngxDirective contained status_zone
|
||||||
|
syn keyword ngxDirective contained sticky
|
||||||
|
syn keyword ngxDirective contained sticky_cookie_insert
|
||||||
|
syn keyword ngxDirective contained stub_status
|
||||||
|
syn keyword ngxDirective contained sub_filter
|
||||||
|
syn keyword ngxDirective contained sub_filter_last_modified
|
||||||
|
syn keyword ngxDirective contained sub_filter_once
|
||||||
|
syn keyword ngxDirective contained sub_filter_types
|
||||||
|
syn keyword ngxDirective contained tcp_nodelay
|
||||||
|
syn keyword ngxDirective contained tcp_nopush
|
||||||
|
syn keyword ngxDirective contained thread_pool
|
||||||
|
syn keyword ngxDirective contained timeout
|
||||||
|
syn keyword ngxDirective contained timer_resolution
|
||||||
|
syn keyword ngxDirective contained types_hash_bucket_size
|
||||||
|
syn keyword ngxDirective contained types_hash_max_size
|
||||||
|
syn keyword ngxDirective contained underscores_in_headers
|
||||||
|
syn keyword ngxDirective contained uninitialized_variable_warn
|
||||||
|
syn keyword ngxDirective contained use
|
||||||
|
syn keyword ngxDirective contained user
|
||||||
|
syn keyword ngxDirective contained userid
|
||||||
|
syn keyword ngxDirective contained userid_domain
|
||||||
|
syn keyword ngxDirective contained userid_expires
|
||||||
|
syn keyword ngxDirective contained userid_mark
|
||||||
|
syn keyword ngxDirective contained userid_name
|
||||||
|
syn keyword ngxDirective contained userid_p3p
|
||||||
|
syn keyword ngxDirective contained userid_path
|
||||||
|
syn keyword ngxDirective contained userid_service
|
||||||
|
syn keyword ngxDirective contained uwsgi_bind
|
||||||
|
syn keyword ngxDirective contained uwsgi_buffer_size
|
||||||
|
syn keyword ngxDirective contained uwsgi_buffering
|
||||||
|
syn keyword ngxDirective contained uwsgi_buffers
|
||||||
|
syn keyword ngxDirective contained uwsgi_busy_buffers_size
|
||||||
|
syn keyword ngxDirective contained uwsgi_cache
|
||||||
|
syn keyword ngxDirective contained uwsgi_cache_background_update
|
||||||
|
syn keyword ngxDirective contained uwsgi_cache_bypass
|
||||||
|
syn keyword ngxDirective contained uwsgi_cache_key
|
||||||
|
syn keyword ngxDirective contained uwsgi_cache_lock
|
||||||
|
syn keyword ngxDirective contained uwsgi_cache_lock_age
|
||||||
|
syn keyword ngxDirective contained uwsgi_cache_lock_timeout
|
||||||
|
syn keyword ngxDirective contained uwsgi_cache_max_range_offset
|
||||||
|
syn keyword ngxDirective contained uwsgi_cache_methods
|
||||||
|
syn keyword ngxDirective contained uwsgi_cache_min_uses
|
||||||
|
syn keyword ngxDirective contained uwsgi_cache_path
|
||||||
|
syn keyword ngxDirective contained uwsgi_cache_purge
|
||||||
|
syn keyword ngxDirective contained uwsgi_cache_revalidate
|
||||||
|
syn keyword ngxDirective contained uwsgi_cache_use_stale
|
||||||
|
syn keyword ngxDirective contained uwsgi_cache_valid
|
||||||
|
syn keyword ngxDirective contained uwsgi_connect_timeout
|
||||||
|
syn keyword ngxDirective contained uwsgi_force_ranges
|
||||||
|
syn keyword ngxDirective contained uwsgi_hide_header
|
||||||
|
syn keyword ngxDirective contained uwsgi_ignore_client_abort
|
||||||
|
syn keyword ngxDirective contained uwsgi_ignore_headers
|
||||||
|
syn keyword ngxDirective contained uwsgi_intercept_errors
|
||||||
|
syn keyword ngxDirective contained uwsgi_limit_rate
|
||||||
|
syn keyword ngxDirective contained uwsgi_max_temp_file_size
|
||||||
|
syn keyword ngxDirective contained uwsgi_modifier1
|
||||||
|
syn keyword ngxDirective contained uwsgi_modifier2
|
||||||
|
syn keyword ngxDirective contained uwsgi_next_upstream
|
||||||
|
syn keyword ngxDirective contained uwsgi_next_upstream_timeout
|
||||||
|
syn keyword ngxDirective contained uwsgi_next_upstream_tries
|
||||||
|
syn keyword ngxDirective contained uwsgi_no_cache
|
||||||
|
syn keyword ngxDirective contained uwsgi_param
|
||||||
|
syn keyword ngxDirective contained uwsgi_pass_header
|
||||||
|
syn keyword ngxDirective contained uwsgi_pass_request_body
|
||||||
|
syn keyword ngxDirective contained uwsgi_pass_request_headers
|
||||||
|
syn keyword ngxDirective contained uwsgi_read_timeout
|
||||||
|
syn keyword ngxDirective contained uwsgi_request_buffering
|
||||||
|
syn keyword ngxDirective contained uwsgi_send_timeout
|
||||||
|
syn keyword ngxDirective contained uwsgi_ssl_certificate
|
||||||
|
syn keyword ngxDirective contained uwsgi_ssl_certificate_key
|
||||||
|
syn keyword ngxDirective contained uwsgi_ssl_ciphers
|
||||||
|
syn keyword ngxDirective contained uwsgi_ssl_crl
|
||||||
|
syn keyword ngxDirective contained uwsgi_ssl_name
|
||||||
|
syn keyword ngxDirective contained uwsgi_ssl_password_file
|
||||||
|
syn keyword ngxDirective contained uwsgi_ssl_protocols
|
||||||
|
syn keyword ngxDirective contained uwsgi_ssl_server_name
|
||||||
|
syn keyword ngxDirective contained uwsgi_ssl_session_reuse
|
||||||
|
syn keyword ngxDirective contained uwsgi_ssl_trusted_certificate
|
||||||
|
syn keyword ngxDirective contained uwsgi_ssl_verify
|
||||||
|
syn keyword ngxDirective contained uwsgi_ssl_verify_depth
|
||||||
|
syn keyword ngxDirective contained uwsgi_store
|
||||||
|
syn keyword ngxDirective contained uwsgi_store_access
|
||||||
|
syn keyword ngxDirective contained uwsgi_string
|
||||||
|
syn keyword ngxDirective contained uwsgi_temp_file_write_size
|
||||||
|
syn keyword ngxDirective contained uwsgi_temp_path
|
||||||
|
syn keyword ngxDirective contained valid_referers
|
||||||
|
syn keyword ngxDirective contained variables_hash_bucket_size
|
||||||
|
syn keyword ngxDirective contained variables_hash_max_size
|
||||||
|
syn keyword ngxDirective contained worker_aio_requests
|
||||||
|
syn keyword ngxDirective contained worker_connections
|
||||||
|
syn keyword ngxDirective contained worker_cpu_affinity
|
||||||
|
syn keyword ngxDirective contained worker_priority
|
||||||
|
syn keyword ngxDirective contained worker_processes
|
||||||
|
syn keyword ngxDirective contained worker_rlimit_core
|
||||||
|
syn keyword ngxDirective contained worker_rlimit_nofile
|
||||||
|
syn keyword ngxDirective contained worker_shutdown_timeout
|
||||||
|
syn keyword ngxDirective contained working_directory
|
||||||
|
syn keyword ngxDirective contained xclient
|
||||||
|
syn keyword ngxDirective contained xml_entities
|
||||||
|
syn keyword ngxDirective contained xslt_last_modified
|
||||||
|
syn keyword ngxDirective contained xslt_param
|
||||||
|
syn keyword ngxDirective contained xslt_string_param
|
||||||
|
syn keyword ngxDirective contained xslt_stylesheet
|
||||||
|
syn keyword ngxDirective contained xslt_types
|
||||||
|
syn keyword ngxDirective contained zone
|
||||||
|
|
||||||
|
" 3rd party modules list taken from
|
||||||
|
" https://github.com/freebsd/freebsd-ports/blob/master/www/nginx-devel/Makefile
|
||||||
|
" -----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
" Accept Language
|
||||||
|
" https://github.com/giom/nginx_accept_language_module
|
||||||
|
syn keyword ngxDirectiveThirdParty contained set_from_accept_language
|
||||||
|
|
||||||
|
" Digest Authentication
|
||||||
|
" https://github.com/atomx/nginx-http-auth-digest
|
||||||
|
syn keyword ngxDirectiveThirdParty contained auth_digest
|
||||||
|
syn keyword ngxDirectiveThirdParty contained auth_digest_drop_time
|
||||||
|
syn keyword ngxDirectiveThirdParty contained auth_digest_evasion_time
|
||||||
|
syn keyword ngxDirectiveThirdParty contained auth_digest_expires
|
||||||
|
syn keyword ngxDirectiveThirdParty contained auth_digest_maxtries
|
||||||
|
syn keyword ngxDirectiveThirdParty contained auth_digest_replays
|
||||||
|
syn keyword ngxDirectiveThirdParty contained auth_digest_shm_size
|
||||||
|
syn keyword ngxDirectiveThirdParty contained auth_digest_timeout
|
||||||
|
syn keyword ngxDirectiveThirdParty contained auth_digest_user_file
|
||||||
|
|
||||||
|
" SPNEGO Authentication
|
||||||
|
" https://github.com/stnoonan/spnego-http-auth-nginx-module
|
||||||
|
syn keyword ngxDirectiveThirdParty contained auth_gss
|
||||||
|
syn keyword ngxDirectiveThirdParty contained auth_gss_allow_basic_fallback
|
||||||
|
syn keyword ngxDirectiveThirdParty contained auth_gss_authorized_principal
|
||||||
|
syn keyword ngxDirectiveThirdParty contained auth_gss_force_realm
|
||||||
|
syn keyword ngxDirectiveThirdParty contained auth_gss_format_full
|
||||||
|
syn keyword ngxDirectiveThirdParty contained auth_gss_keytab
|
||||||
|
syn keyword ngxDirectiveThirdParty contained auth_gss_realm
|
||||||
|
syn keyword ngxDirectiveThirdParty contained auth_gss_service_name
|
||||||
|
|
||||||
|
" LDAP Authentication
|
||||||
|
" https://github.com/kvspb/nginx-auth-ldap
|
||||||
|
syn keyword ngxDirectiveThirdParty contained auth_ldap
|
||||||
|
syn keyword ngxDirectiveThirdParty contained auth_ldap_cache_enabled
|
||||||
|
syn keyword ngxDirectiveThirdParty contained auth_ldap_cache_expiration_time
|
||||||
|
syn keyword ngxDirectiveThirdParty contained auth_ldap_cache_size
|
||||||
|
syn keyword ngxDirectiveThirdParty contained auth_ldap_servers
|
||||||
|
syn keyword ngxDirectiveThirdParty contained auth_ldap_servers_size
|
||||||
|
syn keyword ngxDirectiveThirdParty contained ldap_server
|
||||||
|
|
||||||
|
" PAM Authentication
|
||||||
|
" https://github.com/sto/ngx_http_auth_pam_module
|
||||||
|
syn keyword ngxDirectiveThirdParty contained auth_pam
|
||||||
|
syn keyword ngxDirectiveThirdParty contained auth_pam_service_name
|
||||||
|
syn keyword ngxDirectiveThirdParty contained auth_pam_set_pam_env
|
||||||
|
|
||||||
|
" AJP protocol proxy
|
||||||
|
" https://github.com/yaoweibin/nginx_ajp_module
|
||||||
|
syn keyword ngxDirectiveThirdParty contained ajp_buffer_size
|
||||||
|
syn keyword ngxDirectiveThirdParty contained ajp_buffers
|
||||||
|
syn keyword ngxDirectiveThirdParty contained ajp_busy_buffers_size
|
||||||
|
syn keyword ngxDirectiveThirdParty contained ajp_cache
|
||||||
|
syn keyword ngxDirectiveThirdParty contained ajp_cache_key
|
||||||
|
syn keyword ngxDirectiveThirdParty contained ajp_cache_lock
|
||||||
|
syn keyword ngxDirectiveThirdParty contained ajp_cache_lock_timeout
|
||||||
|
syn keyword ngxDirectiveThirdParty contained ajp_cache_methods
|
||||||
|
syn keyword ngxDirectiveThirdParty contained ajp_cache_min_uses
|
||||||
|
syn keyword ngxDirectiveThirdParty contained ajp_cache_path
|
||||||
|
syn keyword ngxDirectiveThirdParty contained ajp_cache_use_stale
|
||||||
|
syn keyword ngxDirectiveThirdParty contained ajp_cache_valid
|
||||||
|
syn keyword ngxDirectiveThirdParty contained ajp_connect_timeout
|
||||||
|
syn keyword ngxDirectiveThirdParty contained ajp_header_packet_buffer_size
|
||||||
|
syn keyword ngxDirectiveThirdParty contained ajp_hide_header
|
||||||
|
syn keyword ngxDirectiveThirdParty contained ajp_ignore_client_abort
|
||||||
|
syn keyword ngxDirectiveThirdParty contained ajp_ignore_headers
|
||||||
|
syn keyword ngxDirectiveThirdParty contained ajp_intercept_errors
|
||||||
|
syn keyword ngxDirectiveThirdParty contained ajp_keep_conn
|
||||||
|
syn keyword ngxDirectiveThirdParty contained ajp_max_data_packet_size
|
||||||
|
syn keyword ngxDirectiveThirdParty contained ajp_max_temp_file_size
|
||||||
|
syn keyword ngxDirectiveThirdParty contained ajp_next_upstream
|
||||||
|
syn keyword ngxDirectiveThirdParty contained ajp_pass
|
||||||
|
syn keyword ngxDirectiveThirdParty contained ajp_pass_header
|
||||||
|
syn keyword ngxDirectiveThirdParty contained ajp_pass_request_body
|
||||||
|
syn keyword ngxDirectiveThirdParty contained ajp_pass_request_headers
|
||||||
|
syn keyword ngxDirectiveThirdParty contained ajp_read_timeout
|
||||||
|
syn keyword ngxDirectiveThirdParty contained ajp_send_lowat
|
||||||
|
syn keyword ngxDirectiveThirdParty contained ajp_send_timeout
|
||||||
|
syn keyword ngxDirectiveThirdParty contained ajp_store
|
||||||
|
syn keyword ngxDirectiveThirdParty contained ajp_store_access
|
||||||
|
syn keyword ngxDirectiveThirdParty contained ajp_temp_file_write_size
|
||||||
|
syn keyword ngxDirectiveThirdParty contained ajp_temp_path
|
||||||
|
syn keyword ngxDirectiveThirdParty contained ajp_upstream_fail_timeout
|
||||||
|
syn keyword ngxDirectiveThirdParty contained ajp_upstream_max_fails
|
||||||
|
|
||||||
|
" AWS proxy
|
||||||
|
" https://github.com/anomalizer/ngx_aws_auth
|
||||||
|
syn keyword ngxDirectiveThirdParty contained aws_access_key
|
||||||
|
syn keyword ngxDirectiveThirdParty contained aws_endpoint
|
||||||
|
syn keyword ngxDirectiveThirdParty contained aws_key_scope
|
||||||
|
syn keyword ngxDirectiveThirdParty contained aws_s3_bucket
|
||||||
|
syn keyword ngxDirectiveThirdParty contained aws_sign
|
||||||
|
syn keyword ngxDirectiveThirdParty contained aws_signing_key
|
||||||
|
|
||||||
|
" embedding Clojure or Java or Groovy programs
|
||||||
|
" https://github.com/nginx-clojure/nginx-clojure
|
||||||
|
syn keyword ngxDirectiveThirdParty contained access_handler_code
|
||||||
|
syn keyword ngxDirectiveThirdParty contained access_handler_name
|
||||||
|
syn keyword ngxDirectiveThirdParty contained access_handler_property
|
||||||
|
syn keyword ngxDirectiveThirdParty contained access_handler_type
|
||||||
|
syn keyword ngxDirectiveThirdParty contained always_read_body
|
||||||
|
syn keyword ngxDirectiveThirdParty contained auto_upgrade_ws
|
||||||
|
syn keyword ngxDirectiveThirdParty contained body_filter_code
|
||||||
|
syn keyword ngxDirectiveThirdParty contained body_filter_name
|
||||||
|
syn keyword ngxDirectiveThirdParty contained body_filter_property
|
||||||
|
syn keyword ngxDirectiveThirdParty contained body_filter_type
|
||||||
|
syn keyword ngxDirectiveThirdParty contained content_handler_code
|
||||||
|
syn keyword ngxDirectiveThirdParty contained content_handler_name
|
||||||
|
syn keyword ngxDirectiveThirdParty contained content_handler_property
|
||||||
|
syn keyword ngxDirectiveThirdParty contained content_handler_type
|
||||||
|
syn keyword ngxDirectiveThirdParty contained handler_code
|
||||||
|
syn keyword ngxDirectiveThirdParty contained handler_name
|
||||||
|
syn keyword ngxDirectiveThirdParty contained handler_type
|
||||||
|
syn keyword ngxDirectiveThirdParty contained handlers_lazy_init
|
||||||
|
syn keyword ngxDirectiveThirdParty contained header_filter_code
|
||||||
|
syn keyword ngxDirectiveThirdParty contained header_filter_name
|
||||||
|
syn keyword ngxDirectiveThirdParty contained header_filter_property
|
||||||
|
syn keyword ngxDirectiveThirdParty contained header_filter_type
|
||||||
|
syn keyword ngxDirectiveThirdParty contained jvm_classpath
|
||||||
|
syn keyword ngxDirectiveThirdParty contained jvm_classpath_check
|
||||||
|
syn keyword ngxDirectiveThirdParty contained jvm_exit_handler_code
|
||||||
|
syn keyword ngxDirectiveThirdParty contained jvm_exit_handler_name
|
||||||
|
syn keyword ngxDirectiveThirdParty contained jvm_handler_type
|
||||||
|
syn keyword ngxDirectiveThirdParty contained jvm_init_handler_code
|
||||||
|
syn keyword ngxDirectiveThirdParty contained jvm_init_handler_name
|
||||||
|
syn keyword ngxDirectiveThirdParty contained jvm_options
|
||||||
|
syn keyword ngxDirectiveThirdParty contained jvm_path
|
||||||
|
syn keyword ngxDirectiveThirdParty contained jvm_var
|
||||||
|
syn keyword ngxDirectiveThirdParty contained jvm_workers
|
||||||
|
syn keyword ngxDirectiveThirdParty contained max_balanced_tcp_connections
|
||||||
|
syn keyword ngxDirectiveThirdParty contained rewrite_handler_code
|
||||||
|
syn keyword ngxDirectiveThirdParty contained rewrite_handler_name
|
||||||
|
syn keyword ngxDirectiveThirdParty contained rewrite_handler_property
|
||||||
|
syn keyword ngxDirectiveThirdParty contained rewrite_handler_type
|
||||||
|
syn keyword ngxDirectiveThirdParty contained shared_map
|
||||||
|
syn keyword ngxDirectiveThirdParty contained write_page_size
|
||||||
|
|
||||||
|
" Certificate Transparency
|
||||||
|
" https://github.com/grahamedgecombe/nginx-ct
|
||||||
|
syn keyword ngxDirectiveThirdParty contained ssl_ct
|
||||||
|
syn keyword ngxDirectiveThirdParty contained ssl_ct_static_scts
|
||||||
|
|
||||||
|
" ngx_echo
|
||||||
|
" https://github.com/openresty/echo-nginx-module
|
||||||
|
syn keyword ngxDirectiveThirdParty contained echo_abort_parent
|
||||||
|
syn keyword ngxDirectiveThirdParty contained echo_after_body
|
||||||
|
syn keyword ngxDirectiveThirdParty contained echo_before_body
|
||||||
|
syn keyword ngxDirectiveThirdParty contained echo_blocking_sleep
|
||||||
|
syn keyword ngxDirectiveThirdParty contained echo_end
|
||||||
|
syn keyword ngxDirectiveThirdParty contained echo_exec
|
||||||
|
syn keyword ngxDirectiveThirdParty contained echo_flush
|
||||||
|
syn keyword ngxDirectiveThirdParty contained echo_foreach_split
|
||||||
|
syn keyword ngxDirectiveThirdParty contained echo_location
|
||||||
|
syn keyword ngxDirectiveThirdParty contained echo_location_async
|
||||||
|
syn keyword ngxDirectiveThirdParty contained echo_read_request_body
|
||||||
|
syn keyword ngxDirectiveThirdParty contained echo_request_body
|
||||||
|
syn keyword ngxDirectiveThirdParty contained echo_reset_timer
|
||||||
|
syn keyword ngxDirectiveThirdParty contained echo_status
|
||||||
|
syn keyword ngxDirectiveThirdParty contained echo_subrequest
|
||||||
|
syn keyword ngxDirectiveThirdParty contained echo_subrequest_async
|
||||||
|
|
||||||
|
" FastDFS
|
||||||
|
" https://github.com/happyfish100/fastdfs-nginx-module
|
||||||
|
syn keyword ngxDirectiveThirdParty contained ngx_fastdfs_module
|
||||||
|
|
||||||
|
" ngx_headers_more
|
||||||
|
" https://github.com/openresty/headers-more-nginx-module
|
||||||
|
syn keyword ngxDirectiveThirdParty contained more_clear_headers
|
||||||
|
syn keyword ngxDirectiveThirdParty contained more_clear_input_headers
|
||||||
|
syn keyword ngxDirectiveThirdParty contained more_set_headers
|
||||||
|
syn keyword ngxDirectiveThirdParty contained more_set_input_headers
|
||||||
|
|
||||||
|
" NGINX WebDAV missing commands support (PROPFIND & OPTIONS)
|
||||||
|
" https://github.com/arut/nginx-dav-ext-module
|
||||||
|
syn keyword ngxDirectiveThirdParty contained dav_ext_methods
|
||||||
|
|
||||||
|
" ngx_eval
|
||||||
|
" https://github.com/openresty/nginx-eval-module
|
||||||
|
syn keyword ngxDirectiveThirdParty contained eval
|
||||||
|
syn keyword ngxDirectiveThirdParty contained eval_buffer_size
|
||||||
|
syn keyword ngxDirectiveThirdParty contained eval_escalate
|
||||||
|
syn keyword ngxDirectiveThirdParty contained eval_override_content_type
|
||||||
|
syn keyword ngxDirectiveThirdParty contained eval_subrequest_in_memory
|
||||||
|
|
||||||
|
" Fancy Index
|
||||||
|
" https://github.com/aperezdc/ngx-fancyindex
|
||||||
|
syn keyword ngxDirectiveThirdParty contained fancyindex
|
||||||
|
syn keyword ngxDirectiveThirdParty contained fancyindex_css_href
|
||||||
|
syn keyword ngxDirectiveThirdParty contained fancyindex_default_sort
|
||||||
|
syn keyword ngxDirectiveThirdParty contained fancyindex_directories_first
|
||||||
|
syn keyword ngxDirectiveThirdParty contained fancyindex_exact_size
|
||||||
|
syn keyword ngxDirectiveThirdParty contained fancyindex_footer
|
||||||
|
syn keyword ngxDirectiveThirdParty contained fancyindex_header
|
||||||
|
syn keyword ngxDirectiveThirdParty contained fancyindex_hide_symlinks
|
||||||
|
syn keyword ngxDirectiveThirdParty contained fancyindex_ignore
|
||||||
|
syn keyword ngxDirectiveThirdParty contained fancyindex_localtime
|
||||||
|
syn keyword ngxDirectiveThirdParty contained fancyindex_name_length
|
||||||
|
syn keyword ngxDirectiveThirdParty contained fancyindex_show_path
|
||||||
|
syn keyword ngxDirectiveThirdParty contained fancyindex_time_format
|
||||||
|
|
||||||
|
" Footer filter
|
||||||
|
" https://github.com/alibaba/nginx-http-footer-filter
|
||||||
|
syn keyword ngxDirectiveThirdParty contained footer
|
||||||
|
syn keyword ngxDirectiveThirdParty contained footer_types
|
||||||
|
|
||||||
|
" ngx_http_geoip2_module
|
||||||
|
" https://github.com/leev/ngx_http_geoip2_module
|
||||||
|
syn keyword ngxDirectiveThirdParty contained geoip2
|
||||||
|
syn keyword ngxDirectiveThirdParty contained geoip2_proxy
|
||||||
|
syn keyword ngxDirectiveThirdParty contained geoip2_proxy_recursive
|
||||||
|
|
||||||
|
" A version of the Nginx HTTP stub status module that outputs in JSON format
|
||||||
|
" https://github.com/nginx-modules/nginx-json-status-module
|
||||||
|
syn keyword ngxDirectiveThirdParty contained json_status
|
||||||
|
syn keyword ngxDirectiveThirdParty contained json_status_type
|
||||||
|
|
||||||
|
" MogileFS client for nginx
|
||||||
|
" https://github.com/vkholodkov/nginx-mogilefs-module
|
||||||
|
syn keyword ngxDirectiveThirdParty contained mogilefs_class
|
||||||
|
syn keyword ngxDirectiveThirdParty contained mogilefs_connect_timeout
|
||||||
|
syn keyword ngxDirectiveThirdParty contained mogilefs_domain
|
||||||
|
syn keyword ngxDirectiveThirdParty contained mogilefs_methods
|
||||||
|
syn keyword ngxDirectiveThirdParty contained mogilefs_noverify
|
||||||
|
syn keyword ngxDirectiveThirdParty contained mogilefs_pass
|
||||||
|
syn keyword ngxDirectiveThirdParty contained mogilefs_read_timeout
|
||||||
|
syn keyword ngxDirectiveThirdParty contained mogilefs_send_timeout
|
||||||
|
syn keyword ngxDirectiveThirdParty contained mogilefs_tracker
|
||||||
|
|
||||||
|
" Ancient nginx plugin; probably not useful to anyone
|
||||||
|
" https://github.com/kr/nginx-notice
|
||||||
|
syn keyword ngxDirectiveThirdParty contained notice
|
||||||
|
syn keyword ngxDirectiveThirdParty contained notice_type
|
||||||
|
|
||||||
|
" nchan
|
||||||
|
" https://github.com/slact/nchan
|
||||||
|
syn keyword ngxDirectiveThirdParty contained nchan_access_control_allow_origin
|
||||||
|
syn keyword ngxDirectiveThirdParty contained nchan_authorize_request
|
||||||
|
syn keyword ngxDirectiveThirdParty contained nchan_channel_event_string
|
||||||
|
syn keyword ngxDirectiveThirdParty contained nchan_channel_events_channel_id
|
||||||
|
syn keyword ngxDirectiveThirdParty contained nchan_channel_group
|
||||||
|
syn keyword ngxDirectiveThirdParty contained nchan_channel_group_accounting
|
||||||
|
syn keyword ngxDirectiveThirdParty contained nchan_channel_id
|
||||||
|
syn keyword ngxDirectiveThirdParty contained nchan_channel_id_split_delimiter
|
||||||
|
syn keyword ngxDirectiveThirdParty contained nchan_channel_timeout
|
||||||
|
syn keyword ngxDirectiveThirdParty contained nchan_deflate_message_for_websocket
|
||||||
|
syn keyword ngxDirectiveThirdParty contained nchan_eventsource_event
|
||||||
|
syn keyword ngxDirectiveThirdParty contained nchan_group_location
|
||||||
|
syn keyword ngxDirectiveThirdParty contained nchan_group_max_channels
|
||||||
|
syn keyword ngxDirectiveThirdParty contained nchan_group_max_messages
|
||||||
|
syn keyword ngxDirectiveThirdParty contained nchan_group_max_messages_disk
|
||||||
|
syn keyword ngxDirectiveThirdParty contained nchan_group_max_messages_memory
|
||||||
|
syn keyword ngxDirectiveThirdParty contained nchan_group_max_subscribers
|
||||||
|
syn keyword ngxDirectiveThirdParty contained nchan_longpoll_multipart_response
|
||||||
|
syn keyword ngxDirectiveThirdParty contained nchan_max_channel_id_length
|
||||||
|
syn keyword ngxDirectiveThirdParty contained nchan_max_channel_subscribers
|
||||||
|
syn keyword ngxDirectiveThirdParty contained nchan_max_reserved_memory
|
||||||
|
syn keyword ngxDirectiveThirdParty contained nchan_message_buffer_length
|
||||||
|
syn keyword ngxDirectiveThirdParty contained nchan_message_max_buffer_length
|
||||||
|
syn keyword ngxDirectiveThirdParty contained nchan_message_temp_path
|
||||||
|
syn keyword ngxDirectiveThirdParty contained nchan_message_timeout
|
||||||
|
syn keyword ngxDirectiveThirdParty contained nchan_permessage_deflate_compression_level
|
||||||
|
syn keyword ngxDirectiveThirdParty contained nchan_permessage_deflate_compression_memlevel
|
||||||
|
syn keyword ngxDirectiveThirdParty contained nchan_permessage_deflate_compression_strategy
|
||||||
|
syn keyword ngxDirectiveThirdParty contained nchan_permessage_deflate_compression_window
|
||||||
|
syn keyword ngxDirectiveThirdParty contained nchan_pub_channel_id
|
||||||
|
syn keyword ngxDirectiveThirdParty contained nchan_publisher
|
||||||
|
syn keyword ngxDirectiveThirdParty contained nchan_publisher_channel_id
|
||||||
|
syn keyword ngxDirectiveThirdParty contained nchan_publisher_location
|
||||||
|
syn keyword ngxDirectiveThirdParty contained nchan_publisher_upstream_request
|
||||||
|
syn keyword ngxDirectiveThirdParty contained nchan_pubsub
|
||||||
|
syn keyword ngxDirectiveThirdParty contained nchan_pubsub_channel_id
|
||||||
|
syn keyword ngxDirectiveThirdParty contained nchan_pubsub_location
|
||||||
|
syn keyword ngxDirectiveThirdParty contained nchan_redis_fakesub_timer_interval
|
||||||
|
syn keyword ngxDirectiveThirdParty contained nchan_redis_idle_channel_cache_timeout
|
||||||
|
syn keyword ngxDirectiveThirdParty contained nchan_redis_namespace
|
||||||
|
syn keyword ngxDirectiveThirdParty contained nchan_redis_pass
|
||||||
|
syn keyword ngxDirectiveThirdParty contained nchan_redis_pass_inheritable
|
||||||
|
syn keyword ngxDirectiveThirdParty contained nchan_redis_ping_interval
|
||||||
|
syn keyword ngxDirectiveThirdParty contained nchan_redis_publish_msgpacked_max_size
|
||||||
|
syn keyword ngxDirectiveThirdParty contained nchan_redis_server
|
||||||
|
syn keyword ngxDirectiveThirdParty contained nchan_redis_storage_mode
|
||||||
|
syn keyword ngxDirectiveThirdParty contained nchan_redis_url
|
||||||
|
syn keyword ngxDirectiveThirdParty contained nchan_redis_wait_after_connecting
|
||||||
|
syn keyword ngxDirectiveThirdParty contained nchan_shared_memory_size
|
||||||
|
syn keyword ngxDirectiveThirdParty contained nchan_storage_engine
|
||||||
|
syn keyword ngxDirectiveThirdParty contained nchan_store_messages
|
||||||
|
syn keyword ngxDirectiveThirdParty contained nchan_stub_status
|
||||||
|
syn keyword ngxDirectiveThirdParty contained nchan_sub_channel_id
|
||||||
|
syn keyword ngxDirectiveThirdParty contained nchan_subscribe_existing_channels_only
|
||||||
|
syn keyword ngxDirectiveThirdParty contained nchan_subscribe_request
|
||||||
|
syn keyword ngxDirectiveThirdParty contained nchan_subscriber
|
||||||
|
syn keyword ngxDirectiveThirdParty contained nchan_subscriber_channel_id
|
||||||
|
syn keyword ngxDirectiveThirdParty contained nchan_subscriber_compound_etag_message_id
|
||||||
|
syn keyword ngxDirectiveThirdParty contained nchan_subscriber_first_message
|
||||||
|
syn keyword ngxDirectiveThirdParty contained nchan_subscriber_http_raw_stream_separator
|
||||||
|
syn keyword ngxDirectiveThirdParty contained nchan_subscriber_last_message_id
|
||||||
|
syn keyword ngxDirectiveThirdParty contained nchan_subscriber_location
|
||||||
|
syn keyword ngxDirectiveThirdParty contained nchan_subscriber_message_id_custom_etag_header
|
||||||
|
syn keyword ngxDirectiveThirdParty contained nchan_subscriber_timeout
|
||||||
|
syn keyword ngxDirectiveThirdParty contained nchan_unsubscribe_request
|
||||||
|
syn keyword ngxDirectiveThirdParty contained nchan_use_redis
|
||||||
|
syn keyword ngxDirectiveThirdParty contained nchan_websocket_client_heartbeat
|
||||||
|
syn keyword ngxDirectiveThirdParty contained nchan_websocket_ping_interval
|
||||||
|
syn keyword ngxDirectiveThirdParty contained push_authorized_channels_only
|
||||||
|
syn keyword ngxDirectiveThirdParty contained push_channel_group
|
||||||
|
syn keyword ngxDirectiveThirdParty contained push_channel_timeout
|
||||||
|
syn keyword ngxDirectiveThirdParty contained push_max_channel_id_length
|
||||||
|
syn keyword ngxDirectiveThirdParty contained push_max_channel_subscribers
|
||||||
|
syn keyword ngxDirectiveThirdParty contained push_max_message_buffer_length
|
||||||
|
syn keyword ngxDirectiveThirdParty contained push_max_reserved_memory
|
||||||
|
syn keyword ngxDirectiveThirdParty contained push_message_buffer_length
|
||||||
|
syn keyword ngxDirectiveThirdParty contained push_message_timeout
|
||||||
|
syn keyword ngxDirectiveThirdParty contained push_min_message_buffer_length
|
||||||
|
syn keyword ngxDirectiveThirdParty contained push_publisher
|
||||||
|
syn keyword ngxDirectiveThirdParty contained push_store_messages
|
||||||
|
syn keyword ngxDirectiveThirdParty contained push_subscriber
|
||||||
|
syn keyword ngxDirectiveThirdParty contained push_subscriber_concurrency
|
||||||
|
syn keyword ngxDirectiveThirdParty contained push_subscriber_timeout
|
||||||
|
|
||||||
|
" Push Stream
|
||||||
|
" https://github.com/wandenberg/nginx-push-stream-module
|
||||||
|
syn keyword ngxDirectiveThirdParty contained push_stream_allow_connections_to_events_channel
|
||||||
|
syn keyword ngxDirectiveThirdParty contained push_stream_allowed_origins
|
||||||
|
syn keyword ngxDirectiveThirdParty contained push_stream_authorized_channels_only
|
||||||
|
syn keyword ngxDirectiveThirdParty contained push_stream_channel_deleted_message_text
|
||||||
|
syn keyword ngxDirectiveThirdParty contained push_stream_channel_inactivity_time
|
||||||
|
syn keyword ngxDirectiveThirdParty contained push_stream_channel_info_on_publish
|
||||||
|
syn keyword ngxDirectiveThirdParty contained push_stream_channels_path
|
||||||
|
syn keyword ngxDirectiveThirdParty contained push_stream_channels_statistics
|
||||||
|
syn keyword ngxDirectiveThirdParty contained push_stream_events_channel_id
|
||||||
|
syn keyword ngxDirectiveThirdParty contained push_stream_footer_template
|
||||||
|
syn keyword ngxDirectiveThirdParty contained push_stream_header_template
|
||||||
|
syn keyword ngxDirectiveThirdParty contained push_stream_header_template_file
|
||||||
|
syn keyword ngxDirectiveThirdParty contained push_stream_last_event_id
|
||||||
|
syn keyword ngxDirectiveThirdParty contained push_stream_last_received_message_tag
|
||||||
|
syn keyword ngxDirectiveThirdParty contained push_stream_last_received_message_time
|
||||||
|
syn keyword ngxDirectiveThirdParty contained push_stream_longpolling_connection_ttl
|
||||||
|
syn keyword ngxDirectiveThirdParty contained push_stream_max_channel_id_length
|
||||||
|
syn keyword ngxDirectiveThirdParty contained push_stream_max_messages_stored_per_channel
|
||||||
|
syn keyword ngxDirectiveThirdParty contained push_stream_max_number_of_channels
|
||||||
|
syn keyword ngxDirectiveThirdParty contained push_stream_max_number_of_wildcard_channels
|
||||||
|
syn keyword ngxDirectiveThirdParty contained push_stream_max_subscribers_per_channel
|
||||||
|
syn keyword ngxDirectiveThirdParty contained push_stream_message_template
|
||||||
|
syn keyword ngxDirectiveThirdParty contained push_stream_message_ttl
|
||||||
|
syn keyword ngxDirectiveThirdParty contained push_stream_padding_by_user_agent
|
||||||
|
syn keyword ngxDirectiveThirdParty contained push_stream_ping_message_interval
|
||||||
|
syn keyword ngxDirectiveThirdParty contained push_stream_ping_message_text
|
||||||
|
syn keyword ngxDirectiveThirdParty contained push_stream_publisher
|
||||||
|
syn keyword ngxDirectiveThirdParty contained push_stream_shared_memory_size
|
||||||
|
syn keyword ngxDirectiveThirdParty contained push_stream_store_messages
|
||||||
|
syn keyword ngxDirectiveThirdParty contained push_stream_subscriber
|
||||||
|
syn keyword ngxDirectiveThirdParty contained push_stream_subscriber_connection_ttl
|
||||||
|
syn keyword ngxDirectiveThirdParty contained push_stream_timeout_with_body
|
||||||
|
syn keyword ngxDirectiveThirdParty contained push_stream_user_agent
|
||||||
|
syn keyword ngxDirectiveThirdParty contained push_stream_websocket_allow_publish
|
||||||
|
syn keyword ngxDirectiveThirdParty contained push_stream_wildcard_channel_max_qtd
|
||||||
|
syn keyword ngxDirectiveThirdParty contained push_stream_wildcard_channel_prefix
|
||||||
|
|
||||||
|
" redis module
|
||||||
|
" https://www.nginx.com/resources/wiki/modules/redis/
|
||||||
|
syn keyword ngxDirectiveThirdParty contained redis_bind
|
||||||
|
syn keyword ngxDirectiveThirdParty contained redis_buffer_size
|
||||||
|
syn keyword ngxDirectiveThirdParty contained redis_connect_timeout
|
||||||
|
syn keyword ngxDirectiveThirdParty contained redis_gzip_flag
|
||||||
|
syn keyword ngxDirectiveThirdParty contained redis_next_upstream
|
||||||
|
syn keyword ngxDirectiveThirdParty contained redis_pass
|
||||||
|
syn keyword ngxDirectiveThirdParty contained redis_read_timeout
|
||||||
|
syn keyword ngxDirectiveThirdParty contained redis_send_timeout
|
||||||
|
|
||||||
|
" ngx_http_response
|
||||||
|
" http://catap.ru/downloads/nginx/
|
||||||
|
syn keyword ngxDirectiveThirdParty contained response
|
||||||
|
syn keyword ngxDirectiveThirdParty contained response_type
|
||||||
|
|
||||||
|
" nginx_substitutions_filter
|
||||||
|
" https://github.com/yaoweibin/ngx_http_substitutions_filter_module
|
||||||
|
syn keyword ngxDirectiveThirdParty contained subs_buffers
|
||||||
|
syn keyword ngxDirectiveThirdParty contained subs_filter
|
||||||
|
syn keyword ngxDirectiveThirdParty contained subs_filter_bypass
|
||||||
|
syn keyword ngxDirectiveThirdParty contained subs_filter_types
|
||||||
|
syn keyword ngxDirectiveThirdParty contained subs_line_buffer_size
|
||||||
|
|
||||||
|
" Tarantool nginx upstream module
|
||||||
|
" https://github.com/tarantool/nginx_upstream_module
|
||||||
|
syn keyword ngxDirectiveThirdParty contained tnt_allowed_indexes
|
||||||
|
syn keyword ngxDirectiveThirdParty contained tnt_allowed_spaces
|
||||||
|
syn keyword ngxDirectiveThirdParty contained tnt_buffer_size
|
||||||
|
syn keyword ngxDirectiveThirdParty contained tnt_connect_timeout
|
||||||
|
syn keyword ngxDirectiveThirdParty contained tnt_delete
|
||||||
|
syn keyword ngxDirectiveThirdParty contained tnt_http_methods
|
||||||
|
syn keyword ngxDirectiveThirdParty contained tnt_http_rest_methods
|
||||||
|
syn keyword ngxDirectiveThirdParty contained tnt_in_multiplier
|
||||||
|
syn keyword ngxDirectiveThirdParty contained tnt_insert
|
||||||
|
syn keyword ngxDirectiveThirdParty contained tnt_method
|
||||||
|
syn keyword ngxDirectiveThirdParty contained tnt_multireturn_skip_count
|
||||||
|
syn keyword ngxDirectiveThirdParty contained tnt_next_upstream
|
||||||
|
syn keyword ngxDirectiveThirdParty contained tnt_next_upstream_timeout
|
||||||
|
syn keyword ngxDirectiveThirdParty contained tnt_next_upstream_tries
|
||||||
|
syn keyword ngxDirectiveThirdParty contained tnt_out_multiplier
|
||||||
|
syn keyword ngxDirectiveThirdParty contained tnt_pass
|
||||||
|
syn keyword ngxDirectiveThirdParty contained tnt_pass_http_request
|
||||||
|
syn keyword ngxDirectiveThirdParty contained tnt_pass_http_request_buffer_size
|
||||||
|
syn keyword ngxDirectiveThirdParty contained tnt_pure_result
|
||||||
|
syn keyword ngxDirectiveThirdParty contained tnt_read_timeout
|
||||||
|
syn keyword ngxDirectiveThirdParty contained tnt_replace
|
||||||
|
syn keyword ngxDirectiveThirdParty contained tnt_select
|
||||||
|
syn keyword ngxDirectiveThirdParty contained tnt_select_limit_max
|
||||||
|
syn keyword ngxDirectiveThirdParty contained tnt_send_timeout
|
||||||
|
syn keyword ngxDirectiveThirdParty contained tnt_set_header
|
||||||
|
syn keyword ngxDirectiveThirdParty contained tnt_update
|
||||||
|
syn keyword ngxDirectiveThirdParty contained tnt_upsert
|
||||||
|
|
||||||
|
" A module for nginx web server for handling file uploads using multipart/form-data encoding (RFC 1867)
|
||||||
|
" https://github.com/Austinb/nginx-upload-module
|
||||||
|
syn keyword ngxDirectiveThirdParty contained upload_aggregate_form_field
|
||||||
|
syn keyword ngxDirectiveThirdParty contained upload_archive_elm
|
||||||
|
syn keyword ngxDirectiveThirdParty contained upload_archive_elm_separator
|
||||||
|
syn keyword ngxDirectiveThirdParty contained upload_archive_path
|
||||||
|
syn keyword ngxDirectiveThirdParty contained upload_archive_path_separator
|
||||||
|
syn keyword ngxDirectiveThirdParty contained upload_buffer_size
|
||||||
|
syn keyword ngxDirectiveThirdParty contained upload_cleanup
|
||||||
|
syn keyword ngxDirectiveThirdParty contained upload_content_type
|
||||||
|
syn keyword ngxDirectiveThirdParty contained upload_discard
|
||||||
|
syn keyword ngxDirectiveThirdParty contained upload_field_name
|
||||||
|
syn keyword ngxDirectiveThirdParty contained upload_file_crc32
|
||||||
|
syn keyword ngxDirectiveThirdParty contained upload_file_md5
|
||||||
|
syn keyword ngxDirectiveThirdParty contained upload_file_md5_uc
|
||||||
|
syn keyword ngxDirectiveThirdParty contained upload_file_name
|
||||||
|
syn keyword ngxDirectiveThirdParty contained upload_file_sha1
|
||||||
|
syn keyword ngxDirectiveThirdParty contained upload_file_sha1_uc
|
||||||
|
syn keyword ngxDirectiveThirdParty contained upload_file_size
|
||||||
|
syn keyword ngxDirectiveThirdParty contained upload_filter
|
||||||
|
syn keyword ngxDirectiveThirdParty contained upload_max_file_size
|
||||||
|
syn keyword ngxDirectiveThirdParty contained upload_max_output_body_len
|
||||||
|
syn keyword ngxDirectiveThirdParty contained upload_max_part_header_len
|
||||||
|
syn keyword ngxDirectiveThirdParty contained upload_pass
|
||||||
|
syn keyword ngxDirectiveThirdParty contained upload_pass_args
|
||||||
|
syn keyword ngxDirectiveThirdParty contained upload_pass_form_field
|
||||||
|
syn keyword ngxDirectiveThirdParty contained upload_set_form_field
|
||||||
|
syn keyword ngxDirectiveThirdParty contained upload_store
|
||||||
|
syn keyword ngxDirectiveThirdParty contained upload_store_access
|
||||||
|
syn keyword ngxDirectiveThirdParty contained upload_tmp_path
|
||||||
|
syn keyword ngxDirectiveThirdParty contained upload_unzip
|
||||||
|
syn keyword ngxDirectiveThirdParty contained upload_unzip_buffers
|
||||||
|
syn keyword ngxDirectiveThirdParty contained upload_unzip_hash
|
||||||
|
syn keyword ngxDirectiveThirdParty contained upload_unzip_max_file_name_len
|
||||||
|
syn keyword ngxDirectiveThirdParty contained upload_unzip_window
|
||||||
|
syn keyword ngxDirectiveThirdParty contained upload_void_content_type
|
||||||
|
|
||||||
|
" nginx-upload-progress-module
|
||||||
|
" https://github.com/masterzen/nginx-upload-progress-module
|
||||||
|
syn keyword ngxDirectiveThirdParty contained report_uploads
|
||||||
|
syn keyword ngxDirectiveThirdParty contained track_uploads
|
||||||
|
syn keyword ngxDirectiveThirdParty contained upload_progress
|
||||||
|
syn keyword ngxDirectiveThirdParty contained upload_progress_content_type
|
||||||
|
syn keyword ngxDirectiveThirdParty contained upload_progress_header
|
||||||
|
syn keyword ngxDirectiveThirdParty contained upload_progress_java_output
|
||||||
|
syn keyword ngxDirectiveThirdParty contained upload_progress_json_output
|
||||||
|
syn keyword ngxDirectiveThirdParty contained upload_progress_jsonp_output
|
||||||
|
syn keyword ngxDirectiveThirdParty contained upload_progress_jsonp_parameter
|
||||||
|
syn keyword ngxDirectiveThirdParty contained upload_progress_template
|
||||||
|
|
||||||
|
" Health checks upstreams for nginx
|
||||||
|
" https://github.com/yaoweibin/nginx_upstream_check_module
|
||||||
|
syn keyword ngxDirectiveThirdParty contained check
|
||||||
|
syn keyword ngxDirectiveThirdParty contained check_fastcgi_param
|
||||||
|
syn keyword ngxDirectiveThirdParty contained check_http_expect_alive
|
||||||
|
syn keyword ngxDirectiveThirdParty contained check_http_send
|
||||||
|
syn keyword ngxDirectiveThirdParty contained check_keepalive_requests
|
||||||
|
syn keyword ngxDirectiveThirdParty contained check_shm_size
|
||||||
|
syn keyword ngxDirectiveThirdParty contained check_status
|
||||||
|
|
||||||
|
" The fair load balancer module for nginx
|
||||||
|
" https://github.com/cryptofuture/nginx-upstream-fair
|
||||||
|
syn keyword ngxDirectiveThirdParty contained fair
|
||||||
|
syn keyword ngxDirectiveThirdParty contained upstream_fair_shm_size
|
||||||
|
|
||||||
|
" Nginx Video Thumb Extractor Module
|
||||||
|
" https://github.com/wandenberg/nginx-video-thumbextractor-module
|
||||||
|
syn keyword ngxDirectiveThirdParty contained video_thumbextractor
|
||||||
|
syn keyword ngxDirectiveThirdParty contained video_thumbextractor_image_height
|
||||||
|
syn keyword ngxDirectiveThirdParty contained video_thumbextractor_image_width
|
||||||
|
syn keyword ngxDirectiveThirdParty contained video_thumbextractor_jpeg_baseline
|
||||||
|
syn keyword ngxDirectiveThirdParty contained video_thumbextractor_jpeg_dpi
|
||||||
|
syn keyword ngxDirectiveThirdParty contained video_thumbextractor_jpeg_optimize
|
||||||
|
syn keyword ngxDirectiveThirdParty contained video_thumbextractor_jpeg_progressive_mode
|
||||||
|
syn keyword ngxDirectiveThirdParty contained video_thumbextractor_jpeg_quality
|
||||||
|
syn keyword ngxDirectiveThirdParty contained video_thumbextractor_jpeg_smooth
|
||||||
|
syn keyword ngxDirectiveThirdParty contained video_thumbextractor_next_time
|
||||||
|
syn keyword ngxDirectiveThirdParty contained video_thumbextractor_only_keyframe
|
||||||
|
syn keyword ngxDirectiveThirdParty contained video_thumbextractor_processes_per_worker
|
||||||
|
syn keyword ngxDirectiveThirdParty contained video_thumbextractor_threads
|
||||||
|
syn keyword ngxDirectiveThirdParty contained video_thumbextractor_tile_color
|
||||||
|
syn keyword ngxDirectiveThirdParty contained video_thumbextractor_tile_cols
|
||||||
|
syn keyword ngxDirectiveThirdParty contained video_thumbextractor_tile_margin
|
||||||
|
syn keyword ngxDirectiveThirdParty contained video_thumbextractor_tile_max_cols
|
||||||
|
syn keyword ngxDirectiveThirdParty contained video_thumbextractor_tile_max_rows
|
||||||
|
syn keyword ngxDirectiveThirdParty contained video_thumbextractor_tile_padding
|
||||||
|
syn keyword ngxDirectiveThirdParty contained video_thumbextractor_tile_rows
|
||||||
|
syn keyword ngxDirectiveThirdParty contained video_thumbextractor_tile_sample_interval
|
||||||
|
syn keyword ngxDirectiveThirdParty contained video_thumbextractor_video_filename
|
||||||
|
syn keyword ngxDirectiveThirdParty contained video_thumbextractor_video_second
|
||||||
|
|
||||||
|
" drizzle-nginx-module - Upstream module for talking to MySQL and Drizzle directly
|
||||||
|
" https://github.com/openresty/drizzle-nginx-module
|
||||||
|
syn keyword ngxDirectiveThirdParty contained drizzle_buffer_size
|
||||||
|
syn keyword ngxDirectiveThirdParty contained drizzle_connect_timeout
|
||||||
|
syn keyword ngxDirectiveThirdParty contained drizzle_dbname
|
||||||
|
syn keyword ngxDirectiveThirdParty contained drizzle_keepalive
|
||||||
|
syn keyword ngxDirectiveThirdParty contained drizzle_module_header
|
||||||
|
syn keyword ngxDirectiveThirdParty contained drizzle_pass
|
||||||
|
syn keyword ngxDirectiveThirdParty contained drizzle_query
|
||||||
|
syn keyword ngxDirectiveThirdParty contained drizzle_recv_cols_timeout
|
||||||
|
syn keyword ngxDirectiveThirdParty contained drizzle_recv_rows_timeout
|
||||||
|
syn keyword ngxDirectiveThirdParty contained drizzle_send_query_timeout
|
||||||
|
syn keyword ngxDirectiveThirdParty contained drizzle_server
|
||||||
|
syn keyword ngxDirectiveThirdParty contained drizzle_status
|
||||||
|
|
||||||
|
" ngx_dynamic_upstream
|
||||||
|
" https://github.com/cubicdaiya/ngx_dynamic_upstream
|
||||||
|
syn keyword ngxDirectiveThirdParty contained dynamic_upstream
|
||||||
|
|
||||||
|
" encrypt and decrypt nginx variable values
|
||||||
|
" https://github.com/openresty/encrypted-session-nginx-module
|
||||||
|
syn keyword ngxDirectiveThirdParty contained encrypted_session_expires
|
||||||
|
syn keyword ngxDirectiveThirdParty contained encrypted_session_iv
|
||||||
|
syn keyword ngxDirectiveThirdParty contained encrypted_session_key
|
||||||
|
syn keyword ngxDirectiveThirdParty contained set_decrypt_session
|
||||||
|
syn keyword ngxDirectiveThirdParty contained set_encrypt_session
|
||||||
|
|
||||||
|
" serve content directly from MongoDB's GridFS
|
||||||
|
" https://github.com/mdirolf/nginx-gridfs
|
||||||
|
syn keyword ngxDirectiveThirdParty contained gridfs
|
||||||
|
syn keyword ngxDirectiveThirdParty contained mongo
|
||||||
|
|
||||||
|
" Adds support for arithmetic operations to NGINX config
|
||||||
|
" https://github.com/arut/nginx-let-module
|
||||||
|
syn keyword ngxDirectiveThirdParty contained let
|
||||||
|
|
||||||
|
" ngx_http_lua_module - Embed the power of Lua into Nginx HTTP Servers
|
||||||
|
" https://github.com/openresty/lua-nginx-module
|
||||||
|
syn keyword ngxDirectiveThirdParty contained access_by_lua
|
||||||
|
syn keyword ngxDirectiveThirdParty contained access_by_lua_block
|
||||||
|
syn keyword ngxDirectiveThirdParty contained access_by_lua_file
|
||||||
|
syn keyword ngxDirectiveThirdParty contained access_by_lua_no_postpone
|
||||||
|
syn keyword ngxDirectiveThirdParty contained balancer_by_lua_block
|
||||||
|
syn keyword ngxDirectiveThirdParty contained balancer_by_lua_file
|
||||||
|
syn keyword ngxDirectiveThirdParty contained body_filter_by_lua
|
||||||
|
syn keyword ngxDirectiveThirdParty contained body_filter_by_lua_block
|
||||||
|
syn keyword ngxDirectiveThirdParty contained body_filter_by_lua_file
|
||||||
|
syn keyword ngxDirectiveThirdParty contained content_by_lua
|
||||||
|
syn keyword ngxDirectiveThirdParty contained content_by_lua_block
|
||||||
|
syn keyword ngxDirectiveThirdParty contained content_by_lua_file
|
||||||
|
syn keyword ngxDirectiveThirdParty contained header_filter_by_lua
|
||||||
|
syn keyword ngxDirectiveThirdParty contained header_filter_by_lua_block
|
||||||
|
syn keyword ngxDirectiveThirdParty contained header_filter_by_lua_file
|
||||||
|
syn keyword ngxDirectiveThirdParty contained init_by_lua
|
||||||
|
syn keyword ngxDirectiveThirdParty contained init_by_lua_block
|
||||||
|
syn keyword ngxDirectiveThirdParty contained init_by_lua_file
|
||||||
|
syn keyword ngxDirectiveThirdParty contained init_worker_by_lua
|
||||||
|
syn keyword ngxDirectiveThirdParty contained init_worker_by_lua_block
|
||||||
|
syn keyword ngxDirectiveThirdParty contained init_worker_by_lua_file
|
||||||
|
syn keyword ngxDirectiveThirdParty contained log_by_lua
|
||||||
|
syn keyword ngxDirectiveThirdParty contained log_by_lua_block
|
||||||
|
syn keyword ngxDirectiveThirdParty contained log_by_lua_file
|
||||||
|
syn keyword ngxDirectiveThirdParty contained lua_capture_error_log
|
||||||
|
syn keyword ngxDirectiveThirdParty contained lua_check_client_abort
|
||||||
|
syn keyword ngxDirectiveThirdParty contained lua_code_cache
|
||||||
|
syn keyword ngxDirectiveThirdParty contained lua_fake_shm
|
||||||
|
syn keyword ngxDirectiveThirdParty contained lua_http10_buffering
|
||||||
|
syn keyword ngxDirectiveThirdParty contained lua_malloc_trim
|
||||||
|
syn keyword ngxDirectiveThirdParty contained lua_max_pending_timers
|
||||||
|
syn keyword ngxDirectiveThirdParty contained lua_max_running_timers
|
||||||
|
syn keyword ngxDirectiveThirdParty contained lua_need_request_body
|
||||||
|
syn keyword ngxDirectiveThirdParty contained lua_package_cpath
|
||||||
|
syn keyword ngxDirectiveThirdParty contained lua_package_path
|
||||||
|
syn keyword ngxDirectiveThirdParty contained lua_regex_cache_max_entries
|
||||||
|
syn keyword ngxDirectiveThirdParty contained lua_regex_match_limit
|
||||||
|
syn keyword ngxDirectiveThirdParty contained lua_shared_dict
|
||||||
|
syn keyword ngxDirectiveThirdParty contained lua_socket_buffer_size
|
||||||
|
syn keyword ngxDirectiveThirdParty contained lua_socket_connect_timeout
|
||||||
|
syn keyword ngxDirectiveThirdParty contained lua_socket_keepalive_timeout
|
||||||
|
syn keyword ngxDirectiveThirdParty contained lua_socket_log_errors
|
||||||
|
syn keyword ngxDirectiveThirdParty contained lua_socket_pool_size
|
||||||
|
syn keyword ngxDirectiveThirdParty contained lua_socket_read_timeout
|
||||||
|
syn keyword ngxDirectiveThirdParty contained lua_socket_send_lowat
|
||||||
|
syn keyword ngxDirectiveThirdParty contained lua_socket_send_timeout
|
||||||
|
syn keyword ngxDirectiveThirdParty contained lua_ssl_ciphers
|
||||||
|
syn keyword ngxDirectiveThirdParty contained lua_ssl_crl
|
||||||
|
syn keyword ngxDirectiveThirdParty contained lua_ssl_protocols
|
||||||
|
syn keyword ngxDirectiveThirdParty contained lua_ssl_trusted_certificate
|
||||||
|
syn keyword ngxDirectiveThirdParty contained lua_ssl_verify_depth
|
||||||
|
syn keyword ngxDirectiveThirdParty contained lua_transform_underscores_in_response_headers
|
||||||
|
syn keyword ngxDirectiveThirdParty contained lua_use_default_type
|
||||||
|
syn keyword ngxDirectiveThirdParty contained rewrite_by_lua
|
||||||
|
syn keyword ngxDirectiveThirdParty contained rewrite_by_lua_block
|
||||||
|
syn keyword ngxDirectiveThirdParty contained rewrite_by_lua_file
|
||||||
|
syn keyword ngxDirectiveThirdParty contained rewrite_by_lua_no_postpone
|
||||||
|
syn keyword ngxDirectiveThirdParty contained set_by_lua
|
||||||
|
syn keyword ngxDirectiveThirdParty contained set_by_lua_block
|
||||||
|
syn keyword ngxDirectiveThirdParty contained set_by_lua_file
|
||||||
|
syn keyword ngxDirectiveThirdParty contained ssl_certificate_by_lua_block
|
||||||
|
syn keyword ngxDirectiveThirdParty contained ssl_certificate_by_lua_file
|
||||||
|
syn keyword ngxDirectiveThirdParty contained ssl_session_fetch_by_lua_block
|
||||||
|
syn keyword ngxDirectiveThirdParty contained ssl_session_fetch_by_lua_file
|
||||||
|
syn keyword ngxDirectiveThirdParty contained ssl_session_store_by_lua_block
|
||||||
|
syn keyword ngxDirectiveThirdParty contained ssl_session_store_by_lua_file
|
||||||
|
|
||||||
|
" ngx_memc - An extended version of the standard memcached module
|
||||||
|
" https://github.com/openresty/memc-nginx-module
|
||||||
|
syn keyword ngxDirectiveThirdParty contained memc_buffer_size
|
||||||
|
syn keyword ngxDirectiveThirdParty contained memc_cmds_allowed
|
||||||
|
syn keyword ngxDirectiveThirdParty contained memc_connect_timeout
|
||||||
|
syn keyword ngxDirectiveThirdParty contained memc_flags_to_last_modified
|
||||||
|
syn keyword ngxDirectiveThirdParty contained memc_ignore_client_abort
|
||||||
|
syn keyword ngxDirectiveThirdParty contained memc_next_upstream
|
||||||
|
syn keyword ngxDirectiveThirdParty contained memc_pass
|
||||||
|
syn keyword ngxDirectiveThirdParty contained memc_read_timeout
|
||||||
|
syn keyword ngxDirectiveThirdParty contained memc_send_timeout
|
||||||
|
syn keyword ngxDirectiveThirdParty contained memc_upstream_fail_timeout
|
||||||
|
syn keyword ngxDirectiveThirdParty contained memc_upstream_max_fails
|
||||||
|
|
||||||
|
" ModSecurity web application firewall
|
||||||
|
" https://github.com/SpiderLabs/ModSecurity/tree/master
|
||||||
|
syn keyword ngxDirectiveThirdParty contained ModSecurityConfig
|
||||||
|
syn keyword ngxDirectiveThirdParty contained ModSecurityEnabled
|
||||||
|
syn keyword ngxDirectiveThirdParty contained pool_context_hash_size
|
||||||
|
|
||||||
|
" NAXSI is an open-source, high performance, low rules maintenance WAF for NGINX
|
||||||
|
" https://github.com/nbs-system/naxsi
|
||||||
|
syn keyword ngxDirectiveThirdParty contained BasicRule
|
||||||
|
syn keyword ngxDirectiveThirdParty contained CheckRule
|
||||||
|
syn keyword ngxDirectiveThirdParty contained DeniedUrl
|
||||||
|
syn keyword ngxDirectiveThirdParty contained LearningMode
|
||||||
|
syn keyword ngxDirectiveThirdParty contained LibInjectionSql
|
||||||
|
syn keyword ngxDirectiveThirdParty contained LibInjectionXss
|
||||||
|
syn keyword ngxDirectiveThirdParty contained MainRule
|
||||||
|
syn keyword ngxDirectiveThirdParty contained SecRulesDisabled
|
||||||
|
syn keyword ngxDirectiveThirdParty contained SecRulesEnabled
|
||||||
|
syn keyword ngxDirectiveThirdParty contained basic_rule
|
||||||
|
syn keyword ngxDirectiveThirdParty contained check_rule
|
||||||
|
syn keyword ngxDirectiveThirdParty contained denied_url
|
||||||
|
syn keyword ngxDirectiveThirdParty contained learning_mode
|
||||||
|
syn keyword ngxDirectiveThirdParty contained libinjection_sql
|
||||||
|
syn keyword ngxDirectiveThirdParty contained libinjection_xss
|
||||||
|
syn keyword ngxDirectiveThirdParty contained main_rule
|
||||||
|
syn keyword ngxDirectiveThirdParty contained rules_disabled
|
||||||
|
syn keyword ngxDirectiveThirdParty contained rules_enabled
|
||||||
|
|
||||||
|
" Phusion Passenger
|
||||||
|
" https://www.phusionpassenger.com/library/config/nginx/reference/
|
||||||
|
syn keyword ngxDirectiveThirdParty contained disable_security_update_check
|
||||||
|
syn keyword ngxDirectiveThirdParty contained passenger_abort_on_startup_error
|
||||||
|
syn keyword ngxDirectiveThirdParty contained passenger_abort_websockets_on_process_shutdown
|
||||||
|
syn keyword ngxDirectiveThirdParty contained passenger_analytics_log_group
|
||||||
|
syn keyword ngxDirectiveThirdParty contained passenger_analytics_log_user
|
||||||
|
syn keyword ngxDirectiveThirdParty contained passenger_app_env
|
||||||
|
syn keyword ngxDirectiveThirdParty contained passenger_app_file_descriptor_ulimit
|
||||||
|
syn keyword ngxDirectiveThirdParty contained passenger_app_group_name
|
||||||
|
syn keyword ngxDirectiveThirdParty contained passenger_app_rights
|
||||||
|
syn keyword ngxDirectiveThirdParty contained passenger_app_root
|
||||||
|
syn keyword ngxDirectiveThirdParty contained passenger_app_type
|
||||||
|
syn keyword ngxDirectiveThirdParty contained passenger_base_uri
|
||||||
|
syn keyword ngxDirectiveThirdParty contained passenger_buffer_response
|
||||||
|
syn keyword ngxDirectiveThirdParty contained passenger_buffer_size
|
||||||
|
syn keyword ngxDirectiveThirdParty contained passenger_buffers
|
||||||
|
syn keyword ngxDirectiveThirdParty contained passenger_busy_buffers_size
|
||||||
|
syn keyword ngxDirectiveThirdParty contained passenger_concurrency_model
|
||||||
|
syn keyword ngxDirectiveThirdParty contained passenger_core_file_descriptor_ulimit
|
||||||
|
syn keyword ngxDirectiveThirdParty contained passenger_ctl
|
||||||
|
syn keyword ngxDirectiveThirdParty contained passenger_data_buffer_dir
|
||||||
|
syn keyword ngxDirectiveThirdParty contained passenger_debugger
|
||||||
|
syn keyword ngxDirectiveThirdParty contained passenger_default_group
|
||||||
|
syn keyword ngxDirectiveThirdParty contained passenger_default_user
|
||||||
|
syn keyword ngxDirectiveThirdParty contained passenger_disable_security_update_check
|
||||||
|
syn keyword ngxDirectiveThirdParty contained passenger_document_root
|
||||||
|
syn keyword ngxDirectiveThirdParty contained passenger_enabled
|
||||||
|
syn keyword ngxDirectiveThirdParty contained passenger_env_var
|
||||||
|
syn keyword ngxDirectiveThirdParty contained passenger_file_descriptor_log_file
|
||||||
|
syn keyword ngxDirectiveThirdParty contained passenger_fly_with
|
||||||
|
syn keyword ngxDirectiveThirdParty contained passenger_force_max_concurrent_requests_per_process
|
||||||
|
syn keyword ngxDirectiveThirdParty contained passenger_friendly_error_pages
|
||||||
|
syn keyword ngxDirectiveThirdParty contained passenger_group
|
||||||
|
syn keyword ngxDirectiveThirdParty contained passenger_headers_hash_bucket_size
|
||||||
|
syn keyword ngxDirectiveThirdParty contained passenger_headers_hash_max_size
|
||||||
|
syn keyword ngxDirectiveThirdParty contained passenger_ignore_client_abort
|
||||||
|
syn keyword ngxDirectiveThirdParty contained passenger_ignore_headers
|
||||||
|
syn keyword ngxDirectiveThirdParty contained passenger_instance_registry_dir
|
||||||
|
syn keyword ngxDirectiveThirdParty contained passenger_intercept_errors
|
||||||
|
syn keyword ngxDirectiveThirdParty contained passenger_load_shell_envvars
|
||||||
|
syn keyword ngxDirectiveThirdParty contained passenger_log_file
|
||||||
|
syn keyword ngxDirectiveThirdParty contained passenger_log_level
|
||||||
|
syn keyword ngxDirectiveThirdParty contained passenger_max_instances
|
||||||
|
syn keyword ngxDirectiveThirdParty contained passenger_max_instances_per_app
|
||||||
|
syn keyword ngxDirectiveThirdParty contained passenger_max_pool_size
|
||||||
|
syn keyword ngxDirectiveThirdParty contained passenger_max_preloader_idle_time
|
||||||
|
syn keyword ngxDirectiveThirdParty contained passenger_max_request_queue_size
|
||||||
|
syn keyword ngxDirectiveThirdParty contained passenger_max_request_time
|
||||||
|
syn keyword ngxDirectiveThirdParty contained passenger_max_requests
|
||||||
|
syn keyword ngxDirectiveThirdParty contained passenger_memory_limit
|
||||||
|
syn keyword ngxDirectiveThirdParty contained passenger_meteor_app_settings
|
||||||
|
syn keyword ngxDirectiveThirdParty contained passenger_min_instances
|
||||||
|
syn keyword ngxDirectiveThirdParty contained passenger_nodejs
|
||||||
|
syn keyword ngxDirectiveThirdParty contained passenger_pass_header
|
||||||
|
syn keyword ngxDirectiveThirdParty contained passenger_pool_idle_time
|
||||||
|
syn keyword ngxDirectiveThirdParty contained passenger_pre_start
|
||||||
|
syn keyword ngxDirectiveThirdParty contained passenger_python
|
||||||
|
syn keyword ngxDirectiveThirdParty contained passenger_read_timeout
|
||||||
|
syn keyword ngxDirectiveThirdParty contained passenger_request_queue_overflow_status_code
|
||||||
|
syn keyword ngxDirectiveThirdParty contained passenger_resist_deployment_errors
|
||||||
|
syn keyword ngxDirectiveThirdParty contained passenger_response_buffer_high_watermark
|
||||||
|
syn keyword ngxDirectiveThirdParty contained passenger_restart_dir
|
||||||
|
syn keyword ngxDirectiveThirdParty contained passenger_rolling_restarts
|
||||||
|
syn keyword ngxDirectiveThirdParty contained passenger_root
|
||||||
|
syn keyword ngxDirectiveThirdParty contained passenger_ruby
|
||||||
|
syn keyword ngxDirectiveThirdParty contained passenger_security_update_check_proxy
|
||||||
|
syn keyword ngxDirectiveThirdParty contained passenger_set_header
|
||||||
|
syn keyword ngxDirectiveThirdParty contained passenger_show_version_in_header
|
||||||
|
syn keyword ngxDirectiveThirdParty contained passenger_socket_backlog
|
||||||
|
syn keyword ngxDirectiveThirdParty contained passenger_spawn_method
|
||||||
|
syn keyword ngxDirectiveThirdParty contained passenger_start_timeout
|
||||||
|
syn keyword ngxDirectiveThirdParty contained passenger_startup_file
|
||||||
|
syn keyword ngxDirectiveThirdParty contained passenger_stat_throttle_rate
|
||||||
|
syn keyword ngxDirectiveThirdParty contained passenger_sticky_sessions
|
||||||
|
syn keyword ngxDirectiveThirdParty contained passenger_sticky_sessions_cookie_name
|
||||||
|
syn keyword ngxDirectiveThirdParty contained passenger_thread_count
|
||||||
|
syn keyword ngxDirectiveThirdParty contained passenger_turbocaching
|
||||||
|
syn keyword ngxDirectiveThirdParty contained passenger_user
|
||||||
|
syn keyword ngxDirectiveThirdParty contained passenger_user_switching
|
||||||
|
syn keyword ngxDirectiveThirdParty contained passenger_vary_turbocache_by_cookie
|
||||||
|
syn keyword ngxDirectiveThirdParty contained rack_env
|
||||||
|
syn keyword ngxDirectiveThirdParty contained rails_app_spawner_idle_time
|
||||||
|
syn keyword ngxDirectiveThirdParty contained rails_env
|
||||||
|
syn keyword ngxDirectiveThirdParty contained security_update_check_proxy
|
||||||
|
syn keyword ngxDirectiveThirdParty contained union_station_filter
|
||||||
|
syn keyword ngxDirectiveThirdParty contained union_station_gateway_address
|
||||||
|
syn keyword ngxDirectiveThirdParty contained union_station_gateway_cert
|
||||||
|
syn keyword ngxDirectiveThirdParty contained union_station_gateway_port
|
||||||
|
syn keyword ngxDirectiveThirdParty contained union_station_key
|
||||||
|
syn keyword ngxDirectiveThirdParty contained union_station_proxy_address
|
||||||
|
syn keyword ngxDirectiveThirdParty contained union_station_support
|
||||||
|
syn keyword ngxDirectiveThirdPartyDeprecated contained passenger_debug_log_file
|
||||||
|
syn keyword ngxDirectiveThirdPartyDeprecated contained passenger_use_global_queue
|
||||||
|
syn keyword ngxDirectiveThirdPartyDeprecated contained rails_framework_spawner_idle_time
|
||||||
|
syn keyword ngxDirectiveThirdPartyDeprecated contained rails_spawn_method
|
||||||
|
|
||||||
|
" ngx_postgres is an upstream module that allows nginx to communicate directly with PostgreSQL database
|
||||||
|
" https://github.com/FRiCKLE/ngx_postgres
|
||||||
|
syn keyword ngxDirectiveThirdParty contained postgres_connect_timeout
|
||||||
|
syn keyword ngxDirectiveThirdParty contained postgres_escape
|
||||||
|
syn keyword ngxDirectiveThirdParty contained postgres_keepalive
|
||||||
|
syn keyword ngxDirectiveThirdParty contained postgres_output
|
||||||
|
syn keyword ngxDirectiveThirdParty contained postgres_pass
|
||||||
|
syn keyword ngxDirectiveThirdParty contained postgres_query
|
||||||
|
syn keyword ngxDirectiveThirdParty contained postgres_result_timeout
|
||||||
|
syn keyword ngxDirectiveThirdParty contained postgres_rewrite
|
||||||
|
syn keyword ngxDirectiveThirdParty contained postgres_server
|
||||||
|
syn keyword ngxDirectiveThirdParty contained postgres_set
|
||||||
|
|
||||||
|
" ngx_rds_csv - Nginx output filter module to convert Resty-DBD-Streams (RDS) to Comma-Separated Values (CSV)
|
||||||
|
" https://github.com/openresty/rds-csv-nginx-module
|
||||||
|
syn keyword ngxDirectiveThirdParty contained rds_csv
|
||||||
|
syn keyword ngxDirectiveThirdParty contained rds_csv_buffer_size
|
||||||
|
syn keyword ngxDirectiveThirdParty contained rds_csv_content_type
|
||||||
|
syn keyword ngxDirectiveThirdParty contained rds_csv_field_name_header
|
||||||
|
syn keyword ngxDirectiveThirdParty contained rds_csv_field_separator
|
||||||
|
syn keyword ngxDirectiveThirdParty contained rds_csv_row_terminator
|
||||||
|
|
||||||
|
" ngx_rds_json - an output filter that formats Resty DBD Streams generated by ngx_drizzle and others to JSON
|
||||||
|
" https://github.com/openresty/rds-json-nginx-module
|
||||||
|
syn keyword ngxDirectiveThirdParty contained rds_json
|
||||||
|
syn keyword ngxDirectiveThirdParty contained rds_json_buffer_size
|
||||||
|
syn keyword ngxDirectiveThirdParty contained rds_json_content_type
|
||||||
|
syn keyword ngxDirectiveThirdParty contained rds_json_errcode_key
|
||||||
|
syn keyword ngxDirectiveThirdParty contained rds_json_errstr_key
|
||||||
|
syn keyword ngxDirectiveThirdParty contained rds_json_format
|
||||||
|
syn keyword ngxDirectiveThirdParty contained rds_json_ret
|
||||||
|
syn keyword ngxDirectiveThirdParty contained rds_json_root
|
||||||
|
syn keyword ngxDirectiveThirdParty contained rds_json_success_property
|
||||||
|
syn keyword ngxDirectiveThirdParty contained rds_json_user_property
|
||||||
|
|
||||||
|
" ngx_redis2 - Nginx upstream module for the Redis 2.0 protocol
|
||||||
|
" https://github.com/openresty/redis2-nginx-module
|
||||||
|
syn keyword ngxDirectiveThirdParty contained redis2_bind
|
||||||
|
syn keyword ngxDirectiveThirdParty contained redis2_buffer_size
|
||||||
|
syn keyword ngxDirectiveThirdParty contained redis2_connect_timeout
|
||||||
|
syn keyword ngxDirectiveThirdParty contained redis2_literal_raw_query
|
||||||
|
syn keyword ngxDirectiveThirdParty contained redis2_next_upstream
|
||||||
|
syn keyword ngxDirectiveThirdParty contained redis2_pass
|
||||||
|
syn keyword ngxDirectiveThirdParty contained redis2_query
|
||||||
|
syn keyword ngxDirectiveThirdParty contained redis2_raw_queries
|
||||||
|
syn keyword ngxDirectiveThirdParty contained redis2_raw_query
|
||||||
|
syn keyword ngxDirectiveThirdParty contained redis2_read_timeout
|
||||||
|
syn keyword ngxDirectiveThirdParty contained redis2_send_timeout
|
||||||
|
|
||||||
|
" NGINX-based Media Streaming Server
|
||||||
|
" https://github.com/arut/nginx-rtmp-module
|
||||||
|
syn keyword ngxDirectiveThirdParty contained ack_window
|
||||||
|
syn keyword ngxDirectiveThirdParty contained application
|
||||||
|
syn keyword ngxDirectiveThirdParty contained buffer
|
||||||
|
syn keyword ngxDirectiveThirdParty contained buflen
|
||||||
|
syn keyword ngxDirectiveThirdParty contained busy
|
||||||
|
syn keyword ngxDirectiveThirdParty contained chunk_size
|
||||||
|
syn keyword ngxDirectiveThirdParty contained dash
|
||||||
|
syn keyword ngxDirectiveThirdParty contained dash_cleanup
|
||||||
|
syn keyword ngxDirectiveThirdParty contained dash_fragment
|
||||||
|
syn keyword ngxDirectiveThirdParty contained dash_nested
|
||||||
|
syn keyword ngxDirectiveThirdParty contained dash_path
|
||||||
|
syn keyword ngxDirectiveThirdParty contained dash_playlist_length
|
||||||
|
syn keyword ngxDirectiveThirdParty contained drop_idle_publisher
|
||||||
|
syn keyword ngxDirectiveThirdParty contained exec
|
||||||
|
syn keyword ngxDirectiveThirdParty contained exec_block
|
||||||
|
syn keyword ngxDirectiveThirdParty contained exec_kill_signal
|
||||||
|
syn keyword ngxDirectiveThirdParty contained exec_options
|
||||||
|
syn keyword ngxDirectiveThirdParty contained exec_play
|
||||||
|
syn keyword ngxDirectiveThirdParty contained exec_play_done
|
||||||
|
syn keyword ngxDirectiveThirdParty contained exec_publish
|
||||||
|
syn keyword ngxDirectiveThirdParty contained exec_publish_done
|
||||||
|
syn keyword ngxDirectiveThirdParty contained exec_pull
|
||||||
|
syn keyword ngxDirectiveThirdParty contained exec_push
|
||||||
|
syn keyword ngxDirectiveThirdParty contained exec_record_done
|
||||||
|
syn keyword ngxDirectiveThirdParty contained exec_static
|
||||||
|
syn keyword ngxDirectiveThirdParty contained hls_audio_buffer_size
|
||||||
|
syn keyword ngxDirectiveThirdParty contained hls_base_url
|
||||||
|
syn keyword ngxDirectiveThirdParty contained hls_cleanup
|
||||||
|
syn keyword ngxDirectiveThirdParty contained hls_continuous
|
||||||
|
syn keyword ngxDirectiveThirdParty contained hls_fragment_naming
|
||||||
|
syn keyword ngxDirectiveThirdParty contained hls_fragment_naming_granularity
|
||||||
|
syn keyword ngxDirectiveThirdParty contained hls_fragment_slicing
|
||||||
|
syn keyword ngxDirectiveThirdParty contained hls_fragments_per_key
|
||||||
|
syn keyword ngxDirectiveThirdParty contained hls_key_path
|
||||||
|
syn keyword ngxDirectiveThirdParty contained hls_key_url
|
||||||
|
syn keyword ngxDirectiveThirdParty contained hls_keys
|
||||||
|
syn keyword ngxDirectiveThirdParty contained hls_max_audio_delay
|
||||||
|
syn keyword ngxDirectiveThirdParty contained hls_max_fragment
|
||||||
|
syn keyword ngxDirectiveThirdParty contained hls_muxdelay
|
||||||
|
syn keyword ngxDirectiveThirdParty contained hls_nested
|
||||||
|
syn keyword ngxDirectiveThirdParty contained hls_path
|
||||||
|
syn keyword ngxDirectiveThirdParty contained hls_playlist_length
|
||||||
|
syn keyword ngxDirectiveThirdParty contained hls_sync
|
||||||
|
syn keyword ngxDirectiveThirdParty contained hls_type
|
||||||
|
syn keyword ngxDirectiveThirdParty contained hls_variant
|
||||||
|
syn keyword ngxDirectiveThirdParty contained idle_streams
|
||||||
|
syn keyword ngxDirectiveThirdParty contained interleave
|
||||||
|
syn keyword ngxDirectiveThirdParty contained live
|
||||||
|
syn keyword ngxDirectiveThirdParty contained max_connections
|
||||||
|
syn keyword ngxDirectiveThirdParty contained max_message
|
||||||
|
syn keyword ngxDirectiveThirdParty contained max_streams
|
||||||
|
syn keyword ngxDirectiveThirdParty contained meta
|
||||||
|
syn keyword ngxDirectiveThirdParty contained netcall_buffer
|
||||||
|
syn keyword ngxDirectiveThirdParty contained netcall_timeout
|
||||||
|
syn keyword ngxDirectiveThirdParty contained notify_method
|
||||||
|
syn keyword ngxDirectiveThirdParty contained notify_relay_redirect
|
||||||
|
syn keyword ngxDirectiveThirdParty contained notify_update_strict
|
||||||
|
syn keyword ngxDirectiveThirdParty contained notify_update_timeout
|
||||||
|
syn keyword ngxDirectiveThirdParty contained on_connect
|
||||||
|
syn keyword ngxDirectiveThirdParty contained on_disconnect
|
||||||
|
syn keyword ngxDirectiveThirdParty contained on_done
|
||||||
|
syn keyword ngxDirectiveThirdParty contained on_play
|
||||||
|
syn keyword ngxDirectiveThirdParty contained on_play_done
|
||||||
|
syn keyword ngxDirectiveThirdParty contained on_publish
|
||||||
|
syn keyword ngxDirectiveThirdParty contained on_publish_done
|
||||||
|
syn keyword ngxDirectiveThirdParty contained on_record_done
|
||||||
|
syn keyword ngxDirectiveThirdParty contained on_update
|
||||||
|
syn keyword ngxDirectiveThirdParty contained out_cork
|
||||||
|
syn keyword ngxDirectiveThirdParty contained out_queue
|
||||||
|
syn keyword ngxDirectiveThirdParty contained ping
|
||||||
|
syn keyword ngxDirectiveThirdParty contained ping_timeout
|
||||||
|
syn keyword ngxDirectiveThirdParty contained play
|
||||||
|
syn keyword ngxDirectiveThirdParty contained play_local_path
|
||||||
|
syn keyword ngxDirectiveThirdParty contained play_restart
|
||||||
|
syn keyword ngxDirectiveThirdParty contained play_temp_path
|
||||||
|
syn keyword ngxDirectiveThirdParty contained play_time_fix
|
||||||
|
syn keyword ngxDirectiveThirdParty contained publish_notify
|
||||||
|
syn keyword ngxDirectiveThirdParty contained publish_time_fix
|
||||||
|
syn keyword ngxDirectiveThirdParty contained pull
|
||||||
|
syn keyword ngxDirectiveThirdParty contained pull_reconnect
|
||||||
|
syn keyword ngxDirectiveThirdParty contained push
|
||||||
|
syn keyword ngxDirectiveThirdParty contained push_reconnect
|
||||||
|
syn keyword ngxDirectiveThirdParty contained record
|
||||||
|
syn keyword ngxDirectiveThirdParty contained record_append
|
||||||
|
syn keyword ngxDirectiveThirdParty contained record_interval
|
||||||
|
syn keyword ngxDirectiveThirdParty contained record_lock
|
||||||
|
syn keyword ngxDirectiveThirdParty contained record_max_frames
|
||||||
|
syn keyword ngxDirectiveThirdParty contained record_max_size
|
||||||
|
syn keyword ngxDirectiveThirdParty contained record_notify
|
||||||
|
syn keyword ngxDirectiveThirdParty contained record_path
|
||||||
|
syn keyword ngxDirectiveThirdParty contained record_suffix
|
||||||
|
syn keyword ngxDirectiveThirdParty contained record_unique
|
||||||
|
syn keyword ngxDirectiveThirdParty contained recorder
|
||||||
|
syn keyword ngxDirectiveThirdParty contained relay_buffer
|
||||||
|
syn keyword ngxDirectiveThirdParty contained respawn
|
||||||
|
syn keyword ngxDirectiveThirdParty contained respawn_timeout
|
||||||
|
syn keyword ngxDirectiveThirdParty contained rtmp
|
||||||
|
syn keyword ngxDirectiveThirdParty contained rtmp_auto_push
|
||||||
|
syn keyword ngxDirectiveThirdParty contained rtmp_auto_push_reconnect
|
||||||
|
syn keyword ngxDirectiveThirdParty contained rtmp_control
|
||||||
|
syn keyword ngxDirectiveThirdParty contained rtmp_socket_dir
|
||||||
|
syn keyword ngxDirectiveThirdParty contained rtmp_stat
|
||||||
|
syn keyword ngxDirectiveThirdParty contained rtmp_stat_stylesheet
|
||||||
|
syn keyword ngxDirectiveThirdParty contained session_relay
|
||||||
|
syn keyword ngxDirectiveThirdParty contained so_keepalive
|
||||||
|
syn keyword ngxDirectiveThirdParty contained stream_buckets
|
||||||
|
syn keyword ngxDirectiveThirdParty contained sync
|
||||||
|
syn keyword ngxDirectiveThirdParty contained wait_key
|
||||||
|
syn keyword ngxDirectiveThirdParty contained wait_video
|
||||||
|
|
||||||
|
" ngx_set_misc - Various set_xxx directives added to nginx's rewrite module (md5/sha1, sql/json quoting, and many more)
|
||||||
|
" https://github.com/openresty/set-misc-nginx-module
|
||||||
|
syn keyword ngxDirectiveThirdParty contained set_base32_alphabet
|
||||||
|
syn keyword ngxDirectiveThirdParty contained set_base32_padding
|
||||||
|
syn keyword ngxDirectiveThirdParty contained set_decode_base32
|
||||||
|
syn keyword ngxDirectiveThirdParty contained set_decode_base64
|
||||||
|
syn keyword ngxDirectiveThirdParty contained set_decode_hex
|
||||||
|
syn keyword ngxDirectiveThirdParty contained set_encode_base32
|
||||||
|
syn keyword ngxDirectiveThirdParty contained set_encode_base64
|
||||||
|
syn keyword ngxDirectiveThirdParty contained set_encode_hex
|
||||||
|
syn keyword ngxDirectiveThirdParty contained set_escape_uri
|
||||||
|
syn keyword ngxDirectiveThirdParty contained set_formatted_gmt_time
|
||||||
|
syn keyword ngxDirectiveThirdParty contained set_formatted_local_time
|
||||||
|
syn keyword ngxDirectiveThirdParty contained set_hashed_upstream
|
||||||
|
syn keyword ngxDirectiveThirdParty contained set_hmac_sha1
|
||||||
|
syn keyword ngxDirectiveThirdParty contained set_if_empty
|
||||||
|
syn keyword ngxDirectiveThirdParty contained set_local_today
|
||||||
|
syn keyword ngxDirectiveThirdParty contained set_misc_base32_padding
|
||||||
|
syn keyword ngxDirectiveThirdParty contained set_quote_json_str
|
||||||
|
syn keyword ngxDirectiveThirdParty contained set_quote_pgsql_str
|
||||||
|
syn keyword ngxDirectiveThirdParty contained set_quote_sql_str
|
||||||
|
syn keyword ngxDirectiveThirdParty contained set_random
|
||||||
|
syn keyword ngxDirectiveThirdParty contained set_rotate
|
||||||
|
syn keyword ngxDirectiveThirdParty contained set_secure_random_alphanum
|
||||||
|
syn keyword ngxDirectiveThirdParty contained set_secure_random_lcalpha
|
||||||
|
syn keyword ngxDirectiveThirdParty contained set_unescape_uri
|
||||||
|
|
||||||
|
" nginx-sflow-module
|
||||||
|
" https://github.com/sflow/nginx-sflow-module
|
||||||
|
syn keyword ngxDirectiveThirdParty contained sflow
|
||||||
|
|
||||||
|
" Shibboleth auth request module for Nginx
|
||||||
|
" https://github.com/nginx-shib/nginx-http-shibboleth
|
||||||
|
syn keyword ngxDirectiveThirdParty contained shib_request
|
||||||
|
syn keyword ngxDirectiveThirdParty contained shib_request_set
|
||||||
|
syn keyword ngxDirectiveThirdParty contained shib_request_use_headers
|
||||||
|
|
||||||
|
" nginx module which adds ability to cache static files
|
||||||
|
" https://github.com/FRiCKLE/ngx_slowfs_cache
|
||||||
|
syn keyword ngxDirectiveThirdParty contained slowfs_big_file_size
|
||||||
|
syn keyword ngxDirectiveThirdParty contained slowfs_cache
|
||||||
|
syn keyword ngxDirectiveThirdParty contained slowfs_cache_key
|
||||||
|
syn keyword ngxDirectiveThirdParty contained slowfs_cache_min_uses
|
||||||
|
syn keyword ngxDirectiveThirdParty contained slowfs_cache_path
|
||||||
|
syn keyword ngxDirectiveThirdParty contained slowfs_cache_purge
|
||||||
|
syn keyword ngxDirectiveThirdParty contained slowfs_cache_valid
|
||||||
|
syn keyword ngxDirectiveThirdParty contained slowfs_temp_path
|
||||||
|
|
||||||
|
" Dynamic Image Transformation Module For nginx
|
||||||
|
" https://github.com/cubicdaiya/ngx_small_light
|
||||||
|
syn keyword ngxDirectiveThirdParty contained small_light
|
||||||
|
syn keyword ngxDirectiveThirdParty contained small_light_buffer
|
||||||
|
syn keyword ngxDirectiveThirdParty contained small_light_getparam_mode
|
||||||
|
syn keyword ngxDirectiveThirdParty contained small_light_imlib2_temp_dir
|
||||||
|
syn keyword ngxDirectiveThirdParty contained small_light_material_dir
|
||||||
|
syn keyword ngxDirectiveThirdParty contained small_light_pattern_define
|
||||||
|
syn keyword ngxDirectiveThirdParty contained small_light_radius_max
|
||||||
|
syn keyword ngxDirectiveThirdParty contained small_light_sigma_max
|
||||||
|
|
||||||
|
" ngx_srcache - Transparent subrequest-based caching layout for arbitrary nginx locations
|
||||||
|
" https://github.com/openresty/srcache-nginx-module
|
||||||
|
syn keyword ngxDirectiveThirdParty contained srcache_buffer
|
||||||
|
syn keyword ngxDirectiveThirdParty contained srcache_default_expire
|
||||||
|
syn keyword ngxDirectiveThirdParty contained srcache_fetch
|
||||||
|
syn keyword ngxDirectiveThirdParty contained srcache_fetch_skip
|
||||||
|
syn keyword ngxDirectiveThirdParty contained srcache_header_buffer_size
|
||||||
|
syn keyword ngxDirectiveThirdParty contained srcache_ignore_content_encoding
|
||||||
|
syn keyword ngxDirectiveThirdParty contained srcache_max_expire
|
||||||
|
syn keyword ngxDirectiveThirdParty contained srcache_methods
|
||||||
|
syn keyword ngxDirectiveThirdParty contained srcache_request_cache_control
|
||||||
|
syn keyword ngxDirectiveThirdParty contained srcache_response_cache_control
|
||||||
|
syn keyword ngxDirectiveThirdParty contained srcache_store
|
||||||
|
syn keyword ngxDirectiveThirdParty contained srcache_store_hide_header
|
||||||
|
syn keyword ngxDirectiveThirdParty contained srcache_store_max_size
|
||||||
|
syn keyword ngxDirectiveThirdParty contained srcache_store_no_cache
|
||||||
|
syn keyword ngxDirectiveThirdParty contained srcache_store_no_store
|
||||||
|
syn keyword ngxDirectiveThirdParty contained srcache_store_pass_header
|
||||||
|
syn keyword ngxDirectiveThirdParty contained srcache_store_private
|
||||||
|
syn keyword ngxDirectiveThirdParty contained srcache_store_ranges
|
||||||
|
syn keyword ngxDirectiveThirdParty contained srcache_store_skip
|
||||||
|
syn keyword ngxDirectiveThirdParty contained srcache_store_statuses
|
||||||
|
|
||||||
|
" NGINX-based VOD Packager
|
||||||
|
" https://github.com/kaltura/nginx-vod-module
|
||||||
|
syn keyword ngxDirectiveThirdParty contained vod
|
||||||
|
syn keyword ngxDirectiveThirdParty contained vod_align_segments_to_key_frames
|
||||||
|
syn keyword ngxDirectiveThirdParty contained vod_apply_dynamic_mapping
|
||||||
|
syn keyword ngxDirectiveThirdParty contained vod_base_url
|
||||||
|
syn keyword ngxDirectiveThirdParty contained vod_bootstrap_segment_durations
|
||||||
|
syn keyword ngxDirectiveThirdParty contained vod_cache_buffer_size
|
||||||
|
syn keyword ngxDirectiveThirdParty contained vod_clip_from_param_name
|
||||||
|
syn keyword ngxDirectiveThirdParty contained vod_clip_to_param_name
|
||||||
|
syn keyword ngxDirectiveThirdParty contained vod_drm_clear_lead_segment_count
|
||||||
|
syn keyword ngxDirectiveThirdParty contained vod_drm_enabled
|
||||||
|
syn keyword ngxDirectiveThirdParty contained vod_drm_info_cache
|
||||||
|
syn keyword ngxDirectiveThirdParty contained vod_drm_max_info_length
|
||||||
|
syn keyword ngxDirectiveThirdParty contained vod_drm_request_uri
|
||||||
|
syn keyword ngxDirectiveThirdParty contained vod_drm_single_key
|
||||||
|
syn keyword ngxDirectiveThirdParty contained vod_drm_upstream_location
|
||||||
|
syn keyword ngxDirectiveThirdParty contained vod_dynamic_clip_map_uri
|
||||||
|
syn keyword ngxDirectiveThirdParty contained vod_dynamic_mapping_cache
|
||||||
|
syn keyword ngxDirectiveThirdParty contained vod_encryption_iv_seed
|
||||||
|
syn keyword ngxDirectiveThirdParty contained vod_expires
|
||||||
|
syn keyword ngxDirectiveThirdParty contained vod_expires_live
|
||||||
|
syn keyword ngxDirectiveThirdParty contained vod_expires_live_time_dependent
|
||||||
|
syn keyword ngxDirectiveThirdParty contained vod_fallback_upstream_location
|
||||||
|
syn keyword ngxDirectiveThirdParty contained vod_force_continuous_timestamps
|
||||||
|
syn keyword ngxDirectiveThirdParty contained vod_force_playlist_type_vod
|
||||||
|
syn keyword ngxDirectiveThirdParty contained vod_gop_look_ahead
|
||||||
|
syn keyword ngxDirectiveThirdParty contained vod_gop_look_behind
|
||||||
|
syn keyword ngxDirectiveThirdParty contained vod_ignore_edit_list
|
||||||
|
syn keyword ngxDirectiveThirdParty contained vod_initial_read_size
|
||||||
|
syn keyword ngxDirectiveThirdParty contained vod_lang_param_name
|
||||||
|
syn keyword ngxDirectiveThirdParty contained vod_last_modified
|
||||||
|
syn keyword ngxDirectiveThirdParty contained vod_last_modified_types
|
||||||
|
syn keyword ngxDirectiveThirdParty contained vod_live_mapping_cache
|
||||||
|
syn keyword ngxDirectiveThirdParty contained vod_live_response_cache
|
||||||
|
syn keyword ngxDirectiveThirdParty contained vod_live_window_duration
|
||||||
|
syn keyword ngxDirectiveThirdParty contained vod_manifest_duration_policy
|
||||||
|
syn keyword ngxDirectiveThirdParty contained vod_manifest_segment_durations_mode
|
||||||
|
syn keyword ngxDirectiveThirdParty contained vod_mapping_cache
|
||||||
|
syn keyword ngxDirectiveThirdParty contained vod_max_frames_size
|
||||||
|
syn keyword ngxDirectiveThirdParty contained vod_max_mapping_response_size
|
||||||
|
syn keyword ngxDirectiveThirdParty contained vod_max_metadata_size
|
||||||
|
syn keyword ngxDirectiveThirdParty contained vod_max_upstream_headers_size
|
||||||
|
syn keyword ngxDirectiveThirdParty contained vod_media_set_map_uri
|
||||||
|
syn keyword ngxDirectiveThirdParty contained vod_media_set_override_json
|
||||||
|
syn keyword ngxDirectiveThirdParty contained vod_metadata_cache
|
||||||
|
syn keyword ngxDirectiveThirdParty contained vod_min_single_nalu_per_frame_segment
|
||||||
|
syn keyword ngxDirectiveThirdParty contained vod_mode
|
||||||
|
syn keyword ngxDirectiveThirdParty contained vod_multi_uri_suffix
|
||||||
|
syn keyword ngxDirectiveThirdParty contained vod_notification_uri
|
||||||
|
syn keyword ngxDirectiveThirdParty contained vod_open_file_thread_pool
|
||||||
|
syn keyword ngxDirectiveThirdParty contained vod_output_buffer_pool
|
||||||
|
syn keyword ngxDirectiveThirdParty contained vod_parse_hdlr_name
|
||||||
|
syn keyword ngxDirectiveThirdParty contained vod_path_response_postfix
|
||||||
|
syn keyword ngxDirectiveThirdParty contained vod_path_response_prefix
|
||||||
|
syn keyword ngxDirectiveThirdParty contained vod_performance_counters
|
||||||
|
syn keyword ngxDirectiveThirdParty contained vod_proxy_header_name
|
||||||
|
syn keyword ngxDirectiveThirdParty contained vod_proxy_header_value
|
||||||
|
syn keyword ngxDirectiveThirdParty contained vod_redirect_segments_url
|
||||||
|
syn keyword ngxDirectiveThirdParty contained vod_remote_upstream_location
|
||||||
|
syn keyword ngxDirectiveThirdParty contained vod_response_cache
|
||||||
|
syn keyword ngxDirectiveThirdParty contained vod_secret_key
|
||||||
|
syn keyword ngxDirectiveThirdParty contained vod_segment_count_policy
|
||||||
|
syn keyword ngxDirectiveThirdParty contained vod_segment_duration
|
||||||
|
syn keyword ngxDirectiveThirdParty contained vod_segments_base_url
|
||||||
|
syn keyword ngxDirectiveThirdParty contained vod_source_clip_map_uri
|
||||||
|
syn keyword ngxDirectiveThirdParty contained vod_speed_param_name
|
||||||
|
syn keyword ngxDirectiveThirdParty contained vod_status
|
||||||
|
syn keyword ngxDirectiveThirdParty contained vod_time_shift_param_name
|
||||||
|
syn keyword ngxDirectiveThirdParty contained vod_tracks_param_name
|
||||||
|
syn keyword ngxDirectiveThirdParty contained vod_upstream_extra_args
|
||||||
|
syn keyword ngxDirectiveThirdParty contained vod_upstream_location
|
||||||
|
|
||||||
|
" Nginx virtual host traffic status module
|
||||||
|
" https://github.com/vozlt/nginx-module-vts
|
||||||
|
syn keyword ngxDirectiveThirdParty contained vhost_traffic_status
|
||||||
|
syn keyword ngxDirectiveThirdParty contained vhost_traffic_status_average_method
|
||||||
|
syn keyword ngxDirectiveThirdParty contained vhost_traffic_status_bypass_limit
|
||||||
|
syn keyword ngxDirectiveThirdParty contained vhost_traffic_status_bypass_stats
|
||||||
|
syn keyword ngxDirectiveThirdParty contained vhost_traffic_status_display
|
||||||
|
syn keyword ngxDirectiveThirdParty contained vhost_traffic_status_display_format
|
||||||
|
syn keyword ngxDirectiveThirdParty contained vhost_traffic_status_display_jsonp
|
||||||
|
syn keyword ngxDirectiveThirdParty contained vhost_traffic_status_display_sum_key
|
||||||
|
syn keyword ngxDirectiveThirdParty contained vhost_traffic_status_dump
|
||||||
|
syn keyword ngxDirectiveThirdParty contained vhost_traffic_status_filter
|
||||||
|
syn keyword ngxDirectiveThirdParty contained vhost_traffic_status_filter_by_host
|
||||||
|
syn keyword ngxDirectiveThirdParty contained vhost_traffic_status_filter_by_set_key
|
||||||
|
syn keyword ngxDirectiveThirdParty contained vhost_traffic_status_filter_check_duplicate
|
||||||
|
syn keyword ngxDirectiveThirdParty contained vhost_traffic_status_limit
|
||||||
|
syn keyword ngxDirectiveThirdParty contained vhost_traffic_status_limit_check_duplicate
|
||||||
|
syn keyword ngxDirectiveThirdParty contained vhost_traffic_status_limit_traffic
|
||||||
|
syn keyword ngxDirectiveThirdParty contained vhost_traffic_status_limit_traffic_by_set_key
|
||||||
|
syn keyword ngxDirectiveThirdParty contained vhost_traffic_status_set_by_filter
|
||||||
|
syn keyword ngxDirectiveThirdParty contained vhost_traffic_status_zone
|
||||||
|
|
||||||
|
" xss-nginx-module - Native cross-site scripting support in nginx
|
||||||
|
" https://github.com/openresty/xss-nginx-module
|
||||||
|
syn keyword ngxDirectiveThirdParty contained xss_callback_arg
|
||||||
|
syn keyword ngxDirectiveThirdParty contained xss_check_status
|
||||||
|
syn keyword ngxDirectiveThirdParty contained xss_get
|
||||||
|
syn keyword ngxDirectiveThirdParty contained xss_input_types
|
||||||
|
syn keyword ngxDirectiveThirdParty contained xss_output_type
|
||||||
|
syn keyword ngxDirectiveThirdParty contained xss_override_status
|
||||||
|
|
||||||
|
" Add support for array-typed variables to nginx config files
|
||||||
|
" https://github.com/openresty/array-var-nginx-module
|
||||||
|
syn keyword ngxDirectiveThirdParty contained array_join
|
||||||
|
syn keyword ngxDirectiveThirdParty contained array_map
|
||||||
|
syn keyword ngxDirectiveThirdParty contained array_map_op
|
||||||
|
syn keyword ngxDirectiveThirdParty contained array_split
|
||||||
|
|
||||||
|
" NGINX module for Brotli compression
|
||||||
|
" https://github.com/eustas/ngx_brotli
|
||||||
|
syn keyword ngxDirectiveThirdParty contained brotli
|
||||||
|
syn keyword ngxDirectiveThirdParty contained brotli_buffers
|
||||||
|
syn keyword ngxDirectiveThirdParty contained brotli_comp_level
|
||||||
|
syn keyword ngxDirectiveThirdParty contained brotli_min_length
|
||||||
|
syn keyword ngxDirectiveThirdParty contained brotli_static
|
||||||
|
syn keyword ngxDirectiveThirdParty contained brotli_types
|
||||||
|
syn keyword ngxDirectiveThirdParty contained brotli_window
|
||||||
|
|
||||||
|
" form-input-nginx-module
|
||||||
|
" https://github.com/calio/form-input-nginx-module
|
||||||
|
syn keyword ngxDirectiveThirdParty contained set_form_input
|
||||||
|
syn keyword ngxDirectiveThirdParty contained set_form_input_multi
|
||||||
|
|
||||||
|
" character conversion nginx module using libiconv
|
||||||
|
" https://github.com/calio/iconv-nginx-module
|
||||||
|
syn keyword ngxDirectiveThirdParty contained iconv_buffer_size
|
||||||
|
syn keyword ngxDirectiveThirdParty contained iconv_filter
|
||||||
|
syn keyword ngxDirectiveThirdParty contained set_iconv
|
||||||
|
|
||||||
|
" 3rd party modules list taken from
|
||||||
|
" https://www.nginx.com/resources/wiki/modules/
|
||||||
|
" ---------------------------------------------
|
||||||
|
|
||||||
|
" Nginx Module for Authenticating Akamai G2O requests
|
||||||
|
" https://github.com/kaltura/nginx_mod_akamai_g2o
|
||||||
|
syn keyword ngxDirectiveThirdParty contained g2o
|
||||||
|
syn keyword ngxDirectiveThirdParty contained g2o_data_header
|
||||||
|
syn keyword ngxDirectiveThirdParty contained g2o_hash_function
|
||||||
|
syn keyword ngxDirectiveThirdParty contained g2o_key
|
||||||
|
syn keyword ngxDirectiveThirdParty contained g2o_log_level
|
||||||
|
syn keyword ngxDirectiveThirdParty contained g2o_nonce
|
||||||
|
syn keyword ngxDirectiveThirdParty contained g2o_sign_header
|
||||||
|
syn keyword ngxDirectiveThirdParty contained g2o_time_window
|
||||||
|
syn keyword ngxDirectiveThirdParty contained g2o_version
|
||||||
|
|
||||||
|
" nginx_lua_module
|
||||||
|
" https://github.com/alacner/nginx_lua_module
|
||||||
|
syn keyword ngxDirectiveThirdParty contained lua_file
|
||||||
|
|
||||||
|
" Nginx Audio Track for HTTP Live Streaming
|
||||||
|
" https://github.com/flavioribeiro/nginx-audio-track-for-hls-module
|
||||||
|
syn keyword ngxDirectiveThirdParty contained ngx_hls_audio_track
|
||||||
|
syn keyword ngxDirectiveThirdParty contained ngx_hls_audio_track_output_format
|
||||||
|
syn keyword ngxDirectiveThirdParty contained ngx_hls_audio_track_output_header
|
||||||
|
syn keyword ngxDirectiveThirdParty contained ngx_hls_audio_track_rootpath
|
||||||
|
|
||||||
|
" A Nginx module to dump backtrace when a worker process exits abnormally
|
||||||
|
" https://github.com/alibaba/nginx-backtrace
|
||||||
|
syn keyword ngxDirectiveThirdParty contained backtrace_log
|
||||||
|
syn keyword ngxDirectiveThirdParty contained backtrace_max_stack_size
|
||||||
|
|
||||||
|
" circle_gif module
|
||||||
|
" https://github.com/evanmiller/nginx_circle_gif
|
||||||
|
syn keyword ngxDirectiveThirdParty contained circle_gif
|
||||||
|
syn keyword ngxDirectiveThirdParty contained circle_gif_max_radius
|
||||||
|
syn keyword ngxDirectiveThirdParty contained circle_gif_min_radius
|
||||||
|
syn keyword ngxDirectiveThirdParty contained circle_gif_step_radius
|
||||||
|
|
||||||
|
" Upstream Consistent Hash
|
||||||
|
" https://github.com/replay/ngx_http_consistent_hash
|
||||||
|
syn keyword ngxDirectiveThirdParty contained consistent_hash
|
||||||
|
|
||||||
|
" Nginx module for etags on dynamic content
|
||||||
|
" https://github.com/kali/nginx-dynamic-etags
|
||||||
|
syn keyword ngxDirectiveThirdParty contained dynamic_etags
|
||||||
|
|
||||||
|
" Enhanced Nginx Memcached Module
|
||||||
|
" https://github.com/bpaquet/ngx_http_enhanced_memcached_module
|
||||||
|
syn keyword ngxDirectiveThirdParty contained enhanced_memcached_allow_delete
|
||||||
|
syn keyword ngxDirectiveThirdParty contained enhanced_memcached_allow_put
|
||||||
|
syn keyword ngxDirectiveThirdParty contained enhanced_memcached_bind
|
||||||
|
syn keyword ngxDirectiveThirdParty contained enhanced_memcached_buffer_size
|
||||||
|
syn keyword ngxDirectiveThirdParty contained enhanced_memcached_connect_timeout
|
||||||
|
syn keyword ngxDirectiveThirdParty contained enhanced_memcached_flush
|
||||||
|
syn keyword ngxDirectiveThirdParty contained enhanced_memcached_flush_namespace
|
||||||
|
syn keyword ngxDirectiveThirdParty contained enhanced_memcached_hash_keys_with_md5
|
||||||
|
syn keyword ngxDirectiveThirdParty contained enhanced_memcached_pass
|
||||||
|
syn keyword ngxDirectiveThirdParty contained enhanced_memcached_read_timeout
|
||||||
|
syn keyword ngxDirectiveThirdParty contained enhanced_memcached_send_timeout
|
||||||
|
syn keyword ngxDirectiveThirdParty contained enhanced_memcached_stats
|
||||||
|
|
||||||
|
" nginx max connections queue
|
||||||
|
" https://github.com/ezmobius/nginx-ey-balancer
|
||||||
|
syn keyword ngxDirectiveThirdParty contained max_connections_max_queue_length
|
||||||
|
syn keyword ngxDirectiveThirdParty contained max_connections_queue_timeout
|
||||||
|
|
||||||
|
" Nginx module for POST authentication and authorization
|
||||||
|
" https://github.com/veruu/ngx_form_auth
|
||||||
|
syn keyword ngxDirectiveThirdParty contained form_auth
|
||||||
|
syn keyword ngxDirectiveThirdParty contained form_auth_login
|
||||||
|
syn keyword ngxDirectiveThirdParty contained form_auth_pam_service
|
||||||
|
syn keyword ngxDirectiveThirdParty contained form_auth_password
|
||||||
|
syn keyword ngxDirectiveThirdParty contained form_auth_remote_user
|
||||||
|
|
||||||
|
" ngx_http_accounting_module
|
||||||
|
" https://github.com/Lax/ngx_http_accounting_module
|
||||||
|
syn keyword ngxDirectiveThirdParty contained http_accounting
|
||||||
|
syn keyword ngxDirectiveThirdParty contained http_accounting_id
|
||||||
|
syn keyword ngxDirectiveThirdParty contained http_accounting_interval
|
||||||
|
syn keyword ngxDirectiveThirdParty contained http_accounting_log
|
||||||
|
syn keyword ngxDirectiveThirdParty contained http_accounting_perturb
|
||||||
|
|
||||||
|
" concatenating files in a given context: CSS and JS files usually
|
||||||
|
" https://github.com/alibaba/nginx-http-concat
|
||||||
|
syn keyword ngxDirectiveThirdParty contained concat
|
||||||
|
syn keyword ngxDirectiveThirdParty contained concat_delimiter
|
||||||
|
syn keyword ngxDirectiveThirdParty contained concat_ignore_file_error
|
||||||
|
syn keyword ngxDirectiveThirdParty contained concat_max_files
|
||||||
|
syn keyword ngxDirectiveThirdParty contained concat_types
|
||||||
|
syn keyword ngxDirectiveThirdParty contained concat_unique
|
||||||
|
|
||||||
|
" update upstreams' config by restful interface
|
||||||
|
" https://github.com/yzprofile/ngx_http_dyups_module
|
||||||
|
syn keyword ngxDirectiveThirdParty contained dyups_interface
|
||||||
|
syn keyword ngxDirectiveThirdParty contained dyups_read_msg_log
|
||||||
|
syn keyword ngxDirectiveThirdParty contained dyups_read_msg_timeout
|
||||||
|
syn keyword ngxDirectiveThirdParty contained dyups_shm_zone_size
|
||||||
|
syn keyword ngxDirectiveThirdParty contained dyups_trylock
|
||||||
|
syn keyword ngxDirectiveThirdParty contained dyups_upstream_conf
|
||||||
|
|
||||||
|
" add given content to the end of the response according to the condition specified
|
||||||
|
" https://github.com/flygoast/ngx_http_footer_if_filter
|
||||||
|
syn keyword ngxDirectiveThirdParty contained footer_if
|
||||||
|
|
||||||
|
" NGINX HTTP Internal Redirect Module
|
||||||
|
" https://github.com/flygoast/ngx_http_internal_redirect
|
||||||
|
syn keyword ngxDirectiveThirdParty contained internal_redirect_if
|
||||||
|
syn keyword ngxDirectiveThirdParty contained internal_redirect_if_no_postpone
|
||||||
|
|
||||||
|
" nginx-ip-blocker
|
||||||
|
" https://github.com/tmthrgd/nginx-ip-blocker
|
||||||
|
syn keyword ngxDirectiveThirdParty contained ip_blocker
|
||||||
|
|
||||||
|
" IP2Location Nginx
|
||||||
|
" https://github.com/chrislim2888/ip2location-nginx
|
||||||
|
syn keyword ngxDirectiveThirdParty contained ip2location_database
|
||||||
|
|
||||||
|
" Limit upload rate
|
||||||
|
" https://github.com/cfsego/limit_upload_rate
|
||||||
|
syn keyword ngxDirectiveThirdParty contained limit_upload_rate
|
||||||
|
syn keyword ngxDirectiveThirdParty contained limit_upload_rate_after
|
||||||
|
syn keyword ngxDirectiveThirdParty contained limit_upload_rate_log_level
|
||||||
|
|
||||||
|
" limit the number of connections to upstream
|
||||||
|
" https://github.com/cfsego/nginx-limit-upstream
|
||||||
|
syn keyword ngxDirectiveThirdParty contained limit_upstream_conn
|
||||||
|
syn keyword ngxDirectiveThirdParty contained limit_upstream_log_level
|
||||||
|
syn keyword ngxDirectiveThirdParty contained limit_upstream_zone
|
||||||
|
|
||||||
|
" conditional accesslog for nginx
|
||||||
|
" https://github.com/cfsego/ngx_log_if
|
||||||
|
syn keyword ngxDirectiveThirdParty contained access_log_bypass_if
|
||||||
|
|
||||||
|
" log messages over ZeroMQ
|
||||||
|
" https://github.com/alticelabs/nginx-log-zmq
|
||||||
|
syn keyword ngxDirectiveThirdParty contained log_zmq_endpoint
|
||||||
|
syn keyword ngxDirectiveThirdParty contained log_zmq_format
|
||||||
|
syn keyword ngxDirectiveThirdParty contained log_zmq_off
|
||||||
|
syn keyword ngxDirectiveThirdParty contained log_zmq_server
|
||||||
|
|
||||||
|
" simple module to uppercase/lowercase strings in the nginx config
|
||||||
|
" https://github.com/replay/ngx_http_lower_upper_case
|
||||||
|
syn keyword ngxDirectiveThirdParty contained lower
|
||||||
|
syn keyword ngxDirectiveThirdParty contained upper
|
||||||
|
|
||||||
|
" content filter for nginx, which returns the md5 hash of the content otherwise returned
|
||||||
|
" https://github.com/kainswor/nginx_md5_filter
|
||||||
|
syn keyword ngxDirectiveThirdParty contained md5_filter
|
||||||
|
|
||||||
|
" Non-blocking upstream module for Nginx to connect to MongoDB
|
||||||
|
" https://github.com/simpl/ngx_mongo
|
||||||
|
syn keyword ngxDirectiveThirdParty contained mongo_auth
|
||||||
|
syn keyword ngxDirectiveThirdParty contained mongo_bind
|
||||||
|
syn keyword ngxDirectiveThirdParty contained mongo_buffer_size
|
||||||
|
syn keyword ngxDirectiveThirdParty contained mongo_buffering
|
||||||
|
syn keyword ngxDirectiveThirdParty contained mongo_buffers
|
||||||
|
syn keyword ngxDirectiveThirdParty contained mongo_busy_buffers_size
|
||||||
|
syn keyword ngxDirectiveThirdParty contained mongo_connect_timeout
|
||||||
|
syn keyword ngxDirectiveThirdParty contained mongo_json
|
||||||
|
syn keyword ngxDirectiveThirdParty contained mongo_next_upstream
|
||||||
|
syn keyword ngxDirectiveThirdParty contained mongo_pass
|
||||||
|
syn keyword ngxDirectiveThirdParty contained mongo_query
|
||||||
|
syn keyword ngxDirectiveThirdParty contained mongo_read_timeout
|
||||||
|
syn keyword ngxDirectiveThirdParty contained mongo_send_timeout
|
||||||
|
|
||||||
|
" Nginx OCSP processing module designed for response caching
|
||||||
|
" https://github.com/kyprizel/nginx_ocsp_proxy-module
|
||||||
|
syn keyword ngxDirectiveThirdParty contained ocsp_cache_timeout
|
||||||
|
syn keyword ngxDirectiveThirdParty contained ocsp_proxy
|
||||||
|
|
||||||
|
" Nginx OpenSSL version check at startup
|
||||||
|
" https://github.com/apcera/nginx-openssl-version
|
||||||
|
syn keyword ngxDirectiveThirdParty contained openssl_builddate_minimum
|
||||||
|
syn keyword ngxDirectiveThirdParty contained openssl_version_minimum
|
||||||
|
|
||||||
|
" Automatic PageSpeed optimization module for Nginx
|
||||||
|
" https://github.com/pagespeed/ngx_pagespeed
|
||||||
|
syn keyword ngxDirectiveThirdParty contained pagespeed
|
||||||
|
|
||||||
|
" PECL Memcache standard hashing compatible loadbalancer for Nginx
|
||||||
|
" https://github.com/replay/ngx_http_php_memcache_standard_balancer
|
||||||
|
syn keyword ngxDirectiveThirdParty contained hash_key
|
||||||
|
|
||||||
|
" nginx module to parse php sessions
|
||||||
|
" https://github.com/replay/ngx_http_php_session
|
||||||
|
syn keyword ngxDirectiveThirdParty contained php_session_parse
|
||||||
|
syn keyword ngxDirectiveThirdParty contained php_session_strip_formatting
|
||||||
|
|
||||||
|
" Nginx HTTP rDNS module
|
||||||
|
" https://github.com/flant/nginx-http-rdns
|
||||||
|
syn keyword ngxDirectiveThirdParty contained rdns
|
||||||
|
syn keyword ngxDirectiveThirdParty contained rdns_allow
|
||||||
|
syn keyword ngxDirectiveThirdParty contained rdns_deny
|
||||||
|
|
||||||
|
" Streaming regular expression replacement in response bodies
|
||||||
|
" https://github.com/openresty/replace-filter-nginx-module
|
||||||
|
syn keyword ngxDirectiveThirdParty contained replace_filter
|
||||||
|
syn keyword ngxDirectiveThirdParty contained replace_filter_last_modified
|
||||||
|
syn keyword ngxDirectiveThirdParty contained replace_filter_max_buffered_size
|
||||||
|
syn keyword ngxDirectiveThirdParty contained replace_filter_skip
|
||||||
|
syn keyword ngxDirectiveThirdParty contained replace_filter_types
|
||||||
|
|
||||||
|
" Link RRDtool's graphing facilities directly into nginx
|
||||||
|
" https://github.com/evanmiller/mod_rrd_graph
|
||||||
|
syn keyword ngxDirectiveThirdParty contained rrd_graph
|
||||||
|
syn keyword ngxDirectiveThirdParty contained rrd_graph_root
|
||||||
|
|
||||||
|
" Module for nginx to proxy rtmp using http protocol
|
||||||
|
" https://github.com/kwojtek/nginx-rtmpt-proxy-module
|
||||||
|
syn keyword ngxDirectiveThirdParty contained rtmpt_proxy
|
||||||
|
syn keyword ngxDirectiveThirdParty contained rtmpt_proxy_http_timeout
|
||||||
|
syn keyword ngxDirectiveThirdParty contained rtmpt_proxy_rtmp_timeout
|
||||||
|
syn keyword ngxDirectiveThirdParty contained rtmpt_proxy_stat
|
||||||
|
syn keyword ngxDirectiveThirdParty contained rtmpt_proxy_stylesheet
|
||||||
|
syn keyword ngxDirectiveThirdParty contained rtmpt_proxy_target
|
||||||
|
|
||||||
|
" Syntactically Awesome NGINX Module
|
||||||
|
" https://github.com/mneudert/sass-nginx-module
|
||||||
|
syn keyword ngxDirectiveThirdParty contained sass_compile
|
||||||
|
syn keyword ngxDirectiveThirdParty contained sass_error_log
|
||||||
|
syn keyword ngxDirectiveThirdParty contained sass_include_path
|
||||||
|
syn keyword ngxDirectiveThirdParty contained sass_indent
|
||||||
|
syn keyword ngxDirectiveThirdParty contained sass_is_indented_syntax
|
||||||
|
syn keyword ngxDirectiveThirdParty contained sass_linefeed
|
||||||
|
syn keyword ngxDirectiveThirdParty contained sass_output_style
|
||||||
|
syn keyword ngxDirectiveThirdParty contained sass_precision
|
||||||
|
syn keyword ngxDirectiveThirdParty contained sass_source_comments
|
||||||
|
syn keyword ngxDirectiveThirdParty contained sass_source_map_embed
|
||||||
|
|
||||||
|
" Nginx Selective Cache Purge Module
|
||||||
|
" https://github.com/wandenberg/nginx-selective-cache-purge-module
|
||||||
|
syn keyword ngxDirectiveThirdParty contained selective_cache_purge_query
|
||||||
|
syn keyword ngxDirectiveThirdParty contained selective_cache_purge_redis_database
|
||||||
|
syn keyword ngxDirectiveThirdParty contained selective_cache_purge_redis_host
|
||||||
|
syn keyword ngxDirectiveThirdParty contained selective_cache_purge_redis_port
|
||||||
|
syn keyword ngxDirectiveThirdParty contained selective_cache_purge_redis_unix_socket
|
||||||
|
|
||||||
|
" cconv nginx module
|
||||||
|
" https://github.com/liseen/set-cconv-nginx-module
|
||||||
|
syn keyword ngxDirectiveThirdParty contained set_cconv_to_simp
|
||||||
|
syn keyword ngxDirectiveThirdParty contained set_cconv_to_trad
|
||||||
|
syn keyword ngxDirectiveThirdParty contained set_pinyin_to_normal
|
||||||
|
|
||||||
|
" Nginx module that allows the setting of variables to the value of a variety of hashes
|
||||||
|
" https://github.com/simpl/ngx_http_set_hash
|
||||||
|
syn keyword ngxDirectiveThirdParty contained set_md5
|
||||||
|
syn keyword ngxDirectiveThirdParty contained set_md5_upper
|
||||||
|
syn keyword ngxDirectiveThirdParty contained set_murmur2
|
||||||
|
syn keyword ngxDirectiveThirdParty contained set_murmur2_upper
|
||||||
|
syn keyword ngxDirectiveThirdParty contained set_sha1
|
||||||
|
syn keyword ngxDirectiveThirdParty contained set_sha1_upper
|
||||||
|
|
||||||
|
" Nginx module to set the language of a request based on a number of options
|
||||||
|
" https://github.com/simpl/ngx_http_set_lang
|
||||||
|
syn keyword ngxDirectiveThirdParty contained lang_cookie
|
||||||
|
syn keyword ngxDirectiveThirdParty contained lang_get_var
|
||||||
|
syn keyword ngxDirectiveThirdParty contained lang_host
|
||||||
|
syn keyword ngxDirectiveThirdParty contained lang_list
|
||||||
|
syn keyword ngxDirectiveThirdParty contained lang_post_var
|
||||||
|
syn keyword ngxDirectiveThirdParty contained lang_referer
|
||||||
|
syn keyword ngxDirectiveThirdParty contained set_lang
|
||||||
|
syn keyword ngxDirectiveThirdParty contained set_lang_method
|
||||||
|
|
||||||
|
" Nginx Sorted Querystring Module
|
||||||
|
" https://github.com/wandenberg/nginx-sorted-querystring-module
|
||||||
|
syn keyword ngxDirectiveThirdParty contained sorted_querysting_filter_parameter
|
||||||
|
|
||||||
|
" Nginx upstream module for Sphinx 2.x search daemon
|
||||||
|
" https://github.com/reeteshranjan/sphinx2-nginx-module
|
||||||
|
syn keyword ngxDirectiveThirdParty contained sphinx2_bind
|
||||||
|
syn keyword ngxDirectiveThirdParty contained sphinx2_buffer_size
|
||||||
|
syn keyword ngxDirectiveThirdParty contained sphinx2_connect_timeout
|
||||||
|
syn keyword ngxDirectiveThirdParty contained sphinx2_next_upstream
|
||||||
|
syn keyword ngxDirectiveThirdParty contained sphinx2_pass
|
||||||
|
syn keyword ngxDirectiveThirdParty contained sphinx2_read_timeout
|
||||||
|
syn keyword ngxDirectiveThirdParty contained sphinx2_send_timeout
|
||||||
|
|
||||||
|
" Nginx module for retrieving user attributes and groups from SSSD
|
||||||
|
" https://github.com/veruu/ngx_sssd_info
|
||||||
|
syn keyword ngxDirectiveThirdParty contained sssd_info
|
||||||
|
syn keyword ngxDirectiveThirdParty contained sssd_info_attribute
|
||||||
|
syn keyword ngxDirectiveThirdParty contained sssd_info_attribute_separator
|
||||||
|
syn keyword ngxDirectiveThirdParty contained sssd_info_attributes
|
||||||
|
syn keyword ngxDirectiveThirdParty contained sssd_info_group
|
||||||
|
syn keyword ngxDirectiveThirdParty contained sssd_info_group_separator
|
||||||
|
syn keyword ngxDirectiveThirdParty contained sssd_info_groups
|
||||||
|
syn keyword ngxDirectiveThirdParty contained sssd_info_output_to
|
||||||
|
|
||||||
|
" An nginx module for sending statistics to statsd
|
||||||
|
" https://github.com/zebrafishlabs/nginx-statsd
|
||||||
|
syn keyword ngxDirectiveThirdParty contained statsd_count
|
||||||
|
syn keyword ngxDirectiveThirdParty contained statsd_sample_rate
|
||||||
|
syn keyword ngxDirectiveThirdParty contained statsd_server
|
||||||
|
syn keyword ngxDirectiveThirdParty contained statsd_timing
|
||||||
|
|
||||||
|
" ngx_stream_echo - TCP/stream echo module for NGINX (a port of the ngx_http_echo module)
|
||||||
|
" https://github.com/openresty/stream-echo-nginx-module
|
||||||
|
syn keyword ngxDirectiveThirdParty contained echo
|
||||||
|
syn keyword ngxDirectiveThirdParty contained echo_client_error_log_level
|
||||||
|
syn keyword ngxDirectiveThirdParty contained echo_discard_request
|
||||||
|
syn keyword ngxDirectiveThirdParty contained echo_duplicate
|
||||||
|
syn keyword ngxDirectiveThirdParty contained echo_flush_wait
|
||||||
|
syn keyword ngxDirectiveThirdParty contained echo_lingering_close
|
||||||
|
syn keyword ngxDirectiveThirdParty contained echo_lingering_time
|
||||||
|
syn keyword ngxDirectiveThirdParty contained echo_lingering_timeout
|
||||||
|
syn keyword ngxDirectiveThirdParty contained echo_read_buffer_size
|
||||||
|
syn keyword ngxDirectiveThirdParty contained echo_read_bytes
|
||||||
|
syn keyword ngxDirectiveThirdParty contained echo_read_line
|
||||||
|
syn keyword ngxDirectiveThirdParty contained echo_read_timeout
|
||||||
|
syn keyword ngxDirectiveThirdParty contained echo_request_data
|
||||||
|
syn keyword ngxDirectiveThirdParty contained echo_send_timeout
|
||||||
|
syn keyword ngxDirectiveThirdParty contained echo_sleep
|
||||||
|
|
||||||
|
" Embed the power of Lua into NGINX TCP/UDP servers
|
||||||
|
" https://github.com/openresty/stream-lua-nginx-module
|
||||||
|
syn keyword ngxDirectiveThirdParty contained lua_add_variable
|
||||||
|
syn keyword ngxDirectiveThirdParty contained preread_by_lua_block
|
||||||
|
syn keyword ngxDirectiveThirdParty contained preread_by_lua_file
|
||||||
|
syn keyword ngxDirectiveThirdParty contained preread_by_lua_no_postpone
|
||||||
|
|
||||||
|
" nginx-upsync-module
|
||||||
|
" https://github.com/weibocom/nginx-upsync-module
|
||||||
|
syn keyword ngxDirectiveThirdParty contained upstream_show
|
||||||
|
syn keyword ngxDirectiveThirdParty contained upsync
|
||||||
|
syn keyword ngxDirectiveThirdParty contained upsync_dump_path
|
||||||
|
syn keyword ngxDirectiveThirdParty contained upsync_lb
|
||||||
|
|
||||||
|
" Whitespace stripper for nginx
|
||||||
|
" https://github.com/evanmiller/mod_strip
|
||||||
|
syn keyword ngxDirectiveThirdParty contained strip
|
||||||
|
|
||||||
|
" Split one big HTTP/Range request to multiple subrange requesets
|
||||||
|
" https://github.com/Qihoo360/ngx_http_subrange_module
|
||||||
|
syn keyword ngxDirectiveThirdParty contained subrange
|
||||||
|
|
||||||
|
" summarizer-nginx-module
|
||||||
|
" https://github.com/reeteshranjan/summarizer-nginx-module
|
||||||
|
syn keyword ngxDirectiveThirdParty contained summarizer_bind
|
||||||
|
syn keyword ngxDirectiveThirdParty contained summarizer_buffer_size
|
||||||
|
syn keyword ngxDirectiveThirdParty contained summarizer_connect_timeout
|
||||||
|
syn keyword ngxDirectiveThirdParty contained summarizer_next_upstream
|
||||||
|
syn keyword ngxDirectiveThirdParty contained summarizer_pass
|
||||||
|
syn keyword ngxDirectiveThirdParty contained summarizer_read_timeout
|
||||||
|
syn keyword ngxDirectiveThirdParty contained summarizer_send_timeout
|
||||||
|
|
||||||
|
" nginx module providing API to communicate with supervisord and manage (start/stop) backends on-demand
|
||||||
|
" https://github.com/FRiCKLE/ngx_supervisord
|
||||||
|
syn keyword ngxDirectiveThirdParty contained supervisord
|
||||||
|
syn keyword ngxDirectiveThirdParty contained supervisord_inherit_backend_status
|
||||||
|
syn keyword ngxDirectiveThirdParty contained supervisord_name
|
||||||
|
syn keyword ngxDirectiveThirdParty contained supervisord_start
|
||||||
|
syn keyword ngxDirectiveThirdParty contained supervisord_stop
|
||||||
|
|
||||||
|
" simple robot mitigation module using cookie based challenge/response technique. Not supported any more.
|
||||||
|
" https://github.com/kyprizel/testcookie-nginx-module
|
||||||
|
syn keyword ngxDirectiveThirdParty contained testcookie
|
||||||
|
syn keyword ngxDirectiveThirdParty contained testcookie_arg
|
||||||
|
syn keyword ngxDirectiveThirdParty contained testcookie_deny_keepalive
|
||||||
|
syn keyword ngxDirectiveThirdParty contained testcookie_domain
|
||||||
|
syn keyword ngxDirectiveThirdParty contained testcookie_expires
|
||||||
|
syn keyword ngxDirectiveThirdParty contained testcookie_fallback
|
||||||
|
syn keyword ngxDirectiveThirdParty contained testcookie_get_only
|
||||||
|
syn keyword ngxDirectiveThirdParty contained testcookie_httponly_flag
|
||||||
|
syn keyword ngxDirectiveThirdParty contained testcookie_https_location
|
||||||
|
syn keyword ngxDirectiveThirdParty contained testcookie_internal
|
||||||
|
syn keyword ngxDirectiveThirdParty contained testcookie_max_attempts
|
||||||
|
syn keyword ngxDirectiveThirdParty contained testcookie_name
|
||||||
|
syn keyword ngxDirectiveThirdParty contained testcookie_p3p
|
||||||
|
syn keyword ngxDirectiveThirdParty contained testcookie_pass
|
||||||
|
syn keyword ngxDirectiveThirdParty contained testcookie_path
|
||||||
|
syn keyword ngxDirectiveThirdParty contained testcookie_port_in_redirect
|
||||||
|
syn keyword ngxDirectiveThirdParty contained testcookie_redirect_via_refresh
|
||||||
|
syn keyword ngxDirectiveThirdParty contained testcookie_refresh_encrypt_cookie
|
||||||
|
syn keyword ngxDirectiveThirdParty contained testcookie_refresh_encrypt_cookie_iv
|
||||||
|
syn keyword ngxDirectiveThirdParty contained testcookie_refresh_encrypt_cookie_key
|
||||||
|
syn keyword ngxDirectiveThirdParty contained testcookie_refresh_status
|
||||||
|
syn keyword ngxDirectiveThirdParty contained testcookie_refresh_template
|
||||||
|
syn keyword ngxDirectiveThirdParty contained testcookie_secret
|
||||||
|
syn keyword ngxDirectiveThirdParty contained testcookie_secure_flag
|
||||||
|
syn keyword ngxDirectiveThirdParty contained testcookie_session
|
||||||
|
syn keyword ngxDirectiveThirdParty contained testcookie_whitelist
|
||||||
|
|
||||||
|
" ngx_http_types_filter_module
|
||||||
|
" https://github.com/flygoast/ngx_http_types_filter
|
||||||
|
syn keyword ngxDirectiveThirdParty contained types_filter
|
||||||
|
syn keyword ngxDirectiveThirdParty contained types_filter_use_default
|
||||||
|
|
||||||
|
" A module allowing the nginx to use files embedded in a zip file
|
||||||
|
" https://github.com/youzee/nginx-unzip-module
|
||||||
|
syn keyword ngxDirectiveThirdParty contained file_in_unzip
|
||||||
|
syn keyword ngxDirectiveThirdParty contained file_in_unzip_archivefile
|
||||||
|
syn keyword ngxDirectiveThirdParty contained file_in_unzip_extract
|
||||||
|
|
||||||
|
" An asynchronous domain name resolve module for nginx upstream
|
||||||
|
" https://github.com/wdaike/ngx_upstream_jdomain
|
||||||
|
syn keyword ngxDirectiveThirdParty contained jdomain
|
||||||
|
|
||||||
|
" Nginx url encoding converting module
|
||||||
|
" https://github.com/vozlt/nginx-module-url
|
||||||
|
syn keyword ngxDirectiveThirdParty contained url_encoding_convert
|
||||||
|
syn keyword ngxDirectiveThirdParty contained url_encoding_convert_alloc_size
|
||||||
|
syn keyword ngxDirectiveThirdParty contained url_encoding_convert_alloc_size_x
|
||||||
|
syn keyword ngxDirectiveThirdParty contained url_encoding_convert_from
|
||||||
|
syn keyword ngxDirectiveThirdParty contained url_encoding_convert_phase
|
||||||
|
syn keyword ngxDirectiveThirdParty contained url_encoding_convert_to
|
||||||
|
|
||||||
|
" A nginx module to match browsers and crawlers
|
||||||
|
" https://github.com/alibaba/nginx-http-user-agent
|
||||||
|
syn keyword ngxDirectiveThirdParty contained user_agent
|
||||||
|
|
||||||
|
" nginx load-balancer module implementing ketama consistent hashing
|
||||||
|
" https://github.com/flygoast/ngx_http_upstream_ketama_chash
|
||||||
|
syn keyword ngxDirectiveThirdParty contained ketama_chash
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
" highlight
|
||||||
|
|
||||||
|
hi link ngxComment Comment
|
||||||
|
hi link ngxParamComment Comment
|
||||||
|
hi link ngxListenComment Comment
|
||||||
|
hi link ngxVariable Identifier
|
||||||
|
hi link ngxVariableString PreProc
|
||||||
|
hi link ngxString String
|
||||||
|
hi link ngxListenString String
|
||||||
|
|
||||||
|
hi link ngxBoolean Boolean
|
||||||
|
hi link ngxDirectiveBlock Statement
|
||||||
|
hi link ngxDirectiveImportant Type
|
||||||
|
hi link ngxDirectiveListen Type
|
||||||
|
hi link ngxDirectiveControl Keyword
|
||||||
|
hi link ngxDirectiveError Constant
|
||||||
|
hi link ngxDirectiveDeprecated Error
|
||||||
|
hi link ngxDirective Identifier
|
||||||
|
hi link ngxDirectiveThirdParty Special
|
||||||
|
hi link ngxDirectiveThirdPartyDeprecated Error
|
||||||
|
|
||||||
|
hi link ngxListenOptions Keyword
|
||||||
|
hi link ngxListenOptionsDeprecated Error
|
||||||
|
|
||||||
|
let b:current_syntax = "nginx"
|
||||||
@@ -0,0 +1,41 @@
|
|||||||
|
|
||||||
|
VER= $(shell grep 'define NGINX_VERSION' src/core/nginx.h \
|
||||||
|
| sed -e 's/^.*"\(.*\)".*/\1/')
|
||||||
|
NGINX= nginx-$(VER)
|
||||||
|
TEMP= tmp
|
||||||
|
XSLS?= xslscript.pl
|
||||||
|
|
||||||
|
|
||||||
|
all: changes
|
||||||
|
|
||||||
|
changes: $(TEMP)/$(NGINX)/CHANGES.ru \
|
||||||
|
$(TEMP)/$(NGINX)/CHANGES
|
||||||
|
|
||||||
|
|
||||||
|
$(TEMP)/$(NGINX)/CHANGES.ru: docs/dtd/changes.dtd \
|
||||||
|
docs/xml/nginx/changes.xml \
|
||||||
|
docs/xml/change_log_conf.xml \
|
||||||
|
docs/xslt/changes.xslt
|
||||||
|
|
||||||
|
mkdir -p $(TEMP)/$(NGINX)
|
||||||
|
|
||||||
|
xmllint --noout --valid docs/xml/nginx/changes.xml
|
||||||
|
xsltproc --stringparam lang ru \
|
||||||
|
-o $@ docs/xslt/changes.xslt docs/xml/nginx/changes.xml
|
||||||
|
|
||||||
|
|
||||||
|
$(TEMP)/$(NGINX)/CHANGES: docs/dtd/changes.dtd \
|
||||||
|
docs/xml/nginx/changes.xml \
|
||||||
|
docs/xml/change_log_conf.xml \
|
||||||
|
docs/xslt/changes.xslt
|
||||||
|
|
||||||
|
mkdir -p $(TEMP)/$(NGINX)
|
||||||
|
|
||||||
|
xmllint --noout --valid docs/xml/nginx/changes.xml
|
||||||
|
xsltproc --stringparam lang en \
|
||||||
|
-o $@ docs/xslt/changes.xslt docs/xml/nginx/changes.xml
|
||||||
|
|
||||||
|
|
||||||
|
docs/xslt/changes.xslt: docs/xsls/changes.xsls
|
||||||
|
|
||||||
|
$(XSLS) -o $@ $<
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
|
||||||
|
<!ELEMENT configuration (length, start, indent, changes+) >
|
||||||
|
|
||||||
|
<!ELEMENT length (#PCDATA) >
|
||||||
|
<!ELEMENT start (#PCDATA) >
|
||||||
|
<!ELEMENT indent (#PCDATA) >
|
||||||
|
|
||||||
|
<!ELEMENT changes (title, length,
|
||||||
|
bugfix, feature, change, workaround,
|
||||||
|
(month, month, month, month, month, month,
|
||||||
|
month, month, month, month, month, month)?) >
|
||||||
|
|
||||||
|
<!ATTLIST changes lang ( ru | en) #REQUIRED>
|
||||||
|
|
||||||
|
<!ELEMENT title (#PCDATA) >
|
||||||
|
|
||||||
|
<!ELEMENT bugfix (#PCDATA) >
|
||||||
|
<!ELEMENT feature (#PCDATA) >
|
||||||
|
<!ELEMENT change (#PCDATA) >
|
||||||
|
<!ELEMENT workaround (#PCDATA) >
|
||||||
|
|
||||||
|
<!ELEMENT month (#PCDATA) >
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
|
||||||
|
<!ENTITY nbsp " " >
|
||||||
|
<!ENTITY mdash " - " >
|
||||||
|
|
||||||
|
|
||||||
|
<!ELEMENT change_log (changes)* >
|
||||||
|
<!ATTLIST change_log title CDATA #REQUIRED >
|
||||||
|
|
||||||
|
<!ELEMENT changes (change)* >
|
||||||
|
<!ATTLIST changes ver CDATA #REQUIRED
|
||||||
|
date CDATA #REQUIRED
|
||||||
|
>
|
||||||
|
|
||||||
|
<!ELEMENT change (para)* >
|
||||||
|
<!ATTLIST change type (bugfix | feature | change | security | workaround) #IMPLIED >
|
||||||
|
|
||||||
|
<!ELEMENT para (#PCDATA | at | br | nobr)* >
|
||||||
|
<!ATTLIST para lang (ru | en) #REQUIRED >
|
||||||
|
|
||||||
|
<!ELEMENT at EMPTY >
|
||||||
|
<!ELEMENT br EMPTY >
|
||||||
|
<!ELEMENT nobr (#PCDATA) >
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>Error</title>
|
||||||
|
<style>
|
||||||
|
body {
|
||||||
|
width: 35em;
|
||||||
|
margin: 0 auto;
|
||||||
|
font-family: Tahoma, Verdana, Arial, sans-serif;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1>An error occurred.</h1>
|
||||||
|
<p>Sorry, the page you are looking for is currently unavailable.<br/>
|
||||||
|
Please try again later.</p>
|
||||||
|
<p>If you are the system administrator of this resource then you should check
|
||||||
|
the <a href="http://nginx.org/r/error_log">error log</a> for details.</p>
|
||||||
|
<p><em>Faithfully yours, nginx.</em></p>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>Welcome to nginx!</title>
|
||||||
|
<style>
|
||||||
|
body {
|
||||||
|
width: 35em;
|
||||||
|
margin: 0 auto;
|
||||||
|
font-family: Tahoma, Verdana, Arial, sans-serif;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1>Welcome to nginx!</h1>
|
||||||
|
<p>If you see this page, the nginx web server is successfully installed and
|
||||||
|
working. Further configuration is required.</p>
|
||||||
|
|
||||||
|
<p>For online documentation and support please refer to
|
||||||
|
<a href="http://nginx.org/">nginx.org</a>.<br/>
|
||||||
|
Commercial support is available at
|
||||||
|
<a href="http://nginx.com/">nginx.com</a>.</p>
|
||||||
|
|
||||||
|
<p><em>Thank you for using nginx.</em></p>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,206 @@
|
|||||||
|
.\"
|
||||||
|
.\" Copyright (C) 2010 Sergey A. Osokin
|
||||||
|
.\" Copyright (C) Nginx, Inc.
|
||||||
|
.\" All rights reserved.
|
||||||
|
.\"
|
||||||
|
.\" Redistribution and use in source and binary forms, with or without
|
||||||
|
.\" modification, are permitted provided that the following conditions
|
||||||
|
.\" are met:
|
||||||
|
.\" 1. Redistributions of source code must retain the above copyright
|
||||||
|
.\" notice, this list of conditions and the following disclaimer.
|
||||||
|
.\" 2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
.\" notice, this list of conditions and the following disclaimer in the
|
||||||
|
.\" documentation and/or other materials provided with the distribution.
|
||||||
|
.\"
|
||||||
|
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
||||||
|
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
||||||
|
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||||
|
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||||
|
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||||
|
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||||
|
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||||
|
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||||
|
.\" SUCH DAMAGE.
|
||||||
|
.\"
|
||||||
|
.\"
|
||||||
|
.Dd June 16, 2015
|
||||||
|
.Dt NGINX 8
|
||||||
|
.Os
|
||||||
|
.Sh NAME
|
||||||
|
.Nm nginx
|
||||||
|
.Nd "HTTP and reverse proxy server, mail proxy server"
|
||||||
|
.Sh SYNOPSIS
|
||||||
|
.Nm
|
||||||
|
.Op Fl ?hqTtVv
|
||||||
|
.Op Fl c Ar file
|
||||||
|
.Op Fl g Ar directives
|
||||||
|
.Op Fl p Ar prefix
|
||||||
|
.Op Fl s Ar signal
|
||||||
|
.Sh DESCRIPTION
|
||||||
|
.Nm
|
||||||
|
(pronounced
|
||||||
|
.Dq engine x )
|
||||||
|
is an HTTP and reverse proxy server, as well as a mail proxy server.
|
||||||
|
It is known for its high performance, stability, rich feature set, simple
|
||||||
|
configuration, and low resource consumption.
|
||||||
|
.Pp
|
||||||
|
The options are as follows:
|
||||||
|
.Bl -tag -width ".Fl d Ar directives"
|
||||||
|
.It Fl ?\& , h
|
||||||
|
Print help.
|
||||||
|
.It Fl c Ar file
|
||||||
|
Use an alternative configuration
|
||||||
|
.Ar file .
|
||||||
|
.It Fl g Ar directives
|
||||||
|
Set global configuration directives.
|
||||||
|
See
|
||||||
|
.Sx EXAMPLES
|
||||||
|
for details.
|
||||||
|
.It Fl p Ar prefix
|
||||||
|
Set the prefix path.
|
||||||
|
The default value is
|
||||||
|
.Pa %%PREFIX%% .
|
||||||
|
.It Fl q
|
||||||
|
Suppress non-error messages during configuration testing.
|
||||||
|
.It Fl s Ar signal
|
||||||
|
Send a signal to the master process.
|
||||||
|
The argument
|
||||||
|
.Ar signal
|
||||||
|
can be one of:
|
||||||
|
.Cm stop , quit , reopen , reload .
|
||||||
|
The following table shows the corresponding system signals:
|
||||||
|
.Pp
|
||||||
|
.Bl -tag -width ".Cm reopen" -compact
|
||||||
|
.It Cm stop
|
||||||
|
.Dv SIGTERM
|
||||||
|
.It Cm quit
|
||||||
|
.Dv SIGQUIT
|
||||||
|
.It Cm reopen
|
||||||
|
.Dv SIGUSR1
|
||||||
|
.It Cm reload
|
||||||
|
.Dv SIGHUP
|
||||||
|
.El
|
||||||
|
.It Fl t
|
||||||
|
Do not run, just test the configuration file.
|
||||||
|
.Nm
|
||||||
|
checks the configuration file syntax and then tries to open files
|
||||||
|
referenced in the configuration file.
|
||||||
|
.It Fl T
|
||||||
|
Same as
|
||||||
|
.Fl t ,
|
||||||
|
but additionally dump configuration files to standard output.
|
||||||
|
.It Fl V
|
||||||
|
Print the
|
||||||
|
.Nm
|
||||||
|
version, compiler version, and
|
||||||
|
.Pa configure
|
||||||
|
script parameters.
|
||||||
|
.It Fl v
|
||||||
|
Print the
|
||||||
|
.Nm
|
||||||
|
version.
|
||||||
|
.El
|
||||||
|
.Sh SIGNALS
|
||||||
|
The master process of
|
||||||
|
.Nm
|
||||||
|
can handle the following signals:
|
||||||
|
.Pp
|
||||||
|
.Bl -tag -width ".Dv SIGINT , SIGTERM" -compact
|
||||||
|
.It Dv SIGINT , SIGTERM
|
||||||
|
Shut down quickly.
|
||||||
|
.It Dv SIGHUP
|
||||||
|
Reload configuration, start the new worker process with a new
|
||||||
|
configuration, and gracefully shut down old worker processes.
|
||||||
|
.It Dv SIGQUIT
|
||||||
|
Shut down gracefully.
|
||||||
|
.It Dv SIGUSR1
|
||||||
|
Reopen log files.
|
||||||
|
.It Dv SIGUSR2
|
||||||
|
Upgrade the
|
||||||
|
.Nm
|
||||||
|
executable on the fly.
|
||||||
|
.It Dv SIGWINCH
|
||||||
|
Shut down worker processes gracefully.
|
||||||
|
.El
|
||||||
|
.Pp
|
||||||
|
While there is no need to explicitly control worker processes normally,
|
||||||
|
they support some signals too:
|
||||||
|
.Pp
|
||||||
|
.Bl -tag -width ".Dv SIGINT , SIGTERM" -compact
|
||||||
|
.It Dv SIGTERM
|
||||||
|
Shut down quickly.
|
||||||
|
.It Dv SIGQUIT
|
||||||
|
Shut down gracefully.
|
||||||
|
.It Dv SIGUSR1
|
||||||
|
Reopen log files.
|
||||||
|
.El
|
||||||
|
.Sh DEBUGGING LOG
|
||||||
|
To enable a debugging log, reconfigure
|
||||||
|
.Nm
|
||||||
|
to build with debugging:
|
||||||
|
.Pp
|
||||||
|
.Dl "./configure --with-debug ..."
|
||||||
|
.Pp
|
||||||
|
and then set the
|
||||||
|
.Cm debug
|
||||||
|
level of the
|
||||||
|
.Va error_log :
|
||||||
|
.Pp
|
||||||
|
.Dl "error_log /path/to/log debug;"
|
||||||
|
.Pp
|
||||||
|
It is also possible to enable the debugging for a particular IP address:
|
||||||
|
.Bd -literal -offset indent
|
||||||
|
events {
|
||||||
|
debug_connection 127.0.0.1;
|
||||||
|
}
|
||||||
|
.Ed
|
||||||
|
.Sh ENVIRONMENT
|
||||||
|
The
|
||||||
|
.Ev NGINX
|
||||||
|
environment variable is used internally by
|
||||||
|
.Nm
|
||||||
|
and should not be set directly by the user.
|
||||||
|
.Sh FILES
|
||||||
|
.Bl -tag -width indent
|
||||||
|
.It Pa %%PID_PATH%%
|
||||||
|
Contains the process ID of
|
||||||
|
.Nm .
|
||||||
|
The contents of this file are not sensitive, so it can be world-readable.
|
||||||
|
.It Pa %%CONF_PATH%%
|
||||||
|
The main configuration file.
|
||||||
|
.It Pa %%ERROR_LOG_PATH%%
|
||||||
|
Error log file.
|
||||||
|
.El
|
||||||
|
.Sh EXIT STATUS
|
||||||
|
Exit status is 0 on success, or 1 if the command fails.
|
||||||
|
.Sh EXAMPLES
|
||||||
|
Test configuration file
|
||||||
|
.Pa ~/mynginx.conf
|
||||||
|
with global directives for PID and quantity of worker processes:
|
||||||
|
.Bd -literal -offset indent
|
||||||
|
nginx -t -c ~/mynginx.conf \e
|
||||||
|
-g "pid /var/run/mynginx.pid; worker_processes 2;"
|
||||||
|
.Ed
|
||||||
|
.Sh SEE ALSO
|
||||||
|
.\"Xr nginx.conf 5
|
||||||
|
.\"Pp
|
||||||
|
Documentation at
|
||||||
|
.Pa http://nginx.org/en/docs/ .
|
||||||
|
.Pp
|
||||||
|
For questions and technical support, please refer to
|
||||||
|
.Pa http://nginx.org/en/support.html .
|
||||||
|
.Sh HISTORY
|
||||||
|
Development of
|
||||||
|
.Nm
|
||||||
|
started in 2002, with the first public release on October 4, 2004.
|
||||||
|
.Sh AUTHORS
|
||||||
|
.An -nosplit
|
||||||
|
.An Igor Sysoev Aq igor@sysoev.ru .
|
||||||
|
.Pp
|
||||||
|
This manual page was originally written by
|
||||||
|
.An Sergey A. Osokin Aq osa@FreeBSD.org.ru
|
||||||
|
as a result of compiling many
|
||||||
|
.Nm
|
||||||
|
documents from all over the world.
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2002-2018 Igor Sysoev
|
||||||
|
* Copyright (C) 2011-2018 Nginx, Inc.
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
* 1. Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
* 2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in the
|
||||||
|
* documentation and/or other materials provided with the distribution.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
||||||
|
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
||||||
|
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||||
|
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||||
|
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||||
|
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||||
|
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||||
|
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||||
|
* SUCH DAMAGE.
|
||||||
|
*/
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
|
||||||
|
Documentation is available at http://nginx.org
|
||||||
|
|
||||||
@@ -0,0 +1,47 @@
|
|||||||
|
<?xml version="1.0" ?>
|
||||||
|
<!DOCTYPE configuration SYSTEM "../dtd/change_log_conf.dtd" >
|
||||||
|
|
||||||
|
<configuration>
|
||||||
|
|
||||||
|
<length>76</length>
|
||||||
|
|
||||||
|
<start> *) </start>
|
||||||
|
<indent> </indent>
|
||||||
|
|
||||||
|
<changes lang="ru">
|
||||||
|
<title>Изменения в </title>
|
||||||
|
<length>66</length>
|
||||||
|
|
||||||
|
<bugfix>Исправление</bugfix>
|
||||||
|
<feature>Добавление</feature>
|
||||||
|
<change>Изменение</change>
|
||||||
|
<security>Безопасность</security>
|
||||||
|
<workaround>Изменение</workaround>
|
||||||
|
</changes>
|
||||||
|
|
||||||
|
<changes lang="en">
|
||||||
|
<title>Changes with </title>
|
||||||
|
<length>65</length>
|
||||||
|
|
||||||
|
<bugfix>Bugfix</bugfix>
|
||||||
|
<feature>Feature</feature>
|
||||||
|
<change>Change</change>
|
||||||
|
<security>Security</security>
|
||||||
|
<workaround>Workaround</workaround>
|
||||||
|
|
||||||
|
<month> Jan </month>
|
||||||
|
<month> Feb </month>
|
||||||
|
<month> Mar </month>
|
||||||
|
<month> Apr </month>
|
||||||
|
<month> May </month>
|
||||||
|
<month> Jun </month>
|
||||||
|
<month> Jul </month>
|
||||||
|
<month> Aug </month>
|
||||||
|
<month> Sep </month>
|
||||||
|
<month> Oct </month>
|
||||||
|
<month> Nov </month>
|
||||||
|
<month> Dec </month>
|
||||||
|
|
||||||
|
</changes>
|
||||||
|
|
||||||
|
</configuration>
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,134 @@
|
|||||||
|
X:stylesheet {
|
||||||
|
|
||||||
|
X:output method="text";
|
||||||
|
|
||||||
|
X:param lang="'en'";
|
||||||
|
X:param configuration="'../xml/change_log_conf.xml'";
|
||||||
|
|
||||||
|
X:var conf = "document($configuration)/configuration";
|
||||||
|
X:var start = "$conf/start";
|
||||||
|
X:var indent = "$conf/indent";
|
||||||
|
X:var max = "$conf/length";
|
||||||
|
X:var br = {<br>}
|
||||||
|
|
||||||
|
|
||||||
|
X:template = "/" { !! "change_log"; }
|
||||||
|
X:template = "change_log" { !! "changes"; }
|
||||||
|
|
||||||
|
|
||||||
|
X:template = "changes" {
|
||||||
|
X:text { }
|
||||||
|
|
||||||
|
!{substring(concat($conf/changes[@lang=$lang]/title,
|
||||||
|
//change_log/@title,
|
||||||
|
' ', @ver,
|
||||||
|
' '),
|
||||||
|
1, $conf/changes[@lang=$lang]/length)}
|
||||||
|
|
||||||
|
X:if "$lang='ru'" {
|
||||||
|
!{substring(@date, 9, 2)}
|
||||||
|
X:text {.}
|
||||||
|
!{substring(@date, 6, 2)}
|
||||||
|
X:text {.}
|
||||||
|
!{substring(@date, 1, 4)}
|
||||||
|
}
|
||||||
|
|
||||||
|
X:if "$lang='en'" {
|
||||||
|
!{substring(@date, 9, 2)}
|
||||||
|
!{$conf/changes[@lang=$lang]/month[number(substring(current()/@date,
|
||||||
|
6, 2))]}
|
||||||
|
!{substring(@date, 1, 4)}
|
||||||
|
}
|
||||||
|
|
||||||
|
X:text { }
|
||||||
|
|
||||||
|
!! "change";
|
||||||
|
|
||||||
|
X:text { }
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
X:template = "change" {
|
||||||
|
X:var prefix = "$conf/changes[@lang=$lang]/*[local-name(.)=current()/@type]"
|
||||||
|
|
||||||
|
X:var postfix = { X:if "$prefix" { X:text {: } } }
|
||||||
|
|
||||||
|
!! "para[@lang=$lang]" (prefix = "concat($start, $prefix, $postfix)");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
X:template para(prefix) = "para" {
|
||||||
|
X:var text = { !!; }
|
||||||
|
|
||||||
|
X:text { }
|
||||||
|
|
||||||
|
!wrap(text = "normalize-space($text)",
|
||||||
|
prefix = { X:if "position() = 1" { !{$prefix} } else { !{$indent} } })
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
X:template wrap(text, prefix) {
|
||||||
|
X:if "$text" {
|
||||||
|
X:var offset = {
|
||||||
|
X:choose {
|
||||||
|
X:when "starts-with($text, concat($br, ' '))" {
|
||||||
|
!{string-length($br) + 2}
|
||||||
|
}
|
||||||
|
X:when "starts-with($text, $br)" {
|
||||||
|
!{string-length($br) + 1}
|
||||||
|
}
|
||||||
|
X:otherwise {
|
||||||
|
1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
X:var length = {
|
||||||
|
!length(text = "substring($text, $offset)",
|
||||||
|
prefix = "string-length($prefix)",
|
||||||
|
length = "$max")
|
||||||
|
}
|
||||||
|
|
||||||
|
!{$prefix}
|
||||||
|
|
||||||
|
!{normalize-space(translate(substring($text, $offset, $length),
|
||||||
|
' ', ' '))}
|
||||||
|
|
||||||
|
X:text { }
|
||||||
|
|
||||||
|
!wrap(text = "substring($text, $length + $offset)", prefix = "$indent")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
X:template length(text, prefix, length) {
|
||||||
|
X:var break = "substring-before(substring($text, 1,
|
||||||
|
$length - $prefix + string-length($br)),
|
||||||
|
$br)"
|
||||||
|
|
||||||
|
X:choose {
|
||||||
|
X:when "$break" { !{string-length($break)} }
|
||||||
|
|
||||||
|
X:when "$length = 0" { !{$max - $prefix} }
|
||||||
|
|
||||||
|
X:when "string-length($text) + $prefix <= $length" {
|
||||||
|
!{$length - $prefix}
|
||||||
|
}
|
||||||
|
|
||||||
|
X:when "substring($text, $length - $prefix + 1, 1) = ' '" {
|
||||||
|
!{$length - $prefix + 1}
|
||||||
|
}
|
||||||
|
|
||||||
|
X:otherwise {
|
||||||
|
!length(text = "$text", prefix = "$prefix", length = "$length - 1")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
X:template = "at" {@}
|
||||||
|
X:template = "br" { !{$br} }
|
||||||
|
X:template = "nobr" { !{translate(., ' ', ' ')} }
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,128 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
|
||||||
|
|
||||||
|
<xsl:output method="text"/>
|
||||||
|
|
||||||
|
<xsl:param select="'en'" name="lang"/>
|
||||||
|
<xsl:param select="'../xml/change_log_conf.xml'" name="configuration"/>
|
||||||
|
|
||||||
|
<xsl:variable select="document($configuration)/configuration" name="conf"/>
|
||||||
|
<xsl:variable select="$conf/start" name="start"/>
|
||||||
|
<xsl:variable select="$conf/indent" name="indent"/>
|
||||||
|
<xsl:variable select="$conf/length" name="max"/>
|
||||||
|
<xsl:variable name="br"><br></xsl:variable>
|
||||||
|
|
||||||
|
|
||||||
|
<xsl:template match="/"> <xsl:apply-templates select="change_log"/> </xsl:template>
|
||||||
|
<xsl:template match="change_log"> <xsl:apply-templates select="changes"/> </xsl:template>
|
||||||
|
|
||||||
|
|
||||||
|
<xsl:template match="changes">
|
||||||
|
<xsl:text> </xsl:text>
|
||||||
|
|
||||||
|
<xsl:value-of select="substring(concat($conf/changes[@lang=$lang]/title,
|
||||||
|
//change_log/@title,
|
||||||
|
' ', @ver,
|
||||||
|
' '),
|
||||||
|
1, $conf/changes[@lang=$lang]/length)"/>
|
||||||
|
|
||||||
|
<xsl:if test="$lang='ru'">
|
||||||
|
<xsl:value-of select="substring(@date, 9, 2)"/>
|
||||||
|
<xsl:text>.</xsl:text>
|
||||||
|
<xsl:value-of select="substring(@date, 6, 2)"/>
|
||||||
|
<xsl:text>.</xsl:text>
|
||||||
|
<xsl:value-of select="substring(@date, 1, 4)"/>
|
||||||
|
</xsl:if>
|
||||||
|
|
||||||
|
<xsl:if test="$lang='en'">
|
||||||
|
<xsl:value-of select="substring(@date, 9, 2)"/>
|
||||||
|
<xsl:value-of select="$conf/changes[@lang=$lang]/month[number(substring(current()/@date,
|
||||||
|
6, 2))]"/>
|
||||||
|
<xsl:value-of select="substring(@date, 1, 4)"/>
|
||||||
|
</xsl:if>
|
||||||
|
|
||||||
|
<xsl:text> </xsl:text>
|
||||||
|
|
||||||
|
<xsl:apply-templates select="change"/>
|
||||||
|
|
||||||
|
<xsl:text> </xsl:text>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
|
||||||
|
<xsl:template match="change">
|
||||||
|
<xsl:variable select="$conf/changes[@lang=$lang]/*[local-name(.)=current()/@type]" name="prefix"/>
|
||||||
|
|
||||||
|
<xsl:variable name="postfix"> <xsl:if test="$prefix"> <xsl:text>: </xsl:text> </xsl:if> </xsl:variable>
|
||||||
|
|
||||||
|
<xsl:apply-templates select="para[@lang=$lang]"><xsl:with-param select="concat($start, $prefix, $postfix)" name="prefix"/></xsl:apply-templates>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
|
||||||
|
<xsl:template name="para" match="para"><xsl:param name="prefix"/>
|
||||||
|
<xsl:variable name="text"> <xsl:apply-templates/> </xsl:variable>
|
||||||
|
|
||||||
|
<xsl:text> </xsl:text>
|
||||||
|
|
||||||
|
<xsl:call-template name="wrap"><xsl:with-param select="normalize-space($text)" name="text"/><xsl:with-param name="prefix"> <xsl:choose><xsl:when test="position() = 1"> <xsl:value-of select="$prefix"/> </xsl:when><xsl:otherwise> <xsl:value-of select="$indent"/> </xsl:otherwise></xsl:choose> </xsl:with-param></xsl:call-template></xsl:template>
|
||||||
|
|
||||||
|
|
||||||
|
<xsl:template name="wrap"><xsl:param name="text"/><xsl:param name="prefix"/>
|
||||||
|
<xsl:if test="$text">
|
||||||
|
<xsl:variable name="offset">
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="starts-with($text, concat($br, ' '))">
|
||||||
|
<xsl:value-of select="string-length($br) + 2"/>
|
||||||
|
</xsl:when>
|
||||||
|
<xsl:when test="starts-with($text, $br)">
|
||||||
|
<xsl:value-of select="string-length($br) + 1"/>
|
||||||
|
</xsl:when>
|
||||||
|
<xsl:otherwise>
|
||||||
|
1
|
||||||
|
</xsl:otherwise>
|
||||||
|
</xsl:choose>
|
||||||
|
</xsl:variable>
|
||||||
|
|
||||||
|
<xsl:variable name="length">
|
||||||
|
<xsl:call-template name="length"><xsl:with-param select="substring($text, $offset)" name="text"/><xsl:with-param select="string-length($prefix)" name="prefix"/><xsl:with-param select="$max" name="length"/></xsl:call-template></xsl:variable>
|
||||||
|
|
||||||
|
<xsl:value-of select="$prefix"/>
|
||||||
|
|
||||||
|
<xsl:value-of select="normalize-space(translate(substring($text, $offset, $length),
|
||||||
|
' ', ' '))"/>
|
||||||
|
|
||||||
|
<xsl:text> </xsl:text>
|
||||||
|
|
||||||
|
<xsl:call-template name="wrap"><xsl:with-param select="substring($text, $length + $offset)" name="text"/><xsl:with-param select="$indent" name="prefix"/></xsl:call-template></xsl:if>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
|
||||||
|
<xsl:template name="length"><xsl:param name="text"/><xsl:param name="prefix"/><xsl:param name="length"/>
|
||||||
|
<xsl:variable select="substring-before(substring($text, 1,
|
||||||
|
$length - $prefix + string-length($br)),
|
||||||
|
$br)" name="break"/>
|
||||||
|
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="$break"> <xsl:value-of select="string-length($break)"/> </xsl:when>
|
||||||
|
|
||||||
|
<xsl:when test="$length = 0"> <xsl:value-of select="$max - $prefix"/> </xsl:when>
|
||||||
|
|
||||||
|
<xsl:when test="string-length($text) + $prefix <= $length">
|
||||||
|
<xsl:value-of select="$length - $prefix"/>
|
||||||
|
</xsl:when>
|
||||||
|
|
||||||
|
<xsl:when test="substring($text, $length - $prefix + 1, 1) = ' '">
|
||||||
|
<xsl:value-of select="$length - $prefix + 1"/>
|
||||||
|
</xsl:when>
|
||||||
|
|
||||||
|
<xsl:otherwise>
|
||||||
|
<xsl:call-template name="length"><xsl:with-param select="$text" name="text"/><xsl:with-param select="$prefix" name="prefix"/><xsl:with-param select="$length - 1" name="length"/></xsl:call-template></xsl:otherwise>
|
||||||
|
</xsl:choose>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
|
||||||
|
<xsl:template match="at">@</xsl:template>
|
||||||
|
<xsl:template match="br"> <xsl:value-of select="$br"/> </xsl:template>
|
||||||
|
<xsl:template match="nobr"> <xsl:value-of select="translate(., ' ', ' ')"/> </xsl:template>
|
||||||
|
|
||||||
|
|
||||||
|
</xsl:stylesheet>
|
||||||
Submodule
+1
Submodule lib/_s/headers-more-nginx-module added at 55fbdaba96
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user