├── LICENSE ├── .hgignore ├── tools ├── umasked.sh └── LICENSE ├── img ├── njs_icon.png ├── ingress_icon.png └── gateway_fabric_icon.png ├── .gitignore ├── binary └── favicon.ico ├── sources ├── 1839OS.jpg ├── B05431_0.jpg ├── 1106030720.jpg ├── 2322OS_cov.jpg ├── 5125OS_cov.jpg ├── 20807089-1_o.jpg ├── 3046OS_cover.jpg ├── 5106%2B0b2pbL.jpg ├── 9781788623551.jpg ├── 9784774178660.jpg ├── 0337OS_4846_Nginx.jpg ├── 0868OS_MockupCover.jpg ├── B04282_MockupCover_Normal.jpg ├── 3311OS_4851_Mastering NGINX_0.jpg ├── 51JYTdy8jrL._SX335_BO1,204,203,200_.jpg ├── 51T7ds6JdBL._SX404_BO1,204,203,200_.jpg ├── ebk-ORM-NGINX-Cookbook-mega-2019-150x185.jpg ├── Nginx 1 Web Server Implementation Cookbook.jpg └── ebk-Deploying-NGINX-Plus-as-API-Gateway-150x185.jpg ├── BSDmakefile ├── xml ├── he │ ├── GNUmakefile │ └── docs │ │ └── index.xml ├── 404.xml ├── ja │ ├── GNUmakefile │ └── docs │ │ ├── faq.xml │ │ ├── sys_errlist.xml │ │ ├── index.xml │ │ └── debugging_log.xml ├── tr │ ├── GNUmakefile │ └── docs │ │ ├── faq.xml │ │ ├── sys_errlist.xml │ │ ├── index.xml │ │ └── debugging_log.xml ├── cn │ ├── docs │ │ ├── faq.xml │ │ ├── sys_errlist.xml │ │ ├── http │ │ │ ├── ngx_http_empty_gif_module.xml │ │ │ ├── ngx_http_flv_module.xml │ │ │ ├── ngx_http_index_module.xml │ │ │ ├── ngx_http_gzip_static_module.xml │ │ │ ├── ngx_http_addition_module.xml │ │ │ ├── ngx_http_autoindex_module.xml │ │ │ ├── ngx_http_auth_basic_module.xml │ │ │ └── ngx_http_access_module.xml │ │ ├── syntax.xml │ │ └── debugging_log.xml │ └── GNUmakefile ├── ru │ ├── docs │ │ ├── faq.xml │ │ ├── http │ │ │ ├── ngx_http_spdy_module.xml │ │ │ ├── ngx_http_limit_zone_module.xml │ │ │ ├── ngx_http_empty_gif_module.xml │ │ │ ├── ngx_http_flv_module.xml │ │ │ ├── ngx_http_random_index_module.xml │ │ │ ├── ngx_http_split_clients_module.xml │ │ │ ├── ngx_http_f4f_module.xml │ │ │ ├── ngx_http_index_module.xml │ │ │ ├── ngx_http_gzip_static_module.xml │ │ │ ├── ngx_http_addition_module.xml │ │ │ └── ngx_http_gunzip_module.xml │ │ ├── sys_errlist.xml │ │ ├── stream │ │ │ ├── ngx_stream_set_module.xml │ │ │ ├── ngx_stream_return_module.xml │ │ │ ├── ngx_stream_pass_module.xml │ │ │ ├── ngx_stream_split_clients_module.xml │ │ │ ├── ngx_stream_mqtt_preread_module.xml │ │ │ ├── ngx_stream_access_module.xml │ │ │ └── ngx_stream_realip_module.xml │ │ ├── njs │ │ │ ├── cli.xml │ │ │ └── preload_objects.xml │ │ ├── mail │ │ │ └── ngx_mail_realip_module.xml │ │ ├── install.xml │ │ ├── ngx_google_perftools_module.xml │ │ ├── hash.xml │ │ └── governance.xml │ ├── download.xml │ └── enterprise.xml ├── banner.xml ├── it │ ├── GNUmakefile │ ├── download.xml │ └── docs │ │ ├── install.xml │ │ ├── syntax.xml │ │ ├── debugging_log.xml │ │ └── hash.xml ├── en │ ├── docs │ │ ├── http │ │ │ ├── ngx_http_spdy_module.xml │ │ │ ├── ngx_http_empty_gif_module.xml │ │ │ ├── ngx_http_flv_module.xml │ │ │ ├── ngx_http_random_index_module.xml │ │ │ ├── ngx_http_f4f_module.xml │ │ │ ├── ngx_http_split_clients_module.xml │ │ │ ├── ngx_http_index_module.xml │ │ │ ├── ngx_http_auth_require_module.xml │ │ │ ├── ngx_http_gzip_static_module.xml │ │ │ ├── ngx_http_addition_module.xml │ │ │ ├── ngx_http_gunzip_module.xml │ │ │ └── ngx_http_mirror_module.xml │ │ ├── faq.xml │ │ ├── sys_errlist.xml │ │ ├── stream │ │ │ ├── ngx_stream_set_module.xml │ │ │ ├── ngx_stream_return_module.xml │ │ │ ├── ngx_stream_pass_module.xml │ │ │ ├── ngx_stream_split_clients_module.xml │ │ │ ├── ngx_stream_mqtt_preread_module.xml │ │ │ ├── ngx_stream_access_module.xml │ │ │ └── ngx_stream_realip_module.xml │ │ ├── faq │ │ │ ├── accept_failed.xml │ │ │ ├── variables_in_config.xml │ │ │ ├── license_copyright.xml │ │ │ ├── chunked_encoding_from_backend.xml │ │ │ └── daemon_master_process_off.xml │ │ ├── njs │ │ │ ├── cli.xml │ │ │ ├── preload_objects.xml │ │ │ └── security.xml │ │ ├── install.xml │ │ ├── mail │ │ │ └── ngx_mail_realip_module.xml │ │ ├── ngx_google_perftools_module.xml │ │ ├── hash.xml │ │ └── governance.xml │ ├── donation.xml │ ├── pgp_keys.xml │ ├── download.xml │ └── enterprise.xml └── homepage.xml ├── dtd ├── error.dtd ├── i18n.dtd ├── menu.dtd ├── versions.dtd ├── article.dtd └── news.dtd ├── xsls ├── version.xsls ├── style.xsls ├── versions.xsls ├── donate.xsls ├── dirname.xsls ├── error.xsls ├── dirmap.xsls ├── dirindex.xsls ├── varindex.xsls ├── books.xsls ├── projects.xsls ├── article.xsls ├── security.xsls ├── rss.xsls ├── download.xsls ├── link.xsls └── menu.xsls ├── dev.Dockerfile ├── yaml └── GNUmakefile ├── Dockerfile ├── xslt ├── version.xslt ├── donate.xslt ├── versions.xslt ├── style.xslt ├── dirindex.xslt ├── varindex.xslt ├── error.xslt ├── dirname.xslt ├── projects.xslt ├── dirmap.xslt ├── books.xslt └── article.xslt ├── docker-nginx.conf ├── docker-compose.yml ├── .github └── workflows │ └── build.yml └── text ├── LICENSE └── keys └── sb.key /LICENSE: -------------------------------------------------------------------------------- 1 | text/LICENSE -------------------------------------------------------------------------------- /.hgignore: -------------------------------------------------------------------------------- 1 | ^binary/books/ 2 | ^binary/download/ 3 | ^gzip/ 4 | ^libxslt/ 5 | -------------------------------------------------------------------------------- /tools/umasked.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | umask 002 4 | 5 | exec /bin/sh "$@" 6 | -------------------------------------------------------------------------------- /img/njs_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nginx/nginx.org/HEAD/img/njs_icon.png -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | binary/books/ 2 | binary/download/ 3 | gzip/ 4 | libxslt/ 5 | .DS_Store 6 | -------------------------------------------------------------------------------- /binary/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nginx/nginx.org/HEAD/binary/favicon.ico -------------------------------------------------------------------------------- /sources/1839OS.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nginx/nginx.org/HEAD/sources/1839OS.jpg -------------------------------------------------------------------------------- /img/ingress_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nginx/nginx.org/HEAD/img/ingress_icon.png -------------------------------------------------------------------------------- /sources/B05431_0.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nginx/nginx.org/HEAD/sources/B05431_0.jpg -------------------------------------------------------------------------------- /BSDmakefile: -------------------------------------------------------------------------------- 1 | 2 | build: 3 | gmake 4 | 5 | .PHONY: gzip 6 | 7 | .DEFAULT:: 8 | gmake $@ 9 | -------------------------------------------------------------------------------- /sources/1106030720.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nginx/nginx.org/HEAD/sources/1106030720.jpg -------------------------------------------------------------------------------- /sources/2322OS_cov.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nginx/nginx.org/HEAD/sources/2322OS_cov.jpg -------------------------------------------------------------------------------- /sources/5125OS_cov.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nginx/nginx.org/HEAD/sources/5125OS_cov.jpg -------------------------------------------------------------------------------- /sources/20807089-1_o.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nginx/nginx.org/HEAD/sources/20807089-1_o.jpg -------------------------------------------------------------------------------- /sources/3046OS_cover.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nginx/nginx.org/HEAD/sources/3046OS_cover.jpg -------------------------------------------------------------------------------- /sources/5106%2B0b2pbL.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nginx/nginx.org/HEAD/sources/5106%2B0b2pbL.jpg -------------------------------------------------------------------------------- /sources/9781788623551.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nginx/nginx.org/HEAD/sources/9781788623551.jpg -------------------------------------------------------------------------------- /sources/9784774178660.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nginx/nginx.org/HEAD/sources/9784774178660.jpg -------------------------------------------------------------------------------- /img/gateway_fabric_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nginx/nginx.org/HEAD/img/gateway_fabric_icon.png -------------------------------------------------------------------------------- /sources/0337OS_4846_Nginx.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nginx/nginx.org/HEAD/sources/0337OS_4846_Nginx.jpg -------------------------------------------------------------------------------- /sources/0868OS_MockupCover.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nginx/nginx.org/HEAD/sources/0868OS_MockupCover.jpg -------------------------------------------------------------------------------- /sources/B04282_MockupCover_Normal.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nginx/nginx.org/HEAD/sources/B04282_MockupCover_Normal.jpg -------------------------------------------------------------------------------- /sources/3311OS_4851_Mastering NGINX_0.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nginx/nginx.org/HEAD/sources/3311OS_4851_Mastering NGINX_0.jpg -------------------------------------------------------------------------------- /xml/he/GNUmakefile: -------------------------------------------------------------------------------- 1 | DOCS = \ 2 | windows \ 3 | http/server_names \ 4 | http/converting_rewrite_rules \ 5 | -------------------------------------------------------------------------------- /sources/51JYTdy8jrL._SX335_BO1,204,203,200_.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nginx/nginx.org/HEAD/sources/51JYTdy8jrL._SX335_BO1,204,203,200_.jpg -------------------------------------------------------------------------------- /sources/51T7ds6JdBL._SX404_BO1,204,203,200_.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nginx/nginx.org/HEAD/sources/51T7ds6JdBL._SX404_BO1,204,203,200_.jpg -------------------------------------------------------------------------------- /sources/ebk-ORM-NGINX-Cookbook-mega-2019-150x185.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nginx/nginx.org/HEAD/sources/ebk-ORM-NGINX-Cookbook-mega-2019-150x185.jpg -------------------------------------------------------------------------------- /sources/Nginx 1 Web Server Implementation Cookbook.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nginx/nginx.org/HEAD/sources/Nginx 1 Web Server Implementation Cookbook.jpg -------------------------------------------------------------------------------- /sources/ebk-Deploying-NGINX-Plus-as-API-Gateway-150x185.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nginx/nginx.org/HEAD/sources/ebk-Deploying-NGINX-Plus-as-API-Gateway-150x185.jpg -------------------------------------------------------------------------------- /xml/404.xml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /dtd/error.dtd: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 11 | -------------------------------------------------------------------------------- /xml/ja/GNUmakefile: -------------------------------------------------------------------------------- 1 | DOCS = \ 2 | faq \ 3 | http/request_processing \ 4 | http/server_names \ 5 | http/configuring_https_servers \ 6 | debugging_log \ 7 | http/converting_rewrite_rules \ 8 | 9 | FAQ = \ 10 | sys_errlist \ 11 | -------------------------------------------------------------------------------- /xsls/version.xsls: -------------------------------------------------------------------------------- 1 | 5 | 6 | X:stylesheet { 7 | 8 | X:param VERSION = "'development'"; 9 | 10 | X:output method="text"; 11 | 12 | X:template = "/versions" { !! "download[@tag=$VERSION][1]/item[1]/@ver"; }; 13 | 14 | } 15 | -------------------------------------------------------------------------------- /xml/tr/GNUmakefile: -------------------------------------------------------------------------------- 1 | DOCS = \ 2 | faq \ 3 | windows \ 4 | http/request_processing \ 5 | http/server_names \ 6 | http/configuring_https_servers \ 7 | debugging_log \ 8 | http/converting_rewrite_rules \ 9 | 10 | FAQ = \ 11 | sys_errlist \ 12 | -------------------------------------------------------------------------------- /dev.Dockerfile: -------------------------------------------------------------------------------- 1 | FROM nginx:alpine 2 | 3 | RUN apk add perl perl-parse-recdescent libxml2-utils make 4 | 5 | WORKDIR /var/www 6 | COPY . /var/www 7 | RUN printf "#!/bin/sh\nmake -C /var/www\necho 'NOTICE: nginx.org development site is running at http://localhost:8001/'\nexec nginx -g 'daemon off;'" > /docker-entrypoint.sh 8 | EXPOSE 8080 9 | -------------------------------------------------------------------------------- /yaml/GNUmakefile: -------------------------------------------------------------------------------- 1 | API_HEAD=../xml/en/docs/http/ngx_http_api_module_head.xml 2 | 3 | ../xml/en/docs/http/ngx_http_api_module.xml: \ 4 | nginx_api.yaml \ 5 | yaml2xml.py \ 6 | $(API_HEAD) 7 | cat $(API_HEAD) > $@ 8 | ./yaml2xml.py nginx_api.yaml >> $@ 9 | echo "" >> $@ 10 | 11 | .DELETE_ON_ERROR: 12 | -------------------------------------------------------------------------------- /xml/ja/docs/faq.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 |
6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 |
22 | -------------------------------------------------------------------------------- /xml/tr/docs/faq.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 |
6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 |
22 | -------------------------------------------------------------------------------- /dtd/i18n.dtd: -------------------------------------------------------------------------------- 1 | 5 | 6 | 7 | 8 | 9 | 12 | 13 | 14 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM nginx:alpine AS build 2 | 3 | RUN apk add netpbm perl perl-parse-recdescent libxslt libxml2-utils patch make rsync 4 | 5 | COPY . /var/www 6 | WORKDIR /var/www 7 | 8 | COPY *.patch . 9 | RUN touch null.patch && cat *.patch | patch -p1 10 | RUN make images all gzip 11 | 12 | FROM nginx:alpine 13 | COPY --from=build /var/www /var/www 14 | COPY docker-nginx.conf /etc/nginx/conf.d/default.conf 15 | EXPOSE 8080 16 | -------------------------------------------------------------------------------- /xml/cn/docs/faq.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 |
6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 |
27 | -------------------------------------------------------------------------------- /xslt/version.xslt: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /xml/ru/docs/faq.xml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 7 | 8 |
12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 |
29 | -------------------------------------------------------------------------------- /dtd/menu.dtd: -------------------------------------------------------------------------------- 1 | 5 | 6 | 7 | 8 | 9 | 12 | 13 | 14 | 20 | -------------------------------------------------------------------------------- /dtd/versions.dtd: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 12 | 13 | 14 | 19 | -------------------------------------------------------------------------------- /docker-nginx.conf: -------------------------------------------------------------------------------- 1 | server { 2 | listen 8080; 3 | gzip_static on; 4 | access_log /dev/stdout; 5 | default_type text/plain; 6 | 7 | location /img/ { 8 | root /var/www; 9 | } 10 | location /books/ { 11 | root /var/www/binary; 12 | } 13 | location = /favicon.ico { 14 | root /var/www/binary; 15 | } 16 | 17 | location / { 18 | if ( -d /var/www/gzip ) { 19 | root /var/www/gzip; 20 | } 21 | root /var/www/libxslt; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /xml/banner.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Confused between ingress-nginx 6 | and NGINX Ingress Controller? 7 | Learn about our long-term commitment to the NGINX Ingress Controller and Gateway API implementation. 8 | Read the Blog. 9 | 10 | 11 | -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- 1 | services: 2 | nginx.org: 3 | ports: 4 | - 8001:8080 5 | build: 6 | dockerfile: dev.Dockerfile 7 | develop: 8 | watch: 9 | - path: ./xml 10 | action: rebuild 11 | - path: ./xsls 12 | action: rebuild 13 | - path: ./css 14 | target: /var/www/libxslt/css 15 | action: sync 16 | tmpfs: 17 | - /var/www/xslt 18 | volumes: 19 | - ./docker-nginx.conf:/etc/nginx/conf.d/default.conf 20 | - ./xslt/version.xslt:/var/www/xslt/version.xslt 21 | -------------------------------------------------------------------------------- /xml/it/GNUmakefile: -------------------------------------------------------------------------------- 1 | DOCS = \ 2 | install \ 3 | windows \ 4 | events \ 5 | syntax \ 6 | control \ 7 | hash \ 8 | http/request_processing \ 9 | http/server_names \ 10 | http/configuring_https_servers \ 11 | debugging_log \ 12 | http/converting_rewrite_rules \ 13 | howto_build_on_win32 \ 14 | contributing_changes \ 15 | beginners_guide \ 16 | configure \ 17 | 18 | TOP = \ 19 | download \ 20 | support \ 21 | linux_packages \ 22 | -------------------------------------------------------------------------------- /xml/ru/docs/http/ngx_http_spdy_module.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | 9 | 13 | 14 |
15 | 16 | 17 | Этот модуль был заменён модулем 18 | ngx_http_v2_module 19 | в версии 1.9.5. 20 | 21 | 22 |
23 | 24 |
25 | -------------------------------------------------------------------------------- /xml/en/docs/http/ngx_http_spdy_module.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | 9 | 13 | 14 |
15 | 16 | 17 | This module was superseded by the 18 | ngx_http_v2_module module 19 | in 1.9.5. 20 | 21 | 22 |
23 | 24 |
25 | -------------------------------------------------------------------------------- /dtd/article.dtd: -------------------------------------------------------------------------------- 1 | 5 | 6 | 7 | 17 | 18 | 19 | %content; 20 | -------------------------------------------------------------------------------- /xsls/style.xsls: -------------------------------------------------------------------------------- 1 | 5 | 6 | X:stylesheet { 7 | 8 | X:template style (lang) { 9 | 10 | 11 | 12 | 13 | X:attribute "rel" { 14 | X:text{stylesheet} 15 | } 16 | X:attribute "href" { 17 | X:if "substring-after($DIRNAME, '/') or $LINK = '404.html'" { 18 | !{ concat($ROOT, '/') } 19 | } 20 | !{ concat('css/style_', $lang, '.css') } 21 | } 22 | !!; 23 | 24 | 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /xsls/versions.xsls: -------------------------------------------------------------------------------- 1 | 5 | 6 | X:stylesheet { 7 | 8 | X:template = "mainline_version" { 9 | !! "document(concat($XML, '/versions.xml')) 10 | /versions/download[@tag='mainline'][1]/item[1]/@ver"; 11 | } 12 | 13 | X:template = "stable_version" { 14 | !! "document(concat($XML, '/versions.xml')) 15 | /versions/download[@tag='stable'][1]/item[1]/@ver"; 16 | } 17 | 18 | X:template = "commercial_version" { 19 | 20 | !!; 21 | 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /xml/ru/docs/http/ngx_http_limit_zone_module.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 9 | 10 | 13 | 14 |
15 | 16 | 17 | В версии 1.1.8 модуль ngx_http_limit_zone_module 18 | был переименован в модуль 19 | ngx_http_limit_conn_module. 20 | 21 | 22 |
23 | 24 |
25 | -------------------------------------------------------------------------------- /dtd/news.dtd: -------------------------------------------------------------------------------- 1 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 15 | 16 | 21 | 22 | 23 | 26 | 27 | 28 | %content; 29 | -------------------------------------------------------------------------------- /xml/he/docs/index.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 |
7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 |
29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 |
41 | 42 |
43 | -------------------------------------------------------------------------------- /xsls/donate.xsls: -------------------------------------------------------------------------------- 1 | 5 | 6 | X:stylesheet { 7 | 8 | X:template = "paypal" { 9 | 10 |
11 | 12 | 13 | 14 | 17 | 18 | 20 |
21 | 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /xml/cn/docs/sys_errlist.xml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 7 | 8 |
12 | 13 | 14 |
15 | 16 | 17 | 在Linux环境下编译nginx 0.7.66、0.8.35或更高版本时,会出现以下警告: 18 | 19 | 20 | warning: `sys_errlist' is deprecated; 21 | use `strerror' or `strerror_r' instead 22 | warning: `sys_nerr' is deprecated; 23 | use `strerror' or `strerror_r' instead 24 | 25 | 26 | 这属于正常情况:nginx必须在信号处理函数中使用过时的sys_errlist[]和sys_nerr,因为strerror()和strerror_r()是非异步信号安全的。 27 | 28 | 29 |
30 | 31 |
32 | -------------------------------------------------------------------------------- /xslt/donate.xslt: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 |
21 | 22 |
23 | -------------------------------------------------------------------------------- /xslt/versions.xslt: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 10 | 12 | 13 | 14 | 15 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /.github/workflows/build.yml: -------------------------------------------------------------------------------- 1 | name: Deploy nginx.org 2 | 3 | on: 4 | push: 5 | branches: 6 | - "**" 7 | workflow_dispatch: 8 | inputs: 9 | deployment_env: 10 | type: choice 11 | description: Deployment environment 12 | options: 13 | - staging 14 | - prod 15 | default: staging 16 | 17 | permissions: 18 | contents: read 19 | id-token: write 20 | 21 | 22 | jobs: 23 | deploy: 24 | name: Deploy nginx.org 25 | uses: nginxinc/docs-actions/.github/workflows/nginx.org-make-aws.yml@main 26 | with: 27 | deployment_env: ${{ github.event_name == 'workflow_dispatch' && inputs.deployment_env || 'staging' }} 28 | secrets: 29 | AWS_ACCOUNT_ID: ${{ secrets.AWS_ACCOUNT_ID }} 30 | AWS_ROLE_NAME: ${{ secrets.AWS_ROLE_NAME }} 31 | ALLOWED_USERS: ${{ secrets.ALLOWED_USERS }} 32 | -------------------------------------------------------------------------------- /xml/ja/docs/sys_errlist.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 |
9 | 10 |
11 | 12 | 13 | nginx のバージョン 0.7.66、0.8.35、もしくはそれ以上を Linux でビルド中、次の警告メッセージが出ます: 14 | 15 | 16 | warning: `sys_errlist' is deprecated; 17 | use `strerror' or `strerror_r' instead 18 | warning: `sys_nerr' is deprecated; 19 | use `strerror' or `strerror_r' instead 20 | 21 | 22 | これは正常です。strerror() と strerror_r() 関数が非同期シグナルセーフではないので、nginx はシングルハンドラの中で非推奨の sys_errlist[] と sys_nerr を使う必要があります。 23 | 24 | 25 |
26 | 27 |
28 | -------------------------------------------------------------------------------- /xml/en/donation.xml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 7 | 8 |
12 | 13 |
14 | 15 | 16 | Thank you very much for all your support of the nginx project. 17 | We as a company have created a commercial model to help support 18 | the ongoing development of the software, so we no longer need to 19 | ask for charitable donations to support our work. 20 | If you use and enjoy nginx, and want to support the project please 21 | consider purchasing one of our paid products and services. 22 | You can learn more at nginx.com. 23 | 24 | 25 | 26 | Thank you! 27 | 28 | 29 |
30 | 31 |
32 | -------------------------------------------------------------------------------- /xslt/style.xslt: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | stylesheet 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /xsls/dirname.xsls: -------------------------------------------------------------------------------- 1 | 5 | 6 | X:stylesheet { 7 | 8 | 9 | 10 | 11 | X:var DIRNAME = { !dirname (path = "$LINK") } 12 | 13 | X:template dirname (path) { 14 | X:if "contains($path, '/')" { 15 | !{ substring-before($path, '/') } 16 | X:text {/} 17 | !dirname (path = "substring-after($path, '/')") 18 | } 19 | } 20 | 21 | 22 | 23 | 24 | X:var ROOT = { !root (path = { !{ substring($DIRNAME, 2) } }) } 25 | 26 | X:template root (path) { 27 | X:if "contains($path, '/')" { 28 | X:text {..} 29 | X:if "substring-after($path, '/')" { 30 | X:text {/} 31 | !root (path = "substring-after($path, '/')") 32 | } 33 | } 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /xml/ja/docs/index.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 |
7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 |
34 | 35 | 36 |
37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 |
49 | 50 |
51 | -------------------------------------------------------------------------------- /xml/tr/docs/sys_errlist.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 |
9 | 10 |
11 | 12 | 13 | nginx versiyon 0.7.66, 0.8.35 ve üstü için Linux kurulumu yaparken, şu uyarıları alabilirsiniz: 14 | 15 | 16 | warning: `sys_errlist' is deprecated; 17 | use `strerror' or `strerror_r' instead 18 | warning: `sys_nerr' is deprecated; 19 | use `strerror' or `strerror_r' instead 20 | 21 | 22 | Bu normal bir durum: strerror() ve strerror_r() fonksiyonları "Async-Signal-Safe" olmadığından, nginx sinyal işleyici olarak onaylı olmayan sys_errlist[] ve sys_nerr kullanmak zorundadır. 23 | 24 | 25 |
26 | 27 |
28 | -------------------------------------------------------------------------------- /xml/en/docs/faq.xml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 7 | 8 |
12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 |
51 | 52 |
53 | -------------------------------------------------------------------------------- /xml/tr/docs/index.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 |
7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 |
38 | 39 | 40 |
41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 |
53 | 54 |
55 | -------------------------------------------------------------------------------- /xsls/error.xsls: -------------------------------------------------------------------------------- 1 | 5 | 6 | X:stylesheet { 7 | 8 | X:output method="html" version="4.0" indent="no" encoding="utf-8"; 9 | 10 | X:strip-space elements = "*"; 11 | 12 | 16 | X:param XML = "'../xml'"; 17 | X:param YEAR; 18 | X:param ORIGIN; 19 | X:param TRANS; 20 | 21 | X:var LINK = "/error/@link"; 22 | X:var LANG = "/error/@lang"; 23 | 24 | X:include href = "dirname.xslt"; 25 | X:include href = "link.xslt"; 26 | X:include href = "style.xslt"; 27 | X:include href = "body.xslt"; 28 | X:include href = "menu.xslt"; 29 | X:include href = "content.xslt"; 30 | 31 | 32 | X:template = "/error" { 33 | !{@name} 34 | 35 | !style (lang="@lang") 36 | 37 | 38 | 39 | !body (lang="@lang") 40 | 41 | 42 | } 43 | 44 | } 45 | -------------------------------------------------------------------------------- /xml/en/pgp_keys.xml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 7 | 8 |
12 | 13 |
14 | 15 | 16 | 17 | Roman Arutyunyan’s 18 | PGP public key 19 | 20 | 21 | Sergey Kandaurov’s 22 | PGP public key 23 | 24 | 25 | Sergey Budnevitch’s 26 | PGP public key 27 | 28 | 29 | Konstantin Pavlov’s 30 | PGP public key 31 | 32 | 33 | nginx 34 | public key (used for signing packages and repositories) 35 | 36 | 37 | 38 |
39 |
40 | -------------------------------------------------------------------------------- /xsls/dirmap.xsls: -------------------------------------------------------------------------------- 1 | 4 | 5 | X:stylesheet { 6 | 7 | X:output method="text"; 8 | 9 | X:strip-space elements="*"; 10 | 11 | X:template = "link" { 12 | !{@id} 13 | X:text{ } 14 | !{substring-before(@doc, '.xml')} 15 | X:text{.html#} 16 | !{@id} 17 | X:text{; } 18 | } 19 | 20 | X:template = "link[@id = 'include']" { 21 | X:text{\\} 22 | !{@id} 23 | X:text{ } 24 | !{substring-before(@doc, '.xml')} 25 | X:text{.html#} 26 | !{@id} 27 | X:text{; } 28 | } 29 | 30 | X:template = "link[starts-with(@id, 'var_')]" { 31 | X:text{$} 32 | !{substring-after(@id, 'var_')} 33 | X:text{ } 34 | !{substring-before(@doc, '.xml')} 35 | X:text{.html#} 36 | !{@id} 37 | X:text{; } 38 | } 39 | 40 | X:template = "links | varlinks" { 41 | X:for-each "link", X:sort "@id" { 42 | X:if "count(preceding-sibling::link[@id = current()/@id]) = 0" { 43 | !! "."; 44 | } 45 | } 46 | } 47 | 48 | } 49 | -------------------------------------------------------------------------------- /xml/cn/docs/http/ngx_http_empty_gif_module.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 9 | 10 | 15 | 16 | 17 |
18 | 19 | 20 | 模块 ngx_http_empty_gif_module 只返回一个透明像素的GIF图片。 21 | 22 | 23 |
24 | 25 | 26 |
27 | 28 | 29 | 30 | location = /_.gif { 31 | empty_gif; 32 | } 33 | 34 | 35 | 36 |
37 | 38 | 39 |
40 | 41 | 42 | 43 | 44 | location 45 | 46 | 47 | 在当前location里使用这个模块处理请求。 48 | 49 | 50 | 51 | 52 |
53 | 54 |
55 | -------------------------------------------------------------------------------- /xsls/dirindex.xsls: -------------------------------------------------------------------------------- 1 | 4 | 5 | X:stylesheet { 6 | 7 | X:output method="xml" doctype-system="../../../dtd/article.dtd" encoding="utf-8" 8 | indent="yes"; 9 | 10 | 14 | X:param XML = "'../xml'"; 15 | 16 | X:param LANG; 17 | 18 | X:template = "modules" { 19 |
23 |
24 | 25 | 26 | !! "module"; 27 | 28 | 29 |
30 |
31 | } 32 | 33 | X:template = "module" { 34 | X:var module="@name" 35 | X:for-each "document(@name)/module/section/directive" { 36 | 37 | } 38 | } 39 | 40 | } 41 | -------------------------------------------------------------------------------- /xsls/varindex.xsls: -------------------------------------------------------------------------------- 1 | 4 | 5 | X:stylesheet { 6 | 7 | X:output method="xml" doctype-system="../../../dtd/article.dtd" encoding="utf-8" 8 | indent="yes"; 9 | 10 | 14 | X:param XML = "'../xml'"; 15 | 16 | X:param LANG; 17 | 18 | X:template = "modules" { 19 |
23 |
24 | 25 | 26 | !! "module"; 27 | 28 | 29 |
30 |
31 | } 32 | 33 | X:template = "module" { 34 | X:var module="@name" 35 | X:for-each "document(@name)//tag-name/var" { 36 | !!; 37 | } 38 | } 39 | 40 | } 41 | -------------------------------------------------------------------------------- /xml/en/docs/http/ngx_http_empty_gif_module.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 9 | 10 | 14 | 15 |
16 | 17 | 18 | The ngx_http_empty_gif_module module emits 19 | single-pixel transparent GIF. 20 | 21 | 22 |
23 | 24 | 25 |
26 | 27 | 28 | 29 | location = /_.gif { 30 | empty_gif; 31 | } 32 | 33 | 34 | 35 |
36 | 37 | 38 |
39 | 40 | 41 | 42 | 43 | location 44 | 45 | 46 | Turns on module processing in a surrounding location. 47 | 48 | 49 | 50 | 51 |
52 | 53 |
54 | -------------------------------------------------------------------------------- /xsls/books.xsls: -------------------------------------------------------------------------------- 1 | 5 | 6 | X:stylesheet { 7 | 8 | X:template = "book" { 9 | 10 | 11 | 12 | 17 | 18 | 33 | 34 |
13 | 14 | 15 | 16 | 19 | X:text {title: } !{@title}
20 | X:if "@author2" { X:text {authors: } } else { X:text {author: } } 21 | X:if "@site" { !{@author} } else { !{@author} } 22 | X:if "@author2" { 23 | X:text {,}
X:text {      } 24 | X:if "@site2" { !{@author2} } 25 | else { !{@author2} } 26 | } 27 |
28 | X:if "@translator" { X:text {translator: } !{@translator}
} 29 | X:if "@publisher" { X:text {publisher: } !{@publisher}
} 30 | X:text {language: } !{@lang}
31 | X:text {year: } !{@year} 32 |
35 | } 36 | 37 | } 38 | -------------------------------------------------------------------------------- /xml/ru/docs/http/ngx_http_empty_gif_module.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 9 | 10 | 14 | 15 |
16 | 17 | 18 | Модуль ngx_http_empty_gif_module выдаёт 19 | однопиксельный прозрачный GIF. 20 | 21 | 22 |
23 | 24 | 25 |
26 | 27 | 28 | 29 | location = /_.gif { 30 | empty_gif; 31 | } 32 | 33 | 34 | 35 |
36 | 37 | 38 |
39 | 40 | 41 | 42 | 43 | location 44 | 45 | 46 | Разрешает в содержащем location выдавать однопиксельный прозрачный GIF. 47 | 48 | 49 | 50 | 51 |
52 | 53 |
54 | -------------------------------------------------------------------------------- /xml/ru/docs/sys_errlist.xml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 7 | 8 |
15 | 16 | 17 |
18 | 19 | 20 | При сборке nginx версий 0.7.66, 0.8.35 и выше на Linux 21 | выводится предупреждение: 22 | 23 | 24 | warning: `sys_errlist' is deprecated; 25 | use `strerror' or `strerror_r' instead 26 | warning: `sys_nerr' is deprecated; 27 | use `strerror' or `strerror_r' instead 28 | 29 | 30 | Это нормально: nginx вынужден использовать устаревшие 31 | sys_errlist[] и sys_nerr в обработчиках сигналов, потому 32 | что функции strerror() и strerror_r() не являются Async-Signal-Safe, 33 | и их нельзя использовать в обработчиках сигналов. 34 | 35 | 36 |
37 | 38 |
39 | -------------------------------------------------------------------------------- /xml/cn/docs/syntax.xml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 7 | 8 |
13 | 14 |
15 | 16 | 17 | 容量可以用千字节(kK)和兆字节(mM)来描述,比如“8k”,“1m”。 18 | 如果没有指定单位,容量以字节为单位。 19 | 20 | 21 | 22 | 时间可以用分钟、小时、天等来描述: 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
s
m分钟
h小时
d
w
M月,30天
y年,365天
32 |
33 | 34 | 35 | 比如,“1h 30m”,“1y 6M”。 36 | 另外,在一些指令中,描述时间可以精确到毫秒精度(ms)。 37 | 如果没有指定单位,时间以秒为单位。 38 | 39 | 40 |
41 | 42 |
43 | -------------------------------------------------------------------------------- /xml/ru/docs/stream/ngx_stream_set_module.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | 9 | 13 | 14 |
15 | 16 | 17 | Модуль ngx_stream_set_module (1.19.3) позволяет 18 | устанавливать значение переменной. 19 | 20 | 21 |
22 | 23 | 24 |
25 | 26 | 27 | 28 | server { 29 | listen 12345; 30 | set $true 1; 31 | } 32 | 33 | 34 | 35 |
36 | 37 | 38 |
39 | 40 | 41 | $переменная значение 42 | 43 | server 44 | 45 | 46 | Устанавливает значение указанной переменной. 47 | В качестве значения можно использовать текст, переменные и их комбинации. 48 | 49 | 50 | 51 | 52 |
53 | 54 |
55 | -------------------------------------------------------------------------------- /xml/en/docs/sys_errlist.xml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 7 | 8 |
15 | 16 | 17 |
18 | 19 | 20 | Q: 21 | While building nginx version 0.7.66, 0.8.35 or higher on Linux 22 | the following warning messages are issued: 23 | 24 | 25 | warning: `sys_errlist' is deprecated; 26 | use `strerror' or `strerror_r' instead 27 | warning: `sys_nerr' is deprecated; 28 | use `strerror' or `strerror_r' instead 29 | 30 | 31 | 32 | 33 | 34 | A: 35 | This is normal: nginx has to use the deprecated sys_errlist[] and sys_nerr 36 | in signal handlers because strerror() and strerror_r() functions 37 | are not Async-Signal-Safe. 38 | 39 | 40 |
41 | 42 |
43 | -------------------------------------------------------------------------------- /xml/en/docs/stream/ngx_stream_set_module.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | 9 | 13 | 14 |
15 | 16 | 17 | The ngx_stream_set_module module (1.19.3) allows 18 | setting a value for a variable. 19 | 20 | 21 |
22 | 23 | 24 |
25 | 26 | 27 | 28 | server { 29 | listen 12345; 30 | set $true 1; 31 | } 32 | 33 | 34 | 35 |
36 | 37 | 38 |
39 | 40 | 41 | $variable value 42 | 43 | server 44 | 45 | 46 | Sets a value for the specified variable. 47 | The value can contain text, variables, and their combination. 48 | 49 | 50 | 51 | 52 |
53 | 54 |
55 | -------------------------------------------------------------------------------- /xml/en/docs/stream/ngx_stream_return_module.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | 9 | 13 | 14 |
15 | 16 | 17 | The ngx_stream_return_module module (1.11.2) allows 18 | sending a specified value to the client and then closing the connection. 19 | 20 | 21 |
22 | 23 | 24 |
25 | 26 | 27 | 28 | server { 29 | listen 12345; 30 | return $time_iso8601; 31 | } 32 | 33 | 34 | 35 |
36 | 37 | 38 |
39 | 40 | 41 | value 42 | 43 | server 44 | 45 | 46 | Specifies a value to send to the client. 47 | The value can contain text, variables, and their combination. 48 | 49 | 50 | 51 | 52 |
53 | 54 |
55 | -------------------------------------------------------------------------------- /xml/ru/docs/stream/ngx_stream_return_module.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | 9 | 13 | 14 |
15 | 16 | 17 | Модуль ngx_stream_return_module (1.11.2) позволяет 18 | отправить заданное значение клиенту и после этого закрыть соединение. 19 | 20 | 21 |
22 | 23 | 24 |
25 | 26 | 27 | 28 | server { 29 | listen 12345; 30 | return $time_iso8601; 31 | } 32 | 33 | 34 | 35 |
36 | 37 | 38 |
39 | 40 | 41 | значение 42 | 43 | server 44 | 45 | 46 | Задаёт значение, отправляемое клиенту. 47 | В качестве значения можно использовать текст, переменные и их комбинации. 48 | 49 | 50 | 51 | 52 |
53 | 54 |
55 | -------------------------------------------------------------------------------- /xsls/projects.xsls: -------------------------------------------------------------------------------- 1 | 4 | 5 | X:stylesheet { 6 | 7 | X:template = "topnews" { 8 | X:text disable-output-escaping="yes" { 9 | <table class="news"> 10 | } 11 | !! "document(concat($XML, '/index.xml'))/news/event[position() <= 4]"; 12 | X:text disable-output-escaping="yes" { 13 | </table> 14 | } 15 | } 16 | 17 | X:template = "event" { 18 | 19 | 20 | !{@date} 21 | 22 | !! "para"; 23 | 24 | } 25 | 26 | X:template = "projects" {
!!;
} 27 | 28 | X:template = "project" { 29 | 30 | 31 | 32 | 33 | 38 | 39 | 44 | 45 | 46 | 47 | 48 | 49 | 50 |
34 | 35 | {@title} logo 36 | 37 | 40 | !{@title} X:text { } !{@description}
41 | Docs • 42 | Code 43 |

51 | } 52 | 53 | } 54 | -------------------------------------------------------------------------------- /xml/cn/GNUmakefile: -------------------------------------------------------------------------------- 1 | DOCS = \ 2 | faq \ 3 | windows \ 4 | syntax \ 5 | dirindex \ 6 | http/request_processing \ 7 | http/server_names \ 8 | http/configuring_https_servers \ 9 | debugging_log \ 10 | http/converting_rewrite_rules \ 11 | 12 | FAQ = \ 13 | welcome_nginx_facebook \ 14 | sys_errlist \ 15 | 16 | REFS = \ 17 | http/ngx_http_access_module \ 18 | http/ngx_http_addition_module \ 19 | http/ngx_http_auth_basic_module \ 20 | http/ngx_http_autoindex_module \ 21 | http/ngx_http_browser_module \ 22 | http/ngx_http_core_module \ 23 | http/ngx_http_empty_gif_module \ 24 | http/ngx_http_flv_module \ 25 | http/ngx_http_geo_module \ 26 | http/ngx_http_geoip_module \ 27 | http/ngx_http_gzip_static_module \ 28 | http/ngx_http_image_filter_module \ 29 | http/ngx_http_index_module \ 30 | http/ngx_http_limit_conn_module \ 31 | http/ngx_http_limit_req_module \ 32 | http/ngx_http_log_module \ 33 | http/ngx_http_map_module \ 34 | http/ngx_http_proxy_module \ 35 | http/ngx_http_referer_module \ 36 | http/ngx_http_rewrite_module \ 37 | http/ngx_http_upstream_module \ 38 | -------------------------------------------------------------------------------- /xml/cn/docs/http/ngx_http_flv_module.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 9 | 10 | 15 | 16 |
17 | 18 | 19 | 模块ngx_http_flv_module 为Flash Video(FLV)文件 20 | 提供服务端伪流媒体支持 21 | 22 | 23 | 24 | 通过返回以请求偏移位置开始的文件内容,该模块专门处理 25 | 在查询串中有start参数的请求, 26 | 和有预先设置到FLV头部的请求。 27 | 28 | 29 | 30 | 这个模块并不是默认构建的,必须通过配置参数 31 | --with-http_flv_module 32 | 来启用。 33 | 34 | 35 |
36 | 37 | 38 |
39 | 40 | 41 | 42 | location ~ \.flv$ { 43 | flv; 44 | } 45 | 46 | 47 | 48 |
49 | 50 | 51 |
52 | 53 | 54 | 55 | location 56 | 57 | 58 | 在当前location里使用这个模块处理请求。 59 | 60 | 61 | 62 | 63 |
64 | 65 |
66 | -------------------------------------------------------------------------------- /xslt/dirindex.xslt: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | 14 | 15 | 16 | 17 | 18 | 19 |
21 |
22 | 23 | 24 | 25 | 26 | 27 |
28 |
29 |
30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 |
39 | -------------------------------------------------------------------------------- /xml/en/docs/faq/accept_failed.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 |
13 | 14 |
15 | 16 | 17 | Q: 18 | What does the following error mean in the log file: "accept() failed (53: 19 | Software caused connection abort) while accepting new 20 | connection on 0.0.0.0:80"? 21 | 22 | 23 | 24 |   25 | 26 | 27 | 28 | A: 29 | Such errors stem from the connections that the clients managed 30 | to close before nginx was able to process them. For instance, this can 31 | happen in a situation when the user didn’t wait for a page 32 | heavily populated with images to load fully, and clicked on a 33 | different link. In this case user’s browser would close all of 34 | the prior connections which aren’t longer necessary. 35 | It is a non-critical error. 36 | 37 | 38 |
39 | 40 |
41 | -------------------------------------------------------------------------------- /xslt/varindex.xslt: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | 14 | 15 | 16 | 17 | 18 | 19 |
21 |
22 | 23 | 24 | 25 | 26 | 27 |
28 |
29 |
30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 |
39 | -------------------------------------------------------------------------------- /xml/en/docs/faq/variables_in_config.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 |
14 | 15 |
16 | 17 | 18 | Q: 19 | Is there a proper way to use nginx variables to make sections of 20 | the configuration shorter, using them as macros for making 21 | parts of configuration work as templates? 22 | 23 | 24 | 25 |   26 | 27 | 28 | 29 | A: 30 | Variables should not be used as template macros. Variables are 31 | evaluated in the run-time during the processing of each 32 | request, so they are rather costly compared to plain static 33 | configuration. Using variables to store static strings is also 34 | a bad idea. Instead, a macro expansion and "include" directives 35 | should be used to generate configs more easily and it can be 36 | done with the external tools, e.g. sed + make or any other 37 | common template mechanism. 38 | 39 | 40 |
41 | 42 |
43 | -------------------------------------------------------------------------------- /xml/en/docs/faq/license_copyright.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 |
13 | 14 |
15 | 16 | 17 | Q: 18 | I’d like to use nginx distribution as part of my proprietary 19 | software package. How can nginx copyright be acknowledged 20 | when using nginx as part of a proprietary software distribution? 21 | 22 | 23 | 24 |   25 | 26 | 27 | 28 | A: 29 | The text below should be added to your license conditions, 30 | followed by the text of the applicable 2-clause BSD license described 31 | here. 32 | 33 | 34 | This product contains software provided by Nginx, Inc. and its contributors. 35 | 36 | 37 | 38 | 39 | 40 | Also, if your build of nginx includes any of the following 3rd party 41 | products: zlib, PCRE, OpenSSL — it’s worth including their 42 | copyright acknowledgements and disclaimers as well. 43 | 44 | 45 |
46 | 47 |
48 | -------------------------------------------------------------------------------- /xslt/error.xslt: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | <xsl:value-of select="@name"/> 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /xml/ja/docs/debugging_log.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 |
6 | 7 |
8 | 9 | 10 | デバッギングログを有効にするには、nginx をデバッグオプションを付けて設定する必要があります: 11 | 12 | 13 | ./configure --with-debug ... 14 | 15 | 16 | 次に error_logdebug レベルをセットします: 17 | 18 | 19 | error_log /path/to/log debug; 20 | 21 | 22 | nginx の Windows バイナリバージョンでは常にデバッグログモードがサポートされてビルドされているので、debug レベルをセットするだけです。 23 | 24 | 25 | 26 | 別のレベル、例えば server レベルでログを定義するとそのサーバでのデバッギングログが無効になりますので注意してください: 27 | 28 | error_log /path/to/log debug; 29 | 30 | http { 31 | server { 32 | error_log /path/to/log; 33 | ... 34 | 35 | このサーバログをコメントアウトするか debug フラグを追加してください: 36 | 37 | error_log /path/to/log debug; 38 | 39 | http { 40 | server { 41 | error_log /path/to/log debug; 42 | ... 43 | 44 | 45 | 46 | 47 | また、特定のアドレスだけデバッギングログを有効にすることもできます: 48 | 49 | 50 | error_log /path/to/log; 51 | 52 | events { 53 | debug_connection 192.168.1.1; 54 | debug_connection 192.168.10.0/24; 55 | } 56 | 57 | 58 | 59 |
60 | 61 |
62 | -------------------------------------------------------------------------------- /xml/en/docs/faq/chunked_encoding_from_backend.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 |
12 | 13 |
14 | 15 | 16 | Q: 17 | My backend server appears to send HTTP/1.0 responses using 18 | chunked encoding but nginx doesn’t handle it correctly. 19 | For instance, I’m using nginx as a frontend to my node.js 20 | application and instead of pure JSON from backend, nginx 21 | returns something framed in decimal numbers like 22 | 23 | 24 | 47 25 | {"error":"query error","message":"Parameter(s) missing: user,password"} 26 | 0 27 | 28 | 29 | 30 | 31 | 32 |   33 | 34 | 35 | 36 | A: 37 | Your backend violates HTTP specification (see 38 | RFC 2616, 39 | "3.6 Transfer Codings"). 40 | The "chunked" transfer-codings must not be used with HTTP/1.0. 41 | You’d need to either fix your backend application or upgrade 42 | to nginx version 1.1.4 and newer, where an additional code 43 | was introduced to handle such erratic backend behavior. 44 | 45 | 46 |
47 | 48 |
49 | -------------------------------------------------------------------------------- /tools/LICENSE: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2014 Maxim Dounin 3 | * Copyright (C) 2014 Nginx, Inc. 4 | * All rights reserved. 5 | * 6 | * Redistribution and use in source and binary forms, with or without 7 | * modification, are permitted provided that the following conditions 8 | * are met: 9 | * 1. Redistributions of source code must retain the above copyright 10 | * notice, this list of conditions and the following disclaimer. 11 | * 2. Redistributions in binary form must reproduce the above copyright 12 | * notice, this list of conditions and the following disclaimer in the 13 | * documentation and/or other materials provided with the distribution. 14 | * 15 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 16 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 17 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 18 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 19 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 20 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 21 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 22 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 23 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 24 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 25 | * SUCH DAMAGE. 26 | */ 27 | -------------------------------------------------------------------------------- /text/LICENSE: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2002-2021 Igor Sysoev 3 | * Copyright (C) 2011-2025 Nginx, Inc. 4 | * All rights reserved. 5 | * 6 | * Redistribution and use in source and binary forms, with or without 7 | * modification, are permitted provided that the following conditions 8 | * are met: 9 | * 1. Redistributions of source code must retain the above copyright 10 | * notice, this list of conditions and the following disclaimer. 11 | * 2. Redistributions in binary form must reproduce the above copyright 12 | * notice, this list of conditions and the following disclaimer in the 13 | * documentation and/or other materials provided with the distribution. 14 | * 15 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 16 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 17 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 18 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 19 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 20 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 21 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 22 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 23 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 24 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 25 | * SUCH DAMAGE. 26 | */ 27 | -------------------------------------------------------------------------------- /xml/it/download.xml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 7 | 8 |
13 | 14 | 15 |
16 | 17 | 18 | 19 |
20 | 21 | 22 |
23 | 24 | 25 | 26 |
27 | 28 | 29 |
30 | 31 | 32 | 33 |
34 | 35 | 36 |
37 | 38 | 39 | Archivio Mercurial (sola lettura): 40 | 41 | 42 | 43 | code: http://hg.nginx.org/nginx 44 | 45 | 46 | site: http://hg.nginx.org/nginx.org 47 | 48 | 49 | 50 | 51 | 52 |
53 | 54 | 55 |
56 | 57 | 58 | 59 | 60 | 61 | Pacchetti Linux per la 62 | versione stabile 63 | 64 | 65 | 66 | Pacchetti Linux per la 67 | versione principale 68 | 69 | 70 | 71 | 72 | 73 |
74 | 75 |
76 | -------------------------------------------------------------------------------- /xml/ru/download.xml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 7 | 8 |
12 | 13 | 14 |
15 | 16 | 17 | 18 |
19 | 20 | 21 |
22 | 23 | 24 | 25 |
26 | 27 | 28 |
29 | 30 | 31 | 32 |
33 | 34 | 35 |
36 | 37 | 38 | Репозитории GitHub: 39 | 40 | 41 | 42 | код: https://github.com/nginx/nginx 43 | 44 | 45 | 46 | сайт: https://github.com/nginx/nginx.org 47 | 48 | 49 | 50 | 51 | 52 | 53 | Mercurial-зеркала: 54 | 55 | 56 | 57 | код: http://hg.nginx.org/nginx 58 | 59 | 60 | 61 | сайт: http://hg.nginx.org/nginx.org 62 | 63 | 64 | 65 | 66 | 67 |
68 | 69 | 70 |
71 | 72 | 73 | Пакеты для Linux 74 | стабильной и основной версий. 75 | 76 | 77 |
78 | 79 |
80 | -------------------------------------------------------------------------------- /xml/en/download.xml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 7 | 8 |
12 | 13 | 14 |
15 | 16 | 17 | 18 |
19 | 20 | 21 |
22 | 23 | 24 | 25 |
26 | 27 | 28 |
29 | 30 | 31 | 32 |
33 | 34 | 35 |
36 | 37 | 38 | GitHub repositories: 39 | 40 | 41 | 42 | code: https://github.com/nginx/nginx 43 | 44 | 45 | 46 | website: https://github.com/nginx/nginx.org 47 | 48 | 49 | 50 | 51 | 52 | 53 | Mercurial mirrors: 54 | 55 | 56 | 57 | code: http://hg.nginx.org/nginx 58 | 59 | 60 | 61 | website: http://hg.nginx.org/nginx.org 62 | 63 | 64 | 65 | 66 | 67 |
68 | 69 | 70 |
71 | 72 | 73 | Linux packages for 74 | stable and mainline versions. 75 | 76 | 77 |
78 | 79 |
80 | -------------------------------------------------------------------------------- /xsls/article.xsls: -------------------------------------------------------------------------------- 1 | 5 | 6 | X:stylesheet { 7 | 8 | X:output method="html" version="4.0" indent="no" encoding="utf-8"; 9 | 10 | X:strip-space elements = "article section"; 11 | 12 | 16 | X:param XML = "'../xml'"; 17 | X:param YEAR; 18 | X:param ORIGIN; 19 | X:param TRANS; 20 | 21 | X:var LINK = "/article/@link | /module/@link"; 22 | X:var LANG = "/article/@lang | /module/@lang"; 23 | 24 | X:include href = "dirname.xslt"; 25 | X:include href = "link.xslt"; 26 | X:include href = "style.xslt"; 27 | X:include href = "body.xslt"; 28 | X:include href = "menu.xslt"; 29 | X:include href = "content.xslt"; 30 | X:include href = "books.xslt"; 31 | X:include href = "directive.xslt"; 32 | X:include href = "donate.xslt"; 33 | X:include href = "download.xslt"; 34 | X:include href = "security.xslt"; 35 | X:include href = "versions.xslt"; 36 | X:include href = "projects.xslt"; 37 | 38 | X:template = "/article | /module" { 39 | 40 | 41 | X:if "@lang = 'he'" { X:attribute "dir" { X:text{rtl} } } 42 | 43 | X:if "@lang = 'cn'" { X:attribute "lang" { X:text{zh-CN} } } 44 | 45 | 46 | 47 | !{@name} 48 | 49 | !style (lang="@lang") 50 | 51 | 52 | 53 | !body (lang="@lang") 54 | 55 | 56 | } 57 | 58 | 59 | } 60 | -------------------------------------------------------------------------------- /xml/ru/docs/http/ngx_http_flv_module.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 9 | 10 | 14 | 15 |
16 | 17 | 18 | Модуль ngx_http_flv_module обеспечивает серверную поддержку 19 | псевдо-стриминга для файлов Flash Video (FLV). 20 | 21 | 22 | 23 | Он специальным образом обрабатывает запросы с аргументом 24 | start в строке запроса, посылая в ответ содержимое файла 25 | с запрошенного смещения в байтах, добавив перед ним FLV-заголовок. 26 | 27 | 28 | 29 | По умолчанию этот модуль не собирается, его сборку необходимо 30 | разрешить с помощью конфигурационного параметра 31 | --with-http_flv_module. 32 | 33 | 34 |
35 | 36 | 37 |
38 | 39 | 40 | 41 | location ~ \.flv$ { 42 | flv; 43 | } 44 | 45 | 46 | 47 |
48 | 49 | 50 |
51 | 52 | 53 | 54 | 55 | location 56 | 57 | 58 | Включает в содержащем location обработку этим модулем. 59 | 60 | 61 | 62 | 63 |
64 | 65 |
66 | -------------------------------------------------------------------------------- /xml/en/docs/http/ngx_http_flv_module.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 9 | 10 | 14 | 15 |
16 | 17 | 18 | The ngx_http_flv_module module provides pseudo-streaming 19 | server-side support for Flash Video (FLV) files. 20 | 21 | 22 | 23 | It handles requests with the start argument in 24 | the request URI’s query string specially, by sending back the contents 25 | of a file starting from the requested byte offset and with the prepended FLV 26 | header. 27 | 28 | 29 | 30 | This module is not built by default, it should be enabled with the 31 | --with-http_flv_module 32 | configuration parameter. 33 | 34 | 35 |
36 | 37 | 38 |
39 | 40 | 41 | 42 | location ~ \.flv$ { 43 | flv; 44 | } 45 | 46 | 47 | 48 |
49 | 50 | 51 |
52 | 53 | 54 | 55 | 56 | location 57 | 58 | 59 | Turns on module processing in a surrounding location. 60 | 61 | 62 | 63 | 64 |
65 | 66 |
67 | -------------------------------------------------------------------------------- /xslt/dirname.xslt: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | / 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | .. 29 | 30 | / 31 | 32 | 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /xml/en/docs/faq/daemon_master_process_off.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 |
13 | 14 |
15 | 16 | 17 | Q: 18 | Can I run nginx with "daemon off" or "master_process off" settings 19 | in a production environment? 20 | 21 | 22 | 23 |   24 | 25 | 26 | 27 | A: 28 | First of all, both "daemon on|off" and "master_process on|off" directives were 29 | intended to be used primarily for nginx code development. 30 | 31 | 32 | 33 | While many people use "daemon off" in production it wasn’t really meant for 34 | that. Since version 1.0.9 it is now quite safe to run nginx in production 35 | with "daemon off", though. Bear in mind that non-stop upgrade is not an 36 | option with "daemon off". 37 | 38 | 39 | 40 | In a development environment, using "master_process off", nginx can run in 41 | the foreground without the master process and can be terminated simply 42 | with ^C (SIGINT). This is somewhat similar to running Apache with 43 | an 'X' command-line option. However you should NEVER run nginx in production 44 | with "master_process off". 45 | 46 | 47 |
48 | 49 |
50 | -------------------------------------------------------------------------------- /xml/ru/docs/http/ngx_http_random_index_module.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 9 | 10 | 14 | 15 |
16 | 17 | 18 | Модуль ngx_http_random_index_module обслуживает запросы, 19 | оканчивающиеся слэшом (‘/’), и выдаёт случайный 20 | файл в качестве индексного файла каталога. 21 | Модуль выполняется до модуля 22 | ngx_http_index_module. 23 | 24 | 25 | 26 | По умолчанию этот модуль не собирается, его сборку необходимо 27 | разрешить с помощью конфигурационного параметра 28 | --with-http_random_index_module. 29 | 30 | 31 |
32 | 33 | 34 |
35 | 36 | 37 | 38 | location / { 39 | random_index on; 40 | } 41 | 42 | 43 | 44 |
45 | 46 | 47 |
48 | 49 | 50 | on | off 51 | off 52 | location 53 | 54 | 55 | Разрешает или запрещает в содержащем location обработку этим модулем. 56 | 57 | 58 | 59 | 60 |
61 | 62 |
63 | -------------------------------------------------------------------------------- /xml/en/docs/http/ngx_http_random_index_module.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 9 | 10 | 14 | 15 |
16 | 17 | 18 | The ngx_http_random_index_module module processes requests 19 | ending with the slash character (‘/’) and picks a random 20 | file in a directory to serve as an index file. 21 | The module is processed before the 22 | ngx_http_index_module 23 | module. 24 | 25 | 26 | 27 | This module is not built by default, it should be enabled with the 28 | --with-http_random_index_module 29 | configuration parameter. 30 | 31 | 32 |
33 | 34 | 35 |
36 | 37 | 38 | 39 | location / { 40 | random_index on; 41 | } 42 | 43 | 44 | 45 |
46 | 47 | 48 |
49 | 50 | 51 | on | off 52 | off 53 | location 54 | 55 | 56 | Enables or disables module processing in a surrounding location. 57 | 58 | 59 | 60 | 61 |
62 | 63 |
64 | -------------------------------------------------------------------------------- /xslt/projects.xslt: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | <table class="news"> 11 | 12 | 13 | 14 | </table> 15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 | 32 | 33 | 34 | 39 | 40 | 45 | 46 | 47 | 48 | 49 | 50 | 51 |
35 | 36 | {@title} logo 37 | 38 | 41 |
42 | Docs • 43 | Code 44 |

52 |
53 | 54 | 55 | -------------------------------------------------------------------------------- /xml/ru/docs/njs/cli.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | 9 |
13 | 14 |
15 | 16 | Создание и отладка njs-скриптов может осуществляться 17 | в командной строке. 18 | Утилита командной строки доступна после установки 19 | пакета Linux 20 | или после сборки из 21 | исходных файлов. 22 | В отличие от njs, запущенном внутри nginx, 23 | в утилите недоступны объекты nginx 24 | (HTTP и 25 | Stream). 26 | 27 | $ echo "2**3" | njs -q 28 | 8 29 | 30 | $ njs 31 | >> globalThis 32 | global { 33 | njs: njs { 34 | version: '0.3.9' 35 | }, 36 | global: [Circular], 37 | process: process { 38 | argv: [ 39 | '/usr/bin/njs' 40 | ], 41 | env: { 42 | PATH: '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', 43 | HOSTNAME: 'f777c149d4f8', 44 | TERM: 'xterm', 45 | NGINX_VERSION: '1.17.9', 46 | NJS_VERSION: '0.3.9', 47 | PKG_RELEASE: '1~buster', 48 | HOME: '/root' 49 | } 50 | }, 51 | console: { 52 | log: [Function: native], 53 | dump: [Function: native], 54 | time: [Function: native], 55 | timeEnd: [Function: native] 56 | }, 57 | print: [Function: native] 58 | } 59 | >> 60 | 61 | 62 | 63 |
64 | 65 |
66 | -------------------------------------------------------------------------------- /xml/cn/docs/http/ngx_http_index_module.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 9 | 10 | 15 | 16 |
17 | 18 | 19 | 模块 ngx_http_index_module 处理以斜线字符(‘/’)结尾的请求。 20 | 21 | 22 |
23 | 24 | 25 |
26 | 27 | 28 | 29 | location / { 30 | index index.$geo.html index.html; 31 | } 32 | 33 | 34 | 35 |
36 | 37 | 38 |
39 | 40 | 41 | file ... 42 | index.html 43 | http 44 | server 45 | location 46 | 47 | 48 | 定义将要被作为默认页的文件。 49 | 文件 file 的名字可以包含变量。 50 | 文件以配置中指定的顺序被nginx检查。 51 | 列表中的最后一个元素可以是一个带有绝对路径的文件。 52 | 例子: 53 | 54 | index index.$geo.html index.0.html /index.html; 55 | 56 | 57 | 58 | 59 | 需要注意的是,index文件会引发内部重定向,请求可能会被其它location处理。 60 | 比如,下面这个例子: 61 | 62 | location = / { 63 | index index.html; 64 | } 65 | 66 | location / { 67 | ... 68 | } 69 | 70 | 请求“/”实际上将会在第二个location中作为“/index.html”被处理。 71 | 72 | 73 | 74 | 75 |
76 | 77 |
78 | -------------------------------------------------------------------------------- /xslt/dirmap.xslt: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | .html# 17 | 18 | ; 19 | 20 | 21 | 22 | \ 23 | 24 | 25 | 26 | .html# 27 | 28 | ; 29 | 30 | 31 | 32 | $ 33 | 34 | 35 | 36 | .html# 37 | 38 | ; 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | -------------------------------------------------------------------------------- /xml/ru/docs/mail/ngx_mail_realip_module.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | 9 | 13 | 14 |
15 | 16 | 17 | Модуль ngx_mail_realip_module позволяет 18 | менять адрес и порт клиента 19 | на переданные в заголовке протокола PROXY (1.19.8). 20 | Протокол PROXY должен быть предварительно включён при помощи установки 21 | параметра 22 | в директиве listen. 23 | 24 | 25 |
26 | 27 | 28 |
29 | 30 | 31 | 32 | listen 110 proxy_protocol; 33 | 34 | set_real_ip_from 192.168.1.0/24; 35 | set_real_ip_from 192.168.2.1; 36 | set_real_ip_from 2001:0db8::/32; 37 | 38 | 39 | 40 |
41 | 42 | 43 |
44 | 45 | 46 | 47 | адрес | 48 | CIDR | 49 | unix: 50 | 51 | mail 52 | server 53 | 54 | 55 | Задаёт доверенные адреса, которые передают верный адрес 56 | для замены. 57 | Если указано специальное значение unix:, 58 | доверенными будут считаться все UNIX-сокеты. 59 | 60 | 61 | 62 | 63 |
64 | 65 |
66 | -------------------------------------------------------------------------------- /xml/cn/docs/debugging_log.xml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 7 | 8 |
12 | 13 | 14 |
15 | 16 | 17 | 要开启调试日志,首先需要在配置nginx时打开调试功能,然后编译: 18 | 19 | 20 | ./configure --with-debug ... 21 | 22 | 23 | 然后在配置文件中设置error_log的级别为debug: 24 | 25 | 26 | error_log /path/to/log debug; 27 | 28 | 29 | nginx的windows二进制版本总是将调试日志开启的,因此只需要设置debug的日志级别即可。 30 | 31 | 32 | 33 | 注意,重新定义错误日志时,如过没有指定debug级别,调试日志会被屏蔽。下面的例子里,在层中重新定义的日志就屏蔽了这个虚拟主机的调试日志: 34 | 35 | error_log /path/to/log debug; 36 | 37 | http { 38 | server { 39 | error_log /path/to/log; 40 | ... 41 | 42 | 为了避免这个问题,注释这行重新定义日志的配置,或者也给日志指定debug级别: 43 | 44 | error_log /path/to/log debug; 45 | 46 | http { 47 | server { 48 | error_log /path/to/log debug; 49 | ... 50 | 51 | 52 | 53 | 54 | 另外,也可以只针对选定的客户端地址开启调试日志: 55 | 56 | 57 | error_log /path/to/log; 58 | 59 | events { 60 | debug_connection 192.168.1.1; 61 | debug_connection 192.168.10.0/24; 62 | } 63 | 64 | 65 | 66 |
67 | 68 |
69 | -------------------------------------------------------------------------------- /xml/en/docs/njs/cli.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | 9 |
13 | 14 |
15 | 16 | njs scripts development and debugging can be performed 17 | from the command-line. 18 | The command-line utility is available after the installation of 19 | the Linux package 20 | or after building from the 21 | sources. 22 | Compared to njs running inside nginx, 23 | nginx objects 24 | (HTTP and 25 | Stream) 26 | are not available in the utility. 27 | 28 | $ echo "2**3" | njs -q 29 | 8 30 | 31 | $ njs 32 | >> globalThis 33 | global { 34 | njs: njs { 35 | version: '0.3.9' 36 | }, 37 | global: [Circular], 38 | process: process { 39 | argv: [ 40 | '/usr/bin/njs' 41 | ], 42 | env: { 43 | PATH: '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', 44 | HOSTNAME: 'f777c149d4f8', 45 | TERM: 'xterm', 46 | NGINX_VERSION: '1.17.9', 47 | NJS_VERSION: '0.3.9', 48 | PKG_RELEASE: '1~buster', 49 | HOME: '/root' 50 | } 51 | }, 52 | console: { 53 | log: [Function: native], 54 | dump: [Function: native], 55 | time: [Function: native], 56 | timeEnd: [Function: native] 57 | }, 58 | print: [Function: native] 59 | } 60 | >> 61 | 62 | 63 | 64 |
65 | 66 |
67 | -------------------------------------------------------------------------------- /xml/ru/docs/install.xml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 7 | 8 |
13 | 14 |
15 | 16 | 17 | nginx устанавливается по-разному в зависимости от операционной системы. 18 | 19 | 20 |
21 | 22 | 23 |
24 | 25 | 26 | Для установки nginx на Linux могут быть использованы 27 | пакеты с nginx.org. 28 | 29 | 30 |
31 | 32 | 33 |
34 | 35 | 36 | На FreeBSD можно установить nginx либо из 37 | пакетов, 38 | либо с помощью системы 39 | портов. 40 | Система портов даёт большую гибкость, позволяя выбирать из широкого 41 | набора настроек. 42 | Порт скомпилирует nginx с выбранными опциями и установит. 43 | 44 | 45 |
46 | 47 | 48 |
49 | 50 | 51 | Если необходима специфическая функциональность, недоступная из пакетов или 52 | портов, можно скомпилировать nginx из исходного кода. 53 | Будучи наиболее гибким, этот подход может быть сложным для начинающего. 54 | освещает этот вопрос более подробно. 55 | 56 | 57 |
58 | 59 |
60 | -------------------------------------------------------------------------------- /xml/en/docs/install.xml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 7 | 8 |
13 | 14 |
15 | 16 | 17 | nginx can be installed differently, depending on the operating system. 18 | 19 | 20 |
21 | 22 | 23 |
24 | 25 | 26 | For Linux, nginx packages 27 | from nginx.org can be used. 28 | 29 | 30 |
31 | 32 | 33 |
34 | 35 | 36 | On FreeBSD, nginx can be installed either from the packages 38 | or through the 39 | ports 40 | system. 41 | The ports system provides greater flexibility, allowing selection among 42 | a wide range of options. 43 | The port will compile nginx with the specified options and install it. 44 | 45 | 46 |
47 | 48 | 49 |
50 | 51 | 52 | If some special functionality is required, not available with packages and 53 | ports, nginx can also be compiled from source files. 54 | While more flexible, this approach may be complex for a beginner. 55 | For more information, see . 56 | 57 | 58 |
59 | 60 |
61 | -------------------------------------------------------------------------------- /xml/en/docs/mail/ngx_mail_realip_module.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | 9 | 13 | 14 |
15 | 16 | 17 | The ngx_mail_realip_module module is used 18 | to change the client address and port 19 | to the ones sent in the PROXY protocol header (1.19.8). 20 | The PROXY protocol must be previously enabled by setting the 21 | parameter 22 | in the listen directive. 23 | 24 | 25 |
26 | 27 | 28 |
29 | 30 | 31 | 32 | listen 110 proxy_protocol; 33 | 34 | set_real_ip_from 192.168.1.0/24; 35 | set_real_ip_from 192.168.2.1; 36 | set_real_ip_from 2001:0db8::/32; 37 | 38 | 39 | 40 |
41 | 42 | 43 |
44 | 45 | 46 | 47 | address | 48 | CIDR | 49 | unix: 50 | 51 | mail 52 | server 53 | 54 | 55 | Defines trusted addresses that are known to send correct 56 | replacement addresses. 57 | If the special value unix: is specified, 58 | all UNIX-domain sockets will be trusted. 59 | 60 | 61 | 62 | 63 |
64 | 65 |
66 | -------------------------------------------------------------------------------- /xml/cn/docs/http/ngx_http_gzip_static_module.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 9 | 10 | 15 | 16 |
17 | 18 | 19 | 模块 ngx_http_gzip_static_module 允许发送以“.gz”作为文件扩展名的预压缩文件,以替代发送普通文件。 20 | 21 | 22 | 23 | 这个模块不是默认编译的,因此需要指定 24 | --with-http_gzip_static_module 25 | 编译选项。 26 | 27 | 28 |
29 | 30 | 31 |
32 | 33 | 34 | 35 | gzip_static on; 36 | gzip_proxied expired no-cache no-store private auth; 37 | 38 | 39 | 40 |
41 | 42 | 43 |
44 | 45 | 46 | on | off 47 | off 48 | http 49 | server 50 | location 51 | 52 | 53 | 启用或者禁用检查预压缩文件是否存在。 54 | 与以下指令共同确定功能开启: 55 | , 56 | , 57 | , 58 | 和. 59 | 60 | 61 | 62 | 文件可以使用 gzip 命令来进行压缩,或任何其他兼容的命令。 63 | 建议压缩文件和原始文件的修改日期和时间保持一致。 64 | 65 | 66 | 67 | 68 |
69 | 70 |
71 | -------------------------------------------------------------------------------- /xslt/books.xslt: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 18 | 19 | 33 | 34 |
14 | 15 | 16 | 17 | 20 | title:
21 | authors: author: 22 | 23 | 24 | ,
       25 | 26 |
27 |
28 | translator:
29 | publisher:
30 | language:
31 | year: 32 |
35 |
36 | 37 |
38 | -------------------------------------------------------------------------------- /xml/tr/docs/debugging_log.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 |
6 | 7 |
8 | 9 | 10 | Hata ayıklama kayıt işlemini olanaklı kılmak için, nginxi debug komutu ile yapılandırmalısınız: 11 | 12 | 13 | ./configure --with-debug ... 14 | 15 | 16 | ve daha sonra error_log ile debug dizin yolunu belirtin: 17 | 18 | 19 | error_log /path/to/log debug; 20 | 21 | 22 | nginx/Windows binary versiyonu, varsayılan olarak hata ayıklama kayıt desteği ile gelir. Bu yüzden yalnızca debug dizin yolunu belirtmek yeterlidir. 23 | 24 | 25 | 26 | Not: başka düzeyde bulunan tanımlı bir kayıt (örneğin server üzerinde), diğer hata ayıklama kaydını etkisizleştirir: 27 | 28 | error_log /path/to/log debug; 29 | 30 | http { 31 | server { 32 | error_log /path/to/log; 33 | ... 34 | 35 | Ya bu sunucudaki kaydı yorum ifadesi ile kapatmalı ya da debug etiketini (flag) buraya da eklemelisiniz: 36 | 37 | error_log /path/to/log debug; 38 | 39 | http { 40 | server { 41 | error_log /path/to/log debug; 42 | ... 43 | 44 | 45 | 46 | 47 | Hata ayıklama kayıt işlemini belirli adresler için de belirleyebilirsiniz: 48 | 49 | 50 | error_log /path/to/log; 51 | 52 | events { 53 | debug_connection 192.168.1.1; 54 | debug_connection 192.168.10.0/24; 55 | } 56 | 57 | 58 | 59 |
60 | 61 |
62 | -------------------------------------------------------------------------------- /xml/en/docs/ngx_google_perftools_module.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | 9 | 13 | 14 |
15 | 16 | 17 | The ngx_google_perftools_module module (0.6.29) enables 18 | profiling of nginx worker processes using 19 | Google Performance Tools. 20 | The module is intended for nginx developers. 21 | 22 | 23 | 24 | This module is not built by default, it should be enabled with the 25 | --with-google_perftools_module 26 | configuration parameter. 27 | 28 | This module requires the 29 | gperftools library. 30 | 31 | 32 | 33 |
34 | 35 | 36 |
37 | 38 | 39 | 40 | google_perftools_profiles /path/to/profile; 41 | 42 | Profiles will be stored as 43 | /path/to/profile.<worker_pid>. 44 | 45 | 46 |
47 | 48 | 49 |
50 | 51 | 52 | file 53 | 54 | main 55 | 56 | 57 | Sets a file name that keeps profiling information of 58 | nginx worker process. 59 | The ID of the worker process is always a part of the file name 60 | and is appended to the end of the file name, after a dot. 61 | 62 | 63 | 64 | 65 |
66 | 67 |
68 | -------------------------------------------------------------------------------- /xml/it/docs/install.xml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 7 | 8 |
14 | 15 |
16 | 17 | 18 | nginx puo' essere installato in varie maniere, a seconda del sistema operativo. 19 | 20 | 21 |
22 | 23 | 24 |
25 | 26 | 27 | Con Linux, e' possibile usare i pacchetti nginx binari, scaricabili da nginx.org. 28 | 29 | 30 |
31 | 32 | 33 |
34 | 35 | 36 | Con FreeBSD, e' possibile installare nginx o tramite 37 | pacchetti 38 | binari oppure tramite ports. 39 | Ports consente maggiore flessibilita', e permette di scegliere fra un gran numero di opzioni: 40 | ports provvedera' a compilare nginx con le opzioni specificate, e ad installarlo. 41 | 42 | 43 |
44 | 45 | 46 |
47 | 48 | 49 | Se e' richiesta qualche funzionalita' particolare e non disponibile con i pacchetti binari o con ports, 50 | e' possibile compilare nginx a partire dai sorgenti. Per quanto maggiormente flessibile, 51 | questo approccio per un principiante puo' risultare piu' complesso. 52 | Per maggiori informazioni, fare riferimento a . 53 | 54 | 55 |
56 | 57 |
58 | -------------------------------------------------------------------------------- /xml/en/enterprise.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 |
11 | 12 |
14 | 15 | 16 | F5, Inc. 17 | is the primary maintainer, sponsor, and steward of NGINX since the 18 | acquisition of NGINX, Inc. in 2019. 19 | Learn more about F5's 20 | stewardship and governance 21 | of NGINX. 22 | 23 | 24 | 25 | NGINX is a registered trademark of F5, Inc. 26 | 27 | 28 |
29 | 30 | 31 |
33 | 34 | 35 | F5 36 | provides enterprise distributions of NGINX, including 37 | NGINX Plus. 38 | 39 | 40 |
41 | 42 | 43 |
45 | 46 | 47 | Commercial support for NGINX is available with the 48 | Open Source Subscription Bundles 49 | from F5. 50 | 51 | 52 |
53 | 54 | 55 |
57 | 58 | 59 | NGINX training is available from 60 | F5. 61 | 62 | 63 |
64 | 65 |
66 | -------------------------------------------------------------------------------- /xml/ru/enterprise.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 |
11 | 12 |
14 | 15 | 16 | F5, Inc. 17 | является основным мэйнтейнером, спонсором и управляющим NGINX с момента 18 | приобретения NGINX, Inc. в 2019. 19 | Подробнее см. в статье 20 | Управление сообществом. 21 | 22 | 23 | 24 | NGINX является зарегистрированным товарным знаком 25 | F5, Inc. 26 | 27 | 28 |
29 | 30 | 31 |
33 | 34 | 35 | F5 36 | предоставляет корпоративные дистрибутивы NGINX, в том числе 37 | NGINX Plus. 38 | 39 | 40 |
41 | 42 | 43 |
45 | 46 | 47 | Коммерческая поддержка NGINX доступна в рамках 48 | Open Source Subscription Bundles 49 | от F5. 50 | 51 | 52 |
53 | 54 | 55 |
57 | 58 | 59 | Обучение NGINX доступно от компании 60 | F5. 61 | 62 | 63 |
64 | 65 |
66 | -------------------------------------------------------------------------------- /xml/ru/docs/ngx_google_perftools_module.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | 9 | 13 | 14 |
15 | 16 | 17 | Модуль ngx_google_perftools_module (0.6.29) включает 18 | поддержку профилирования рабочих процессов nginx при помощи 19 | Google Performance Tools. 20 | Модуль предназначен для разработчиков nginx. 21 | 22 | 23 | 24 | По умолчанию этот модуль не собирается, его сборку необходимо 25 | разрешить с помощью конфигурационного параметра 26 | --with-google_perftools_module. 27 | 28 | Для сборки и работы этого модуля нужна библиотека 29 | gperftools. 30 | 31 | 32 | 33 |
34 | 35 | 36 |
37 | 38 | 39 | 40 | google_perftools_profiles /path/to/profile; 41 | 42 | Профили будут сохраняться как 43 | /path/to/profile.<worker_pid>. 44 | 45 | 46 |
47 | 48 | 49 |
50 | 51 | 52 | файл 53 | 54 | main 55 | 56 | 57 | Задаёт имя файла, который хранит информацию о профилировании 58 | рабочего процесса nginx. 59 | Идентификатор рабочего процесса всегда является частью имени файла 60 | и добавляется в конце имени после точки. 61 | 62 | 63 | 64 | 65 |
66 | 67 |
68 | -------------------------------------------------------------------------------- /xml/cn/docs/http/ngx_http_addition_module.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 9 | 10 | 15 | 16 |
17 | 18 | 19 | ngx_http_addition_module 是一个过滤模块,它可以在回复正文前后加上内容。 20 | 这个模块默认不会编译进去,若要开启需加上编译选项:--with-http_addition_module。 21 | 22 | 23 |
24 | 25 | 26 |
27 | 28 | 29 | 30 | location / { 31 | add_before_body /before_action; 32 | add_after_body /after_action; 33 | } 34 | 35 | 36 | 37 |
38 | 39 | 40 |
41 | 42 | 43 | uri 44 | 45 | location 46 | 47 | 48 | 在回复正文之前加入一段文字,nginx会发起一个子请求去获取这些文字。 49 | 50 | 51 | 52 | 53 | 54 | 55 | uri 56 | 57 | location 58 | 59 | 60 | 在回复正文之后加入一段文字,nginx会发起一个子请求去获取这些文字。 61 | 62 | 63 | 64 | 65 | 66 | 67 | mime-type ... 68 | text/html 69 | http 70 | server 71 | location 72 | 0.7.9 73 | 74 | 75 | 指定生效的回复MIME类型,默认始终包含“text/html”。 76 | 如果设置类型为“*”,就会匹配任何类型的回复(0.8.29)。 77 | 78 | 79 | 80 | 81 |
82 | 83 |
84 | -------------------------------------------------------------------------------- /xml/en/docs/njs/preload_objects.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | 9 |
14 | 15 |
16 | 17 | 18 | For each incoming request njs creates a separate virtual machine. 19 | This brings a lot of benefits such as predictable memory consumption 20 | or requests isolation. 21 | However, as all requests are isolated, 22 | if a request handler needs to access some data, 23 | it has to read it by itself. 24 | This is not efficient especially when the amount of data is large. 25 | 26 | 27 | 28 | To address this limitation, 29 | a preloaded shared object was introduced. 30 | Such objects are created immutable and do not have prototype chains: 31 | their values cannot be changed, properties cannot be added or removed. 32 | 33 | 34 |
35 | 36 | 37 |
39 | 40 | 41 | Here are some examples of how to work with a preload object in njs: 42 | 43 | 44 | 45 | 46 | access properties by name: 47 | 48 | preloaded_object.prop_name 49 | preloaded_object[prop_name] 50 | 51 | 52 | 53 | 54 | enumerate properties: 55 | 56 | for (i in preloaded_object_name) { 57 | ... 58 | } 59 | 60 | 61 | 62 | 63 | apply non-modifying built-in methods using call(): 64 | 65 | Array.prototype.filter.call(preloaded_object_name, ...) 66 | 67 | 68 | 69 | 70 | 71 | 72 |
73 | 74 |
75 | -------------------------------------------------------------------------------- /xml/cn/docs/http/ngx_http_autoindex_module.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 9 | 10 | 15 | 16 |
17 | 18 | 19 | ngx_http_autoindex_module 模块可以列出目录中的文件。 20 | 一般当ngx_http_index_module模块找不到默认主页的时候,会把请求转给 ngx_http_autoindex_module模块去处理。 21 | 22 | 23 |
24 | 25 | 26 |
27 | 28 | 29 | 30 | location / { 31 | autoindex on; 32 | } 33 | 34 | 35 | 36 |
37 | 38 | 39 |
40 | 41 | 42 | on | off 43 | off 44 | http 45 | server 46 | location 47 | 48 | 49 | 开启或者关闭列出目录中文件的功能。 50 | 51 | 52 | 53 | 54 | 55 | 56 | on | off 57 | on 58 | http 59 | server 60 | location 61 | 62 | 63 | 设置目录中列出的文件是显示精确大小,还是对KB,MB,GB进行四舍五入。 64 | 65 | 66 | 67 | 68 | 69 | 70 | on | off 71 | off 72 | http 73 | server 74 | location 75 | 76 | 77 | 设置目录中列出文件的时间是本地时间还是UTC时间。 78 | 79 | 80 | 81 | 82 |
83 | 84 |
85 | -------------------------------------------------------------------------------- /xml/it/docs/syntax.xml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 7 | 8 |
13 | 14 |
15 | 16 | 17 | Le dimensioni possono essere indicate in byte, kilobyte 18 | (suffissi k e K), e megabyte 19 | (suffissi m e M), ad esempio 20 | “1024”, “8k”, “1m”. 21 | 22 | 23 | 24 | Gli intervalli di tempo possono essere specificati in millisecondi, 25 | secondi, minuti, ore, giorni, e cosi' via, utilizzando i suffissi seguenti: 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 |
msmillisecondi
ssecondi
mminuti
hore
dgiorni
wsettimane
Mmesi, 30 giorni
yanni, 365 giorni
36 |
37 | 38 | 39 | E' possibile combinare in un singolo valore piu' unita', specificandole 40 | dalla piu' significativa alla meno significativa ed eventualmente 41 | separandole con spazi. Ad esempio, “1h 30m” indica 42 | lo stesso tempo di “90m” o “5400s”. 43 | Un valore senza suffisso indica secondi, comunque e' sempre raccomandato 44 | specificare un suffisso. 45 | 46 | 47 | 48 | Alcuni intervalli temporali possono essere specificati solo 49 | con una risoluzione di secondi. 50 | 51 | 52 |
53 | 54 |
55 | -------------------------------------------------------------------------------- /xml/en/docs/hash.xml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 7 | 8 |
12 | 13 |
14 | 15 | 16 | To quickly process static sets of data such as server names, 17 | directive’s values, 18 | MIME types, names of request header strings, 19 | nginx uses hash tables. 20 | During the start and each re-configuration nginx selects the 21 | minimum possible sizes of hash tables such that the bucket size 22 | that stores keys with identical hash values does not exceed the 23 | configured parameter (hash bucket size). 24 | The size of a table is expressed in buckets. 25 | The adjustment is continued until the table size exceeds the 26 | hash max size parameter. 27 | Most hashes have the corresponding directives that allow changing 28 | these parameters, for example, for the server names hash they are 29 | 30 | and . 31 | 32 | 33 | 34 | The hash bucket size parameter is aligned to the size that is a 35 | multiple of the processor’s cache line size. This speeds up 36 | key search in a hash on modern processors by reducing the number 37 | of memory accesses. 38 | If hash bucket size is equal to one processor’s cache line size 39 | then the number of memory accesses during the key search will be 40 | two in the worst case—first to compute the bucket address, 41 | and second during the key search inside the bucket. 42 | Therefore, if nginx emits the message requesting to increase 43 | either hash max size or hash bucket size then the first parameter 44 | should first be increased. 45 | 46 | 47 |
48 | 49 |
50 | -------------------------------------------------------------------------------- /xml/ru/docs/hash.xml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 7 | 8 |
12 | 13 |
14 | 15 | 16 | Для быстрой обработки статических наборов данных, таких как имена серверов, 17 | значения директивы , 18 | MIME-типы, имена полей заголовков запросов, 19 | nginx использует хэш-таблицы. 20 | Во время старта и при каждой переконфигурации nginx подбирает минимально 21 | возможный размер хэш-таблиц с учётом того, чтобы размер корзины, 22 | куда попадают ключи с совпадающими хэш-значениями, 23 | не превышал заданного параметра (hash bucket size). 24 | Размер таблицы считается в корзинах. 25 | Подбор ведётся до тех пор, пока размер таблицы не превысит параметр 26 | hash max size. 27 | Для большинства хэшей есть директивы, которые позволяют менять эти параметры, 28 | например, для хэшей имён серверов директивы называются 29 | 30 | и . 31 | 32 | 33 | 34 | Параметр hash bucket size всегда выравнивается до размера, кратного 35 | размеру строки кэша процессора. Это позволяет ускорить поиск ключа 36 | в хэше на современных процессорах, уменьшив число обращений к памяти. 37 | Если hash bucket size равен размеру одной строки кэша процессора, 38 | то во время поиска ключа число обращений к памяти в худшем случае 39 | будет равно двум—первый раз для определения адреса корзины, 40 | а второй—при поиске ключа внутри корзины. 41 | Соответственно, если nginx выдал сообщение о необходимости увеличить 42 | hash max size или hash bucket size, то сначала нужно увеличивать первый 43 | параметр. 44 | 45 | 46 |
47 | 48 |
49 | -------------------------------------------------------------------------------- /xml/ru/docs/njs/preload_objects.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | 9 |
14 | 15 |
16 | 17 | 18 | Для каждого входящего запроса в njs создаётся отдельная виртуальная машина. 19 | Это позволяет прогнозировать предсказуемое поглощение памяти 20 | или осуществить изоляцию запросов. 21 | Однако поскольку все запросы являются изолированными, то 22 | если обработчику запроса необходимо получить доступ к данным, 23 | ему нужно сначала их прочитать самому. 24 | Это неэффективно, особенно если объём данных большой. 25 | 26 | 27 | 28 | Это ограничение можно обойти 29 | при помощи разделяемого предзагруженного объекта. 30 | Такие объекты создаются неизменяемыми и не имеют цепочки прототипов: 31 | у них нет возможности 32 | изменить значения или добавить/удалить свойства в объектах/массивах. 33 | 34 | 35 |
36 | 37 | 38 |
40 | 41 | 42 | Примеры работы с предзагруженными объектами в njs: 43 | 44 | 45 | 46 | 47 | доступ к свойствам по имени: 48 | 49 | preloaded_object.prop_name 50 | preloaded_object[prop_name] 51 | 52 | 53 | 54 | 55 | перечисление свойств: 56 | 57 | for (i in preloaded_object_name) { 58 | ... 59 | } 60 | 61 | 62 | 63 | 64 | применение встроенных методов, не изменяющих состояние, 65 | при помощи call(): 66 | 67 | Array.prototype.filter.call(preloaded_object_name, ...) 68 | 69 | 70 | 71 | 72 | 73 | 74 |
75 | 76 |
77 | -------------------------------------------------------------------------------- /xslt/article.xslt: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | rtl 43 | 44 | zh-CN 45 | 46 | 47 | 48 | <xsl:value-of select="@name"/> 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | -------------------------------------------------------------------------------- /xml/en/docs/njs/security.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | 9 |
14 | 15 |
16 | 17 | 18 | All nginx security issues should be reported to 19 | F5SIRT@f5.com 20 | or via one of the methods listed 21 | here. 22 | 23 | 24 | 25 | Patches are signed using one of the 26 | PGP public keys. 27 | 28 | 29 |
30 | 31 | 32 |
33 | 34 | 35 | njs does not evaluate dynamic code 36 | and especially the code received from the network in any way. 37 | The only way to evaluate that code using njs 38 | is to configure the 39 | js_import 40 | directive in nginx. 41 | JavaScript code is loaded once during nginx start. 42 | 43 | 44 | 45 | In nginx/njs threat model, JavaScript code is considered a trusted source 46 | in the same way as nginx.conf and sites certificates. 47 | What this means in practice: 48 | 49 | 50 | 51 | 52 | memory disclosure and other security issues 53 | triggered by JavaScript code modification 54 | are not considered security issues, but as ordinary bugs 55 | 56 | 57 | 58 | measures should be taking for protecting JavaScript code used by njs 59 | 60 | 61 | 62 | if no js_import 63 | directives are present in nginx.conf, 64 | nginx is safe from JavaScript-related vulnerabilities 65 | 66 | 67 | 68 | 69 | 70 |
71 | 72 | 73 |
74 | -------------------------------------------------------------------------------- /xml/ru/docs/stream/ngx_stream_pass_module.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | 9 | 13 | 14 |
15 | 16 | 17 | Модуль ngx_stream_pass_module (1.25.5) позволяет 18 | передавать принятое соединение напрямую в любой настроенный слушающий сокет 19 | в http, stream, mail 20 | и других подобных модулях. 21 | 22 | 23 |
24 | 25 | 26 |
27 | 28 | 29 | 30 | http { 31 | server { 32 | listen 8000; 33 | 34 | location / { 35 | root html; 36 | } 37 | } 38 | } 39 | 40 | stream { 41 | server { 42 | listen 12345 ssl; 43 | 44 | ssl_certificate domain.crt; 45 | ssl_certificate_key domain.key; 46 | 47 | pass 127.0.0.1:8000; 48 | } 49 | } 50 | 51 | В примере 52 | после терминирования SSL в модуле stream 53 | соединение передаётся в модуль http. 54 | 55 | 56 |
57 | 58 | 59 |
60 | 61 | 62 | адрес 63 | 64 | stream 65 | server 66 | 67 | 68 | Задаёт адрес сервера с передаваемым соединением. 69 | Адрес может быть указан в виде IP-адреса 70 | и порта: 71 | 72 | pass 127.0.0.1:12345; 73 | 74 | или в виде пути UNIX-сокета: 75 | 76 | pass unix:/tmp/stream.socket; 77 | 78 | 79 | 80 | 81 | В адресе также можно использовать переменные: 82 | 83 | pass $upstream; 84 | 85 | 86 | 87 | 88 | 89 |
90 | 91 |
92 | -------------------------------------------------------------------------------- /xml/en/docs/stream/ngx_stream_pass_module.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | 9 | 13 | 14 |
15 | 16 | 17 | The ngx_stream_pass_module module (1.25.5) allows 18 | passing the accepted connection directly to any configured listening socket 19 | in http, stream, mail, 20 | and other similar modules. 21 | 22 | 23 |
24 | 25 | 26 |
27 | 28 | 29 | 30 | http { 31 | server { 32 | listen 8000; 33 | 34 | location / { 35 | root html; 36 | } 37 | } 38 | } 39 | 40 | stream { 41 | server { 42 | listen 12345 ssl; 43 | 44 | ssl_certificate domain.crt; 45 | ssl_certificate_key domain.key; 46 | 47 | pass 127.0.0.1:8000; 48 | } 49 | } 50 | 51 | In the example, 52 | after terminating SSL/TLS in the stream module 53 | the connection is passed to the http module. 54 | 55 | 56 |
57 | 58 | 59 |
60 | 61 | 62 | address 63 | 64 | server 65 | 66 | 67 | Sets server address to pass client connection to. 68 | The address can be specified as an IP address 69 | and a port: 70 | 71 | pass 127.0.0.1:12345; 72 | 73 | or as a UNIX-domain socket path: 74 | 75 | pass unix:/tmp/stream.socket; 76 | 77 | 78 | 79 | 80 | The address can also be specified using variables: 81 | 82 | pass $upstream; 83 | 84 | 85 | 86 | 87 | 88 |
89 | 90 |
91 | -------------------------------------------------------------------------------- /xsls/security.xsls: -------------------------------------------------------------------------------- 1 | 5 | 6 | X:stylesheet { 7 | 8 | X:template = "security" {
    !!;
} 9 | 10 | 11 | X:template = "security/item" { 12 | 13 |
  • 14 |

    15 | 16 | !{@name}
    17 | 18 | X:if "@severity = 'major'" { 19 | X:text{Severity: } !{@severity}
    20 | } else { 21 | X:text{Severity: } !{@severity}
    22 | } 23 | 24 | X:if "@advisory" { 25 |
    X:text {Advisory} 26 |
    27 | } 28 | 29 | X:if "@cert" { 30 | 31 | X:attribute "href" { 32 | X:text {http://www.kb.cert.org/vuls/id/} !{@cert} 33 | } 34 | X:text {VU#} !{@cert} 35 | 36 | } 37 | 38 | X:if "@cve" { 39 | X:if "@cert" { 40 | X:text {  } 41 | } 42 | 43 | X:attribute "href" { 44 | X:text {https://www.cve.org/CVERecord?id=CVE-} !{@cve} 45 | } 46 | X:text {CVE-} !{@cve} 47 | 48 | } 49 | 50 | X:if "@core" { 51 | X:if "@cert or @cve" { 52 | X:text {  } 53 | } 54 | !{@core} 55 | } 56 | 57 | X:if "@cert or @cve or @core" { 58 |
    59 | } 60 | 61 | X:text {Not vulnerable: } !{@good}
    62 | X:text {Vulnerable: } !{@vulnerable} 63 | 64 | X:for-each "patch" { 65 |
    66 | 67 | 68 | X:attribute "href" { 69 | X:text {/download/} !{@name} 70 | } 71 | X:text {The patch} 72 | 73 | 74 | X:text {  } 75 | 76 | 77 | X:attribute "href" { 78 | X:text {/download/} !{@name} X:text {.asc} 79 | } 80 | X:text {pgp} 81 | 82 | 83 | X:if "@versions" { 84 | X:text {  (for } !{@versions} X:text {)} 85 | } 86 | } 87 | 88 |

    89 |
  • 90 | } 91 | 92 | 93 | } 94 | -------------------------------------------------------------------------------- /xml/ru/docs/http/ngx_http_split_clients_module.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 9 | 10 | 14 | 15 |
    16 | 17 | 18 | Модуль ngx_http_split_clients_module создаёт переменные для 19 | A/B тестирования (также известного как “split-тестирование”). 20 | 21 | 22 |
    23 | 24 | 25 |
    26 | 27 | 28 | 29 | http { 30 | split_clients "${remote_addr}AAA" $variant { 31 | 0.5% .one; 32 | 2.0% .two; 33 | * ""; 34 | } 35 | 36 | server { 37 | location / { 38 | index index${variant}.html; 39 | 40 | 41 | 42 |
    43 | 44 | 45 |
    46 | 47 | 48 | 49 | строка 50 | $переменная 51 | 52 | http 53 | 54 | 55 | Создаёт переменную для A/B тестирования, например: 56 | 57 | split_clients "${remote_addr}AAA" $variant { 58 | 0.5% .one; 59 | 2.0% .two; 60 | * ""; 61 | } 62 | 63 | Значение исходной строки хэшируется с помощью MurmurHash2. 64 | В приведённом примере при значениях хэша от 0 до 21474835 (0.5%) 65 | переменная $variant получит значение ".one". 66 | При значениях хэша от 21474836 до 107374180 (2%) — ".two". 67 | И при значениях хэша от 107374181 до 4294967295 — "" 68 | (пустая строка). 69 | 70 | 71 | 72 | 73 |
    74 | 75 |
    76 | -------------------------------------------------------------------------------- /xml/en/docs/governance.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 |
    11 | 12 | 13 |
    14 | 15 | 16 | Open source changed the world. 17 | 18 | 19 | 20 | NGINX is proud to be part of that change, from our very beginning. 21 | 22 | 23 | 24 | NGINX embraces open source ethos and intends to remain 25 | an active contributor and leader in the ecosystem. 26 | This is encapsulated by our Core Commitments and Principles, 27 | which serve to help the longevity, transparency, 28 | and impact of our open source projects. 29 | 30 | 31 |
    32 | 33 | 34 |
    35 | 36 | 37 | 38 | 39 | We will be open, consistent, transparent, and fair in our acceptance of 40 | contributions. 41 | 42 | 43 | 44 | We will continue to enhance existing active projects. 45 | 46 | 47 | 48 | We will release new projects that move technology forward. 49 | 50 | 51 | 52 | We will continue to offer projects under OSI-approved software licenses. 53 | 54 | 55 | 56 | We will not remove and commercialize existing projects or features. 57 | 58 | 59 | 60 | We will not impose limits on the use of our projects. 61 | 62 | 63 | 64 | 65 |
    66 | 67 | 68 |
    69 | 70 | 71 | 72 | 73 | All contributions are reviewed by the technical committee for that project. 74 | 75 | 76 | 77 | Our contribution review discussions are available and publicly viewable to 78 | provide transparency. 79 | 80 | 81 | 82 | Project roadmaps are public and future direction is discussed in the open. 83 | 84 | 85 | 86 | 87 |
    88 | 89 |
    90 | -------------------------------------------------------------------------------- /xml/en/docs/http/ngx_http_f4f_module.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | 9 | 13 | 14 |
    15 | 16 | 17 | The ngx_http_f4f_module module provides 18 | server-side support for Adobe HTTP Dynamic Streaming (HDS). 19 | 20 | 21 | 22 | This module implements handling of HTTP Dynamic Streaming requests in the 23 | “/videoSeg1-Frag1” form — extracting the needed fragment 24 | from the videoSeg1.f4f file using the videoSeg1.f4x 25 | index file. 26 | This module is an alternative to the Adobe’s f4f module (HTTP Origin Module) 27 | for Apache. 28 | 29 | 30 | 31 | Usual pre-processing with Adobe’s f4fpackager is required, see relevant 32 | documentation for details. 33 | 34 | 35 | 36 | 37 | This module is available as part of our 38 | commercial subscription. 39 | 40 | 41 | 42 |
    43 | 44 | 45 |
    46 | 47 | 48 | 49 | location /video/ { 50 | f4f; 51 | ... 52 | } 53 | 54 | 55 | 56 |
    57 | 58 | 59 |
    60 | 61 | 62 | 63 | 64 | location 65 | 66 | 67 | Turns on module processing in the surrounding location. 68 | 69 | 70 | 71 | 72 | 73 | 74 | size 75 | 512k 76 | http 77 | server 78 | location 79 | 80 | 81 | Sets the size of the buffer used for 82 | reading the .f4x index file. 83 | 84 | 85 | 86 | 87 |
    88 | 89 |
    90 | -------------------------------------------------------------------------------- /xml/ru/docs/stream/ngx_stream_split_clients_module.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | 9 | 13 | 14 |
    15 | 16 | 17 | Модуль ngx_stream_split_clients_module (1.11.3) создаёт 18 | переменные для A/B тестирования (также известного как “split-тестирование”). 19 | 20 | 21 |
    22 | 23 | 24 |
    25 | 26 | 27 | 28 | stream { 29 | ... 30 | split_clients "${remote_addr}AAA" $upstream { 31 | 0.5% feature_test1; 32 | 2.0% feature_test2; 33 | * production; 34 | } 35 | 36 | server { 37 | ... 38 | proxy_pass $upstream; 39 | } 40 | } 41 | 42 | 43 | 44 |
    45 | 46 | 47 |
    48 | 49 | 50 | 51 | строка 52 | $переменная 53 | 54 | stream 55 | 56 | 57 | Создаёт переменную для A/B тестирования, например: 58 | 59 | split_clients "${remote_addr}AAA" $variant { 60 | 0.5% .one; 61 | 2.0% .two; 62 | * ""; 63 | } 64 | 65 | Значение исходной строки хэшируется с помощью MurmurHash2. 66 | В приведённом примере при значениях хэша от 0 до 21474835 (0.5%) 67 | переменная $variant получит значение ".one". 68 | При значениях хэша от 21474836 до 107374180 (2%) — ".two". 69 | И при значениях хэша от 107374181 до 4294967295 — "" 70 | (пустая строка). 71 | 72 | 73 | 74 | 75 |
    76 | 77 |
    78 | -------------------------------------------------------------------------------- /xml/cn/docs/http/ngx_http_auth_basic_module.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 9 | 10 | 15 | 16 |
    17 | 18 | 19 | 模块ngx_http_auth_basic_module 允许使用“HTTP基本认证”协议验证用户名和密码来限制对资源的访问。 20 | 21 | 22 | 23 | 也可以通过 24 | 地址来限制访问。 25 | 使用 指令就能同时通过地址和密码来限制访问。 26 | 27 | 28 |
    29 | 30 | 31 |
    32 | 33 | 34 | 35 | location / { 36 | auth_basic "closed site"; 37 | auth_basic_user_file conf/htpasswd; 38 | } 39 | 40 | 41 | 42 |
    43 | 44 | 45 |
    46 | 47 | 48 | string | off 49 | off 50 | http 51 | server 52 | location 53 | limit_except 54 | 55 | 56 | 开启使用“HTTP基本认证”协议的用户名密码验证。 57 | 指定的参数被用作 。 58 | 参数off可以取消继承自上一个配置等级 59 | auth_basic 指令的影响。 60 | 61 | 62 | 63 | 64 | 65 | 66 | file 67 | 68 | http 69 | server 70 | location 71 | limit_except 72 | 73 | 74 | 指定保存用户名和密码的文件,格式如下: 75 | 76 | # comment 77 | name1:password1 78 | name2:password2:comment 79 | name3:password3 80 | 81 | 82 | 83 | 84 | 密码应该使用crypt函数加密。 85 | 可以用Apache发行包中的htpasswd命令来创建此类文件。 86 | 87 | 88 | 89 | 90 |
    91 | 92 |
    93 | -------------------------------------------------------------------------------- /xml/en/docs/http/ngx_http_split_clients_module.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 9 | 10 | 14 | 15 |
    16 | 17 | 18 | The ngx_http_split_clients_module module creates 19 | variables suitable for A/B testing, also known as split testing. 20 | 21 | 22 |
    23 | 24 | 25 |
    26 | 27 | 28 | 29 | http { 30 | split_clients "${remote_addr}AAA" $variant { 31 | 0.5% .one; 32 | 2.0% .two; 33 | * ""; 34 | } 35 | 36 | server { 37 | location / { 38 | index index${variant}.html; 39 | 40 | 41 | 42 |
    43 | 44 | 45 |
    46 | 47 | 48 | 49 | string 50 | $variable 51 | 52 | http 53 | 54 | 55 | Creates a variable for A/B testing, for example: 56 | 57 | split_clients "${remote_addr}AAA" $variant { 58 | 0.5% .one; 59 | 2.0% .two; 60 | * ""; 61 | } 62 | 63 | The value of the original string is hashed using MurmurHash2. 64 | In the example given, hash values from 0 to 21474835 (0.5%) 65 | correspond to the 66 | value ".one" of the $variant variable, 67 | hash values from 21474836 to 107374180 (2%) correspond to 68 | the value ".two", 69 | and hash values from 107374181 to 4294967295 correspond to 70 | the value "" (an empty string). 71 | 72 | 73 | 74 | 75 |
    76 | 77 |
    78 | -------------------------------------------------------------------------------- /xml/ru/docs/http/ngx_http_f4f_module.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | 9 | 13 | 14 |
    15 | 16 | 17 | Модуль ngx_http_f4f_module обеспечивает 18 | серверную поддержку протокола Adobe HTTP Dynamic Streaming (HDS). 19 | 20 | 21 | 22 | Модуль предоставляет возможность обработки запросов HTTP Dynamic Streaming в 23 | виде “/videoSeg1-Frag1”, т.е. извлечения необходимого фрагмента 24 | из videoSeg1.f4f при помощи 25 | индексного файла videoSeg1.f4x. 26 | Модуль является альтернативой модулю Adobe f4f (HTTP Origin Module) 27 | для Apache. 28 | 29 | 30 | 31 | Необходима предварительная обработка данных при помощи Adobe f4fpackager, 32 | дополнительную информацию см. в соответствующей документации. 33 | 34 | 35 | 36 | 37 | Модуль доступен как часть 38 | коммерческой подписки. 39 | 40 | 41 | 42 |
    43 | 44 | 45 |
    46 | 47 | 48 | 49 | location /video/ { 50 | f4f; 51 | ... 52 | } 53 | 54 | 55 | 56 |
    57 | 58 | 59 |
    60 | 61 | 62 | 63 | 64 | location 65 | 66 | 67 | Включает обработку данным модулем во вложенном location. 68 | 69 | 70 | 71 | 72 | 73 | 74 | размер 75 | 512k 76 | http 77 | server 78 | location 79 | 80 | 81 | Задаёт размер буфера, в который будет 82 | читаться индексный файл .f4x. 83 | 84 | 85 | 86 | 87 |
    88 | 89 |
    90 | -------------------------------------------------------------------------------- /xml/ru/docs/governance.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 |
    11 | 12 | 13 |
    14 | 15 | 16 | Открытый исходный код изменил мир. 17 | 18 | 19 | 20 | NGINX с гордостью участвует в этих изменениях с самого начала. 21 | 22 | 23 | 24 | NGINX неизменно придерживается принципов open source и намерен оставаться 25 | активным участником и лидером в отрасли. 26 | Это зафиксировано в наших Основных обязательствах и принципах, 27 | которые способствуют долговечности, прозрачности 28 | и значимому влиянию наших open source проектов. 29 | 30 | 31 |
    32 | 33 | 34 |
    35 | 36 | 37 | 38 | 39 | Мы остаёмся открытыми, последовательными, прозрачными и справедливыми 40 | при принятии вкладов. 41 | 42 | 43 | 44 | Мы продолжаем развивать существующие активные проекты. 45 | 46 | 47 | 48 | Мы продолжим выпускать новые проекты, продвигающие технологии вперед. 49 | 50 | 51 | 52 | Мы продолжим предлагать проекты под лицензиями, одобренными OSI. 53 | 54 | 55 | 56 | Мы не удалим или коммерциализируем существующие проекты или функции. 57 | 58 | 59 | 60 | Мы не будем вводить ограничения на использование наших проектов. 61 | 62 | 63 | 64 | 65 |
    66 | 67 | 68 |
    69 | 70 | 71 | 72 | 73 | Все вклады рассматриваются техническим комитетом, ответственным за проект. 74 | 75 | 76 | 77 | Обсуждения по проверке вкладов доступны и открыты для всеобщего просмотра, 78 | что обеспечивает прозрачность. 79 | 80 | 81 | 82 | Дорожные карты проектов являются публичными, планы развития обсуждается открыто. 83 | 84 | 85 | 86 | 87 |
    88 | 89 |
    90 | -------------------------------------------------------------------------------- /xml/en/docs/stream/ngx_stream_split_clients_module.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | 9 | 13 | 14 |
    15 | 16 | 17 | The ngx_stream_split_clients_module module (1.11.3) creates 18 | variables suitable for A/B testing, also known as split testing. 19 | 20 | 21 |
    22 | 23 | 24 |
    25 | 26 | 27 | 28 | stream { 29 | ... 30 | split_clients "${remote_addr}AAA" $upstream { 31 | 0.5% feature_test1; 32 | 2.0% feature_test2; 33 | * production; 34 | } 35 | 36 | server { 37 | ... 38 | proxy_pass $upstream; 39 | } 40 | } 41 | 42 | 43 | 44 |
    45 | 46 | 47 |
    48 | 49 | 50 | 51 | string 52 | $variable 53 | 54 | stream 55 | 56 | 57 | Creates a variable for A/B testing, for example: 58 | 59 | split_clients "${remote_addr}AAA" $variant { 60 | 0.5% .one; 61 | 2.0% .two; 62 | * ""; 63 | } 64 | 65 | The value of the original string is hashed using MurmurHash2. 66 | In the example given, hash values from 0 to 21474835 (0.5%) 67 | correspond to the 68 | value ".one" of the $variant variable, 69 | hash values from 21474836 to 107374180 (2%) correspond to 70 | the value ".two", 71 | and hash values from 107374181 to 4294967295 correspond to 72 | the value "" (an empty string). 73 | 74 | 75 | 76 | 77 |
    78 | 79 |
    80 | -------------------------------------------------------------------------------- /xml/en/docs/http/ngx_http_index_module.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 9 | 10 | 14 | 15 |
    16 | 17 | 18 | The ngx_http_index_module module processes requests 19 | ending with the slash character (‘/’). 20 | Such requests can also be processed by the 21 | ngx_http_autoindex_module 22 | and 23 | ngx_http_random_index_module 24 | modules. 25 | 26 | 27 |
    28 | 29 | 30 |
    31 | 32 | 33 | 34 | location / { 35 | index index.$geo.html index.html; 36 | } 37 | 38 | 39 | 40 |
    41 | 42 | 43 |
    44 | 45 | 46 | file ... 47 | index.html 48 | http 49 | server 50 | location 51 | 52 | 53 | Defines files that will be used as an index. 54 | The file name can contain variables. 55 | Files are checked in the specified order. 56 | The last element of the list can be a file with an absolute path. 57 | Example: 58 | 59 | index index.$geo.html index.0.html /index.html; 60 | 61 | 62 | 63 | 64 | It should be noted that using an index file causes an internal redirect, 65 | and the request can be processed in a different location. 66 | For example, with the following configuration: 67 | 68 | location = / { 69 | index index.html; 70 | } 71 | 72 | location / { 73 | ... 74 | } 75 | 76 | a “/” request will actually be processed in the 77 | second location as “/index.html”. 78 | 79 | 80 | 81 | 82 |
    83 | 84 |
    85 | -------------------------------------------------------------------------------- /xml/ru/docs/http/ngx_http_index_module.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 9 | 10 | 14 | 15 |
    16 | 17 | 18 | Модуль ngx_http_index_module обслуживает запросы, 19 | оканчивающиеся слэшом (‘/’). 20 | Такие запросы также могут обслуживаться модулями 21 | ngx_http_autoindex_module 22 | и 23 | ngx_http_random_index_module. 24 | 25 | 26 |
    27 | 28 | 29 |
    30 | 31 | 32 | 33 | location / { 34 | index index.$geo.html index.html; 35 | } 36 | 37 | 38 | 39 |
    40 | 41 | 42 |
    43 | 44 | 45 | файл ... 46 | index.html 47 | http 48 | server 49 | location 50 | 51 | 52 | Определяет файлы, которые будут использоваться в качестве индекса. 53 | В имени файла можно использовать переменные. 54 | Наличие файлов проверяется в порядке их перечисления. 55 | В конце списка может стоять файл с абсолютным путём. 56 | Пример: 57 | 58 | index index.$geo.html index.0.html /index.html; 59 | 60 | 61 | 62 | 63 | Необходимо иметь в виду, что при использовании индексного файла делается 64 | внутреннее перенаправление и запрос может быть обработан уже в другом 65 | location’е. 66 | Например, в такой конфигурации: 67 | 68 | location = / { 69 | index index.html; 70 | } 71 | 72 | location / { 73 | ... 74 | } 75 | 76 | запрос “/” будет фактически обработан во 77 | втором location’е как “/index.html”. 78 | 79 | 80 | 81 | 82 |
    83 | 84 |
    85 | -------------------------------------------------------------------------------- /xsls/rss.xsls: -------------------------------------------------------------------------------- 1 | 5 | 6 | X:stylesheet 7 | xmlns:date="http://exslt.org/dates-and-times" 8 | exclude-result-prefixes="date" 9 | { 10 | 11 | X:output indent="no" encoding="utf-8"; 12 | 13 | X:strip-space elements = "*"; 14 | 15 | 19 | X:param XML = "'../xml'"; 20 | X:param YEAR; 21 | 22 | X:var SITE = "'http://nginx.org'"; 23 | X:var LINK = "/news/@link"; 24 | 25 | X:include href = "dirname.xslt"; 26 | X:include href = "link.xslt"; 27 | X:include href = "menu.xslt"; 28 | X:include href = "content.xslt"; 29 | 30 | 31 | X:template = "/news" { 32 | 33 | 34 | !{@name} 35 | !{$SITE} 36 | 37 | !! "event"; 38 | 39 | 40 | } 41 | 42 | 43 | X:template = "event[position() <= 10]" { 44 | 45 | X:var year = { !{substring(../event[position()=1]/@date, 1, 4)} } 46 | X:var y = { !{substring(@date, 1, 4)} } 47 | 48 | X:var page = { 49 | X:if "$year != $y" { 50 | !{concat($y, '.html')} 51 | } 52 | } 53 | 54 | 55 | !! "para[1]//text()"; 56 | !{$SITE} X:text {/} !{$page} X:text {#} !{@date} 57 | !{$SITE} X:text {/} !{$page} X:text {#} !{@date} 58 | 59 | !{ concat(date:day-abbreviation(@date), ', ', 60 | format-number(date:day-in-month(@date), '00'), ' ', 61 | date:month-abbreviation(@date), ' ', 62 | date:year(@date), 63 | ' 00:00:00 +0300') } 64 | 65 | 66 | 67 | X:text disable-output-escaping="yes" {<![CDATA[} 68 | !{@date} 69 | !! "para"; 70 | X:text disable-output-escaping="yes" {]]>} 71 | 72 | 73 | } 74 | 75 | 76 | X:template = "event" { } 77 | 78 | 79 | } 80 | -------------------------------------------------------------------------------- /xsls/download.xsls: -------------------------------------------------------------------------------- 1 | 5 | 6 | X:stylesheet { 7 | 8 | X:template = "download" { 9 | X:var last="@last" 10 | X:for-each "document(concat($XML, '/versions.xml')) 11 | /versions/download[@tag = current()/@tag]" { 12 | 13 | 14 | !! "item[position() <= $last]"; 15 | 16 |
    17 | } 18 | } 19 | 20 | 21 | X:template = "download/item" { 22 | 23 | 24 | X:if "position() = 1" { 25 | 26 | X:attribute "href" { 27 | X:text{/} !{$LANG} X:text{/CHANGES} 28 | X:if "$LANG != 'en'" { X:text{.} !{$LANG} } 29 | X:if "../@changes != ''" { X:text{-} !{../@changes} } 30 | } 31 | X:text{CHANGES} 32 | X:if "$LANG != 'en'" { X:text{.} !{$LANG} } 33 | X:if "../@changes != ''" { X:text{-} !{../@changes} } 34 | 35 | } 36 | 37 | 38 | 39 | 40 | X:attribute "href" { 41 | X:text {/download/nginx-} !{@ver} X:text {.tar.gz} 42 | } 43 | X:text {nginx-} !{@ver} 44 | 45 | 46 | X:if "@pgp = 'yes'" { 47 | X:text {  } 48 | 49 | X:attribute "href" { 50 | X:text {/download/nginx-} !{@ver} X:text {.tar.gz.asc} 51 | } 52 | X:text {pgp} 53 | 54 | } 55 | 56 | 57 | 58 | X:if "@win= 'yes'" { 59 | 60 | X:attribute "href" { 61 | X:text {/download/nginx-} !{@ver} X:text {.zip} 62 | } 63 | X:text {nginx/Windows-} !{@ver} 64 | 65 | 66 | X:if "@pgp = 'yes'" { 67 | X:text {  } 68 | 69 | X:attribute "href" { 70 | X:text {/download/nginx-} !{@ver} X:text {.zip.asc} 71 | } 72 | X:text {pgp} 73 | 74 | } 75 | } 76 | 77 | 78 | 79 | } 80 | 81 | } 82 | -------------------------------------------------------------------------------- /xsls/link.xsls: -------------------------------------------------------------------------------- 1 | 5 | 6 | X:stylesheet { 7 | 8 | X:template = "img" { !!; } 9 | 10 | X:template = "origin" { 11 | 12 | X:attribute "href" { 13 | !root(path = "$ORIGIN") 14 | !{ concat(substring-before($ORIGIN, '.xml'), '.html') } 15 | } 16 | !!; 17 | 18 | } 19 | 20 | X:template = "link[@url]" { 21 | 22 | X:if "count(node()) != 0" { !!; } else { !{@url} } 23 | 24 | } 25 | 26 | X:template = "link[@id and not(@doc)]" { 27 | 28 | X:if "count(node()) != 0" { !!; } else { !{@id} } 29 | 30 | } 31 | 32 | X:template = "link[@doc and not(@id)]" { 33 | 34 | X:if "count(node()) != 0" { 35 | !!; 36 | } else { 37 | !{ document(@doc)/article/@name | document(@doc)/module/@name } 38 | } 39 | 40 | } 41 | 42 | X:template = "link[@id and @doc]" { 43 | 44 | X:if "count(node()) != 0" { !!; } else { !{@id} } 45 | 46 | } 47 | 48 | X:template = "links" { 49 | X:for-each "link", X:sort "@id" { 50 | !{@id} 51 | X:if "count(../link[@id = current()/@id]) > 1" { 52 | X:text{ (} 53 | X:if "contains(@doc, '/')" { 54 | !{substring-before(substring-after(@doc, '/'), '.xml')} 55 | } else { 56 | !{substring-before(@doc, '.xml')} 57 | } 58 | X:text{)} 59 | } 60 |
    61 | } 62 | } 63 | 64 | X:template = "varlinks" { 65 | X:for-each "link", X:sort "@id" { 66 | !!; 67 | X:if "count(../link[@id = current()/@id and @doc != current()/@doc]) > 0" { 68 | X:text{ (} 69 | X:if "contains(@doc, '/')" { 70 | !{substring-before(substring-after(@doc, '/'), '.xml')} 71 | } else { 72 | !{substring-before(@doc, '.xml')} 73 | } 74 | X:text{)} 75 | } 76 |
    77 | } 78 | } 79 | 80 | } 81 | -------------------------------------------------------------------------------- /xml/ru/docs/stream/ngx_stream_mqtt_preread_module.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | 9 | 13 | 14 |
    15 | 16 | 17 | Модуль ngx_stream_mqtt_preread_module (1.23.4) позволяет 18 | извлекать информацию из сообщения CONNECT 19 | протокола Message Queuing Telemetry Transport (MQTT) 20 | версий 21 | 3.1.1 22 | и 23 | 5.0, 24 | например имя пользователя или ID клиента. 25 | 26 | 27 | 28 | 29 | Модуль доступен как часть 30 | коммерческой подписки. 31 | 32 | 33 | 34 |
    35 | 36 | 37 |
    38 | 39 | 40 | 41 | mqtt_preread on; 42 | return $mqtt_preread_clientid; 43 | 44 | 45 | 46 |
    47 | 48 | 49 |
    50 | 51 | 52 | on | off 53 | off 54 | stream 55 | server 56 | 57 | 58 | Разрешает извлечение информации из сообщения СONNECT во время фазы 59 | предварительного чтения. 60 | 61 | 62 | 63 | 64 |
    65 | 66 | 67 |
    68 | 69 | 70 | 71 | 72 | $mqtt_preread_clientid 73 | 74 | значение clientid из СONNECT-сообщения 75 | 76 | 77 | $mqtt_preread_username 78 | 79 | значение username из СONNECT-сообщения 80 | 81 | 82 | 83 | 84 | 85 |
    86 | 87 |
    88 | -------------------------------------------------------------------------------- /xml/homepage.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 |
    11 | 12 |
    13 | 14 | 15 | nginx ("engine x") is an HTTP web server, reverse proxy, 16 | content cache, load balancer, 17 | TCP/UDP proxy server, 18 | and mail proxy server. 19 | Originally written by Igor Sysoev 20 | and distributed under the 21 | 2-clause BSD License. 22 | Enterprise distributions, commercial support and training are 23 | available from F5, Inc. 24 | 25 | 26 | 27 | Docs 28 | • 29 | Code 30 | • 31 | Install 32 | • 33 | Beginner's Guide 34 | 35 | 36 |
    37 | 38 | 39 |
    40 | 41 | 42 | 43 | Older news 44 | 45 |
    46 | 47 | 48 |
    49 | 50 | 51 | 52 | 59 | 60 | 67 | 68 | 75 | 76 | 77 | 78 |
    79 | 80 |
    81 | -------------------------------------------------------------------------------- /xml/ru/docs/stream/ngx_stream_access_module.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 9 | 10 | 14 | 15 |
    16 | 17 | 18 | Модуль ngx_stream_access_module (1.9.2) позволяет 19 | ограничить доступ для определённых адресов клиентов. 20 | 21 | 22 |
    23 | 24 | 25 |
    26 | 27 | 28 | 29 | server { 30 | ... 31 | deny 192.168.1.1; 32 | allow 192.168.1.0/24; 33 | allow 10.1.1.0/16; 34 | allow 2001:0db8::/32; 35 | deny all; 36 | } 37 | 38 | 39 | 40 | 41 | Правила проверяются в порядке их записи до первого соответствия. 42 | В данном примере доступ разрешён только для IPv4-сетей 43 | 10.1.1.0/16 и 192.168.1.0/24, 44 | кроме адреса 192.168.1.1, 45 | и для IPv6-сети 2001:0db8::/32. 46 | 47 | 48 |
    49 | 50 | 51 |
    52 | 53 | 54 | 55 | адрес | 56 | CIDR | 57 | unix: | 58 | all 59 | 60 | stream 61 | server 62 | 63 | 64 | Разрешает доступ для указанной сети или адреса. 65 | Если указано специальное значение unix:, 66 | разрешает доступ для всех UNIX-сокетов. 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | адрес | 75 | CIDR | 76 | unix: | 77 | all 78 | 79 | stream 80 | server 81 | 82 | 83 | Запрещает доступ для указанной сети или адреса. 84 | Если указано специальное значение unix:, 85 | запрещает доступ для всех UNIX-сокетов. 86 | 87 | 88 | 89 | 90 |
    91 | 92 |
    93 | -------------------------------------------------------------------------------- /xml/cn/docs/http/ngx_http_access_module.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 9 | 10 | 15 | 16 |
    17 | 18 | 19 | 模块 ngx_http_access_module 允许限制某些IP地址的客户端访问。 20 | 21 | 22 | 23 | 也可以通过 24 | 密码来限制访问。 25 | 使用 26 | 指令就能同时通过IP地址和密码来限制访问。 27 | 28 | 29 |
    30 | 31 | 32 |
    33 | 34 | 35 | 36 | location / { 37 | deny 192.168.1.1; 38 | allow 192.168.1.0/24; 39 | allow 10.1.1.0/16; 40 | allow 2001:0db8::/32; 41 | deny all; 42 | } 43 | 44 | 45 | 46 | 47 | 规则按照顺序依次检测,直到匹配到第一条规则。 48 | 在这个例子里,IPv4的网络中只有 49 | 10.1.1.0/16192.168.1.0/24允许访问,但 50 | 192.168.1.1除外, 51 | 对于IPv6的网络,只有2001:0db8::/32允许访问。 52 | 在规则很多的情况下,使用 53 | ngx_http_geo_module 54 | 模块变量更合适。 55 | 56 | 57 |
    58 | 59 | 60 |
    61 | 62 | 63 | 64 | address | 65 | CIDR | 66 | all 67 | 68 | http 69 | server 70 | location 71 | limit_except 72 | 73 | 74 | 允许指定的网络地址访问。 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | address | 83 | CIDR | 84 | all 85 | 86 | http 87 | server 88 | location 89 | limit_except 90 | 91 | 92 | 拒绝指定的网络地址访问。 93 | 94 | 95 | 96 | 97 |
    98 | 99 |
    100 | -------------------------------------------------------------------------------- /xml/en/docs/stream/ngx_stream_mqtt_preread_module.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | 9 | 13 | 14 |
    15 | 16 | 17 | The ngx_stream_mqtt_preread_module module (1.23.4) allows 18 | extracting information from the CONNECT message 19 | of the Message Queuing Telemetry Transport protocol (MQTT) versions 20 | 3.1.1 21 | and 22 | 5.0, 23 | for example, a username or a client ID. 24 | 25 | 26 | 27 | 28 | This module is available as part of our 29 | commercial subscription. 30 | 31 | 32 | 33 |
    34 | 35 | 36 |
    37 | 38 | 39 | 40 | mqtt_preread on; 41 | return $mqtt_preread_clientid; 42 | 43 | 44 | 45 |
    46 | 47 | 48 |
    49 | 50 | 51 | on | off 52 | off 53 | stream 54 | server 55 | 56 | 57 | Enables extracting information from the MQTT CONNECT message at 58 | the preread phase. 59 | 60 | 61 | 62 | 63 |
    64 | 65 | 66 |
    67 | 68 | 69 | 70 | 71 | $mqtt_preread_clientid 72 | 73 | the clientid value from the CONNECT message 74 | 75 | 76 | $mqtt_preread_username 77 | 78 | the username value from the CONNECT message 79 | 80 | 81 | 82 | 83 | 84 |
    85 | 86 |
    87 | -------------------------------------------------------------------------------- /xml/en/docs/stream/ngx_stream_access_module.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 9 | 10 | 14 | 15 |
    16 | 17 | 18 | The ngx_stream_access_module module (1.9.2) allows 19 | limiting access to certain client addresses. 20 | 21 | 22 |
    23 | 24 | 25 |
    26 | 27 | 28 | 29 | server { 30 | ... 31 | deny 192.168.1.1; 32 | allow 192.168.1.0/24; 33 | allow 10.1.1.0/16; 34 | allow 2001:0db8::/32; 35 | deny all; 36 | } 37 | 38 | 39 | 40 | 41 | The rules are checked in sequence until the first match is found. 42 | In this example, access is allowed only for IPv4 networks 43 | 10.1.1.0/16 and 192.168.1.0/24 44 | excluding the address 192.168.1.1, 45 | and for IPv6 network 2001:0db8::/32. 46 | 47 | 48 |
    49 | 50 | 51 |
    52 | 53 | 54 | 55 | address | 56 | CIDR | 57 | unix: | 58 | all 59 | 60 | stream 61 | server 62 | 63 | 64 | Allows access for the specified network or address. 65 | If the special value unix: is specified, 66 | allows access for all UNIX-domain sockets. 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | address | 75 | CIDR | 76 | unix: | 77 | all 78 | 79 | stream 80 | server 81 | 82 | 83 | Denies access for the specified network or address. 84 | If the special value unix: is specified, 85 | denies access for all UNIX-domain sockets. 86 | 87 | 88 | 89 | 90 |
    91 | 92 |
    93 | -------------------------------------------------------------------------------- /xml/ru/docs/stream/ngx_stream_realip_module.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | 9 | 13 | 14 |
    15 | 16 | 17 | Модуль ngx_stream_realip_module позволяет 18 | менять адрес и порт клиента 19 | на переданные в заголовке протокола PROXY (1.11.4). 20 | Протокол PROXY должен быть предварительно включён при помощи установки 21 | параметра 22 | в директиве listen. 23 | 24 | 25 | 26 | По умолчанию этот модуль не собирается, его сборку необходимо 27 | разрешить с помощью конфигурационного параметра 28 | --with-stream_realip_module. 29 | 30 | 31 |
    32 | 33 | 34 |
    35 | 36 | 37 | 38 | listen 12345 proxy_protocol; 39 | 40 | set_real_ip_from 192.168.1.0/24; 41 | set_real_ip_from 192.168.2.1; 42 | set_real_ip_from 2001:0db8::/32; 43 | 44 | 45 | 46 |
    47 | 48 | 49 |
    50 | 51 | 52 | 53 | адрес | 54 | CIDR | 55 | unix: 56 | 57 | stream 58 | server 59 | 60 | 61 | Задаёт доверенные адреса, которые передают верный адрес 62 | для замены. 63 | Если указано специальное значение unix:, 64 | доверенными будут считаться все UNIX-сокеты. 65 | 66 | 67 | 68 | 69 |
    70 | 71 | 72 |
    73 | 74 | 75 | 76 | 77 | $realip_remote_addr 78 | 79 | хранит исходный адрес клиента 80 | 81 | 82 | $realip_remote_port 83 | 84 | хранит исходный порт клиента 85 | 86 | 87 | 88 | 89 | 90 |
    91 | 92 |
    93 | -------------------------------------------------------------------------------- /xml/en/docs/stream/ngx_stream_realip_module.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | 9 | 13 | 14 |
    15 | 16 | 17 | The ngx_stream_realip_module module is used 18 | to change the client address and port 19 | to the ones sent in the PROXY protocol header (1.11.4). 20 | The PROXY protocol must be previously enabled by setting the 21 | parameter 22 | in the listen directive. 23 | 24 | 25 | 26 | This module is not built by default, it should be enabled with the 27 | --with-stream_realip_module 28 | configuration parameter. 29 | 30 | 31 |
    32 | 33 | 34 |
    35 | 36 | 37 | 38 | listen 12345 proxy_protocol; 39 | 40 | set_real_ip_from 192.168.1.0/24; 41 | set_real_ip_from 192.168.2.1; 42 | set_real_ip_from 2001:0db8::/32; 43 | 44 | 45 | 46 |
    47 | 48 | 49 |
    50 | 51 | 52 | 53 | address | 54 | CIDR | 55 | unix: 56 | 57 | stream 58 | server 59 | 60 | 61 | Defines trusted addresses that are known to send correct 62 | replacement addresses. 63 | If the special value unix: is specified, 64 | all UNIX-domain sockets will be trusted. 65 | 66 | 67 | 68 | 69 |
    70 | 71 | 72 |
    73 | 74 | 75 | 76 | 77 | $realip_remote_addr 78 | 79 | keeps the original client address 80 | 81 | 82 | $realip_remote_port 83 | 84 | keeps the original client port 85 | 86 | 87 | 88 | 89 | 90 |
    91 | 92 |
    93 | -------------------------------------------------------------------------------- /xml/it/docs/debugging_log.xml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 7 | 8 |
    13 | 14 | 15 |
    16 | 17 | 18 | Per poter abilitare il log di debug, 19 | nginx deve essere stato configurato appositamente in 20 | fase di compilazione: 21 | 22 | 23 | ./configure --with-debug ... 24 | 25 | 26 | Dopo di cio', e' possibile configurare il livello di 27 | debug tramite la direttiva 28 | : 29 | 30 | 31 | error_log /path/to/log debug; 32 | 33 | 34 | La versione binaria di nginx per Windows e' sempre compilata 35 | con tale supporto, per cui in questo caso e' sufficiente 36 | configurare il livello di debug. 37 | 38 | 39 | 40 | Si tenga presente che ridefinire il log senza anche 41 | specificare il livello di debug 42 | causa la disabilitazione del log. 43 | Nell'esempio che segue, la ridefinizione del log nel livello 44 | 45 | disabilita il log di debug per tale server: 46 | 47 | error_log /path/to/log debug; 48 | 49 | http { 50 | server { 51 | error_log /path/to/log; 52 | ... 53 | 54 | Se ridefinire il log risulta necessario, per non 55 | incorrere in questo problema bisogna indicare 56 | esplicitamente il livello di debug: 57 | 58 | error_log /path/to/log debug; 59 | 60 | http { 61 | server { 62 | error_log /path/to/log debug; 63 | ... 64 | 65 | 66 | 67 | 68 | E' pure possibile abilitare il debug solo 69 | per 70 | indirizzi client specifici: 71 | 72 | 73 | error_log /path/to/log; 74 | 75 | events { 76 | debug_connection 192.168.1.1; 77 | debug_connection 192.168.10.0/24; 78 | } 79 | 80 | 81 | 82 |
    83 | 84 |
    85 | -------------------------------------------------------------------------------- /xml/it/docs/hash.xml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 7 | 8 |
    13 | 14 |
    15 | 16 | 17 | Per processare rapidamente insiemi di dati, quali ad esempio 18 | nomi di server, valori relativi alla direttiva 19 | , 20 | MIME type, stringhe di nomi di header di richiesta, 21 | nginx usa tabelle di hash. 22 | Durante l'avvio ed in seguito ad ogni rilettura della configurazione, 23 | nginx seleziona la minore dimensione possibile delle tabelle 24 | di hash, tale che la dimensione del bucket che memorizza le chiavi 25 | con identico valore hash non superi il relativo parametro configurato 26 | (hash bucket size). 27 | La dimensione di una tabella e' espressa in bucket; tale dimensione 28 | viene regolata continuamente, sinche' la dimensione non eccede il 29 | valore configurato (hash max size). 30 | Molti hash dispongono di specifiche direttive che consentono la modifica 31 | di tali parametri; ad esempio, per l'hash dei nomi dei server esistono 32 | 33 | e . 34 | 35 | 36 | 37 | Il parametro hash bucket size e' allineato ad una dimensione 38 | multipla di quella di una linea di cache del processore utilizzato; 39 | nei moderni processori cio' riduce il numero di accessi alla memoria 40 | e quindi il tempo necessario a ricercare la chiave di un hash. 41 | Se la dimensione del bucket hash e' pari a quella di una linea di 42 | cache, allora il numero di accessi alla memoria durante la ricerca di 43 | una chiave sara' nel peggiore dei casi pari a due —uno per l'indirizzo 44 | del bucket, l'altro durante la ricerca della chiave nel bucket. 45 | Per tale ragione, se nginx mostra un messaggio che suggerisce 46 | l'incremento o della dimensione massima dell'hash oppure della 47 | dimensione del bucket hash, e' preferibile intervenire anzitutto 48 | sul primo dei due parametri e non modificare per quanto possibile 49 | il secondo. 50 | 51 | 52 |
    53 | 54 |
    55 | -------------------------------------------------------------------------------- /xml/en/docs/http/ngx_http_auth_require_module.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | 9 | 13 | 14 |
    15 | 16 | 17 | The ngx_http_auth_require_module module (1.29.0) 18 | implements variable-based client authorization. 19 | It can also use variables 20 | provided by other access modules such as 21 | ngx_http_auth_request_module 22 | or 23 | ngx_http_auth_oidc_module. 24 | 25 | 26 | 27 | 28 | This module is available as part of our 29 | commercial subscription. 30 | 31 | 32 | 33 |
    34 | 35 | 36 |
    37 | 38 | 39 | 40 | http { 41 | oidc_provider my_idp { 42 | ... 43 | } 44 | 45 | map $oidc_claim_role $admin_role { 46 | "admin" 1; 47 | } 48 | 49 | server { 50 | auth_oidc my_idp; 51 | 52 | location /admin { 53 | auth_require $admin_role; 54 | } 55 | } 56 | } 57 | 58 | 59 | 60 |
    61 | 62 | 63 |
    64 | 65 | 66 | 67 | 68 | $value ... 69 | [error=4xx | 70 | 5xx] 71 | 72 | off 73 | http 74 | server 75 | location 76 | limit_except 77 | 78 | 79 | Enables authorization based on the specified variables. 80 | The access is allowed only if all the variables are not 81 | empty and are not equal to “0”. 82 | Otherwise, the module returns 403 code, which can be 83 | overridden by the error parameter. 84 | Several auth_require directives can be used to return 85 | different error codes. 86 | 87 | 88 | 89 | 90 |
    91 | 92 |
    93 | -------------------------------------------------------------------------------- /xml/ru/docs/http/ngx_http_gzip_static_module.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 9 | 10 | 14 | 15 |
    16 | 17 | 18 | Модуль ngx_http_gzip_static_module позволяет отдавать 19 | вместо обычного файла предварительно сжатый файл с таким же именем 20 | и с расширением “.gz”. 21 | 22 | 23 | 24 | По умолчанию этот модуль не собирается, его сборку необходимо 25 | разрешить с помощью конфигурационного параметра 26 | --with-http_gzip_static_module. 27 | 28 | 29 |
    30 | 31 | 32 |
    33 | 34 | 35 | 36 | gzip_static on; 37 | gzip_proxied expired no-cache no-store private auth; 38 | 39 | 40 | 41 |
    42 | 43 | 44 |
    45 | 46 | 47 | 48 | on | 49 | off | 50 | always 51 | off 52 | http 53 | server 54 | location 55 | 56 | 57 | Разрешает (“on”) или запрещает (“off”) 58 | проверку готового сжатого файла. 59 | При использовании также учитываются директивы 60 | , 61 | , 62 | 63 | и . 64 | 65 | 66 | 67 | Со значением “always” (1.3.6) во всех случаях будет 68 | использоваться сжатый файл, без проверки поддержки на стороне клиента. 69 | Это полезно, если на диске всё равно нет несжатых файлов, или используется 70 | модуль ngx_http_gunzip_module. 71 | 72 | 73 | 74 | Сжимать файлы можно с помощью программы gzip 75 | или совместимой с ней. 76 | Желательно, чтобы дата и время модификации исходного и сжатого файлов совпадали. 77 | 78 | 79 | 80 | 81 |
    82 | 83 |
    84 | -------------------------------------------------------------------------------- /xml/en/docs/http/ngx_http_gzip_static_module.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 9 | 10 | 14 | 15 |
    16 | 17 | 18 | The ngx_http_gzip_static_module module allows 19 | sending precompressed files with the “.gz” 20 | filename extension instead of regular files. 21 | 22 | 23 | 24 | This module is not built by default, it should be enabled with the 25 | --with-http_gzip_static_module 26 | configuration parameter. 27 | 28 | 29 |
    30 | 31 | 32 |
    33 | 34 | 35 | 36 | gzip_static on; 37 | gzip_proxied expired no-cache no-store private auth; 38 | 39 | 40 | 41 |
    42 | 43 | 44 |
    45 | 46 | 47 | 48 | on | 49 | off | 50 | always 51 | off 52 | http 53 | server 54 | location 55 | 56 | 57 | Enables (“on”) or disables (“off”) 58 | checking the existence of precompressed files. 59 | The following directives are also taken into account: 60 | , 61 | , 62 | , 63 | and . 64 | 65 | 66 | 67 | With the “always” value (1.3.6), gzipped file is used 68 | in all cases, without checking if the client supports it. 69 | It is useful if there are no uncompressed files on the disk anyway 70 | or the ngx_http_gunzip_module 71 | is used. 72 | 73 | 74 | 75 | The files can be compressed using the gzip command, 76 | or any other compatible one. 77 | It is recommended that the modification date and time of original and 78 | compressed files be the same. 79 | 80 | 81 | 82 | 83 |
    84 | 85 |
    86 | -------------------------------------------------------------------------------- /xml/en/docs/http/ngx_http_addition_module.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 9 | 10 | 14 | 15 |
    16 | 17 | 18 | The ngx_http_addition_module module is a filter 19 | that adds text before and after a response. 20 | This module is not built by default, it should be enabled with the 21 | --with-http_addition_module 22 | configuration parameter. 23 | 24 | 25 |
    26 | 27 | 28 |
    29 | 30 | 31 | 32 | location / { 33 | add_before_body /before_action; 34 | add_after_body /after_action; 35 | } 36 | 37 | 38 | 39 |
    40 | 41 | 42 |
    43 | 44 | 45 | uri 46 | 47 | http 48 | server 49 | location 50 | 51 | 52 | Adds the text returned as a result of processing a given subrequest 53 | before the response body. 54 | An empty string ("") as a parameter cancels addition 55 | inherited from the previous configuration level. 56 | 57 | 58 | 59 | 60 | 61 | 62 | uri 63 | 64 | http 65 | server 66 | location 67 | 68 | 69 | Adds the text returned as a result of processing a given subrequest 70 | after the response body. 71 | An empty string ("") as a parameter cancels addition 72 | inherited from the previous configuration level. 73 | 74 | 75 | 76 | 77 | 78 | 79 | mime-type ... 80 | text/html 81 | http 82 | server 83 | location 84 | 0.7.9 85 | 86 | 87 | Allows adding text in responses with the specified MIME types, 88 | in addition to “text/html”. 89 | The special value “*” matches any MIME type (0.8.29). 90 | 91 | 92 | 93 | 94 |
    95 | 96 |
    97 | -------------------------------------------------------------------------------- /xml/en/docs/http/ngx_http_gunzip_module.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 9 | 10 | 14 | 15 |
    16 | 17 | 18 | The ngx_http_gunzip_module module is a filter that 19 | decompresses responses with “Content-Encoding: gzip” 20 | for clients that do not support “gzip” encoding method. 21 | The module will be useful when it is desirable to store 22 | data compressed to save space and reduce I/O costs. 23 | 24 | 25 | 26 | This module is not built by default, it should be enabled with the 27 | --with-http_gunzip_module 28 | configuration parameter. 29 | 30 | 31 |
    32 | 33 | 34 |
    35 | 36 | 37 | 38 | location /storage/ { 39 | gunzip on; 40 | ... 41 | } 42 | 43 | 44 | 45 |
    46 | 47 | 48 |
    49 | 50 | 51 | on | off 52 | off 53 | http 54 | server 55 | location 56 | 57 | 58 | Enables or disables decompression of gzipped responses 59 | for clients that lack gzip support. 60 | If enabled, the following directives are also taken into account 61 | when determining if clients support gzip: 62 | , 63 | , and 64 | . 65 | See also the directive. 66 | 67 | 68 | 69 | 70 | 71 | 72 | number size 73 | 32 4k|16 8k 74 | http 75 | server 76 | location 77 | 78 | 79 | Sets the number and size of buffers 80 | used to decompress a response. 81 | By default, the buffer size is equal to one memory page. 82 | This is either 4K or 8K, depending on a platform. 83 | 84 | 85 | 86 | 87 |
    88 | 89 |
    90 | -------------------------------------------------------------------------------- /xsls/menu.xsls: -------------------------------------------------------------------------------- 1 | 5 | 6 | X:stylesheet { 7 | 8 | X:template = "menu/item" { 9 | 14 | 15 |
  • 16 | 17 | X:if "@href = $LINK" { 18 | !{ normalize-space(text()) }
    19 | 20 | } else { 21 | 25 | X:if "$TRANS and @switchlang" { 26 | 27 | 32 | X:if "contains($TRANS, @switchlang)" { 33 | 34 | X:attribute "href" { 35 | !{ concat($ROOT, '/', @switchlang, '/', 36 | substring-after($LINK, concat('/', $LANG, '/'))) } 37 | } 38 | !{ normalize-space(text()) } 39 | 40 | 41 | } else { 42 | !{ normalize-space(text()) } 43 | } 44 | } else { 45 | 46 | 47 | X:attribute "href" { 48 | 49 | X:if "starts-with(@href, $DIRNAME)" { 50 | X:if "substring-after(@href, $DIRNAME) = ''" { 51 | X:text {./} 52 | } else { 53 | !{ substring-after(@href, $DIRNAME) } 54 | } 55 | 56 | } else { 57 | !{ concat($ROOT, @href) } 58 | } 59 | } 60 | !{ normalize-space(text()) } 61 | 62 | 63 | X:if "@lang" { X:text { [} !{@lang} X:text {]}} 64 | } 65 | } 66 |
  • 67 | } 68 | 69 | 70 | X:template = "menu/item[starts-with(@href, 'http://') or starts-with(@href, 'https://')]" { 71 |
  • 72 | !{ normalize-space(text()) } 73 | X:if "@lang" { X:text { [} !{@lang} X:text {]}} 74 |
  • 75 | } 76 | 77 | 78 | X:template = "menu/item[not(@href)]" { 79 |
  • !{ normalize-space(text()) }
  • 80 | } 81 | 82 | } 83 | -------------------------------------------------------------------------------- /text/keys/sb.key: -------------------------------------------------------------------------------- 1 | -----BEGIN PGP PUBLIC KEY BLOCK----- 2 | Version: GnuPG v1.4.11 (FreeBSD) 3 | 4 | mQENBE5E4vkBCADPkWWzk7W5cXOqeZ1ULNSj8nt5azbYjfQ8OyR2AaDW8J7oazYH 5 | reIHKid5uZVJxwr1uLoMloGiYTdy4XYIF2WcOfDnjNGumrAT0Nd4Kdax/pHr5Pdp 6 | jFsO4BkHyWk/5/zDCijyoGYLBR6I8hqn+WDuLG/sTtVuTWkUeOlfxb2eZdLyZ3oP 7 | 5T5FXtWTpKvr2y7RGshmS6EJnjiVvvErdbNItFXghqvBBaFOJaS2PRBEO9RfKpti 8 | i+eS/cmlrm+Tjv44EPfQyLtAmCQ8uqfL50uIKEp6/dsC/OVJ6JlJOYl4j90DX7vB 9 | TJaOyUm4s+BLF2BK+Ow8+s+B6jQ5noa/o16NABEBAAG0IFNlcmdleSBCdWRuZXZp 10 | dGNoIDxzYkBuZ2lueC5jb20+iQE+BBMBAgAoBQJOROQ6AhsDBQkJZgGABgsJCAcD 11 | AgYVCAIJCgsEFgIDAQIeAQIXgAAKCRCmT9Wxets5qEQgB/43Mxmiy7DjXEbxIYkC 12 | 9xPC4kf1X+bHkJ9BtAgaYDQewjtQ7vS98TKJBibm3l4egmBjFWjCpL8845n966+u 13 | XDqrDWJtOPUXvSEQNXGlijDGSxxpdK2dxDOKIOC8nIlZq/Xz/Uqjb2ZrszmYK2LD 14 | IHI1mN9HdI6aTt41QbtG0nkaPPgv3MEvxSMVCzVddroyPXvf/ErT4OSYU+dqJhH+ 15 | SBIezuF0suzH/siCksbSBZHIst5rggpjsZvijP5YFH/hpEsR+tKXo9EFk49xn9Ou 16 | WdmpOEs7CKDbTApkh9XN/Pk5nJQ/HIDuW8pkgzf2wxNWlMSYw6xnozDkeIqpJcDD 17 | 4niqiEYEEBECAAYFAk5OYocACgkQ7PDpCywXIIMKtQCfaAl2rvbEImu6MnDR32KG 18 | HTDH2TEAoNeWrSlavyFzbSQka53E9Gs6gF63tCBTZXJnZXkgQnVkbmV2aXRjaCA8 19 | c2JAd2FlbWUubmV0PokBQQQTAQIAKwIbAwUJCWYBgAYLCQgHAwIGFQgCCQoLBBYC 20 | AwECHgECF4AFAk5OR38CGQEACgkQpk/VsXrbOagPmAf/QmIEDkkiovc1MgQ81lh4 21 | eeHfvtptb+U4GVCu07DQUR9kEtN6Jqi65gKb95fEztI14PpX+euiWrc/RlnsxWc0 22 | jYF0UmyacWLN6oHPoxlCK5+7zyoz5UTNrYGkTfWfcNtTU509CEZRClBNjMZOTZjP 23 | QhdR+Ce6tngRcQvMGNaLjJkKuY7vPh6FjT5oqxpnEIRTsWq6bUaeCXm7j9x0as1Z 24 | w1E5D5it3Ug3VlAe58jFJmRgatOsWznKuNoLRjQ2Chp2ce+dLgXriuJMrvEsn5S4 25 | dImUGL5DVYWDVZNG+r85XnOhMfKG308pZby1uzFvD+j3P6yMj1tpaCAAi5lUkHh6 26 | bIhGBBARAgAGBQJOTmJ/AAoJEOzw6QssFyCDH50AoMyJPvPDTYXK5KHOlPYPZQ5M 27 | OuCAAJ9zQ/3hKedm3xCLGl4Y6hjxJNlUTbkBDQROROL5AQgAuGIfx9aVOOXVdj8b 28 | XvjBQt+UkBURYGACHFQ69w71Aupsg9pZ7FgwgVKxnoNlmRag8sInjQbs3M/lS0sB 29 | dg75zZ7Ph7aPev8RAqdtX5+xxvujv1cmkFBExFuC5Wp/Yfzk/lPWZR4vXZrTpRiF 30 | PLMlRu0CEJFqoqPPygGFar02Q7rO+da35pxAuYrOWGM7MNr8H/vk13+GiqniBQCa 31 | uSoWwZQzaEdG5VGgm/vAwPzO+Cbam3r+Hs7OieykAy8fv+B+qhHn8Vc/520iGvdO 32 | IAKpxl6oZrkbNL/wozOOLZni7iWl30C43ujxPiGRlg/YotHmhlnMic85QKyakXCS 33 | WXI/JQARAQABiQElBBgBAgAPBQJOROL5AhsMBQkJZgGAAAoJEKZP1bF62zmoGCwH 34 | /2a6zlu4Jwmv21vuroaAzECV8gp1luBeagn23EgMMukYhkbwLtL/0twAHmZlkpzl 35 | atfq/EH2PgOasl2biJixqp7o9V7Uw6PS5JoY+1IrLEurG+FU2TN/Ysp12al4Z0Hh 36 | p4yBRSEikISO9gkeUThixDPX1PjCpx8G/ZYqk+8jRCcDgWsUc/WV3VGPht68oDd7 37 | 56/hfQYc/V3eJmm5WYLVGV7Q69tGtp6D09SpoeqCD2K77auEBRVJ4jaT4B2/EfSb 38 | x6y7Dy4Oxm8TBOQ2EZw2vEixKxtEt86/oBtLUkqVockPq/Ek9AL+KzT6VR1xU+Cm 39 | CoHAyoqJeb/xLBwuKWg0/4U= 40 | =iFlP 41 | -----END PGP PUBLIC KEY BLOCK----- 42 | -------------------------------------------------------------------------------- /xml/ru/docs/http/ngx_http_addition_module.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 9 | 10 | 14 | 15 |
    16 | 17 | 18 | Модуль ngx_http_addition_module — это фильтр, 19 | добавляющий текст до и после ответа. 20 | По умолчанию этот модуль не собирается, его сборку необходимо 21 | разрешить с помощью конфигурационного параметра 22 | --with-http_addition_module. 23 | 24 | 25 |
    26 | 27 | 28 |
    29 | 30 | 31 | 32 | location / { 33 | add_before_body /before_action; 34 | add_after_body /after_action; 35 | } 36 | 37 | 38 | 39 |
    40 | 41 | 42 |
    43 | 44 | 45 | uri 46 | 47 | http 48 | server 49 | location 50 | 51 | 52 | Добавляет перед телом ответа текст, выдаваемый в результате 53 | работы заданного подзапроса. 54 | Пустая строка ("") в качестве параметра отменяет добавление, 55 | унаследованное с предыдущего уровня конфигурации. 56 | 57 | 58 | 59 | 60 | 61 | 62 | uri 63 | 64 | http 65 | server 66 | location 67 | 68 | 69 | Добавляет после тела ответа текст, выдаваемый в результате 70 | работы заданного подзапроса. 71 | Пустая строка ("") в качестве параметра отменяет добавление, 72 | унаследованное с предыдущего уровня конфигурации. 73 | 74 | 75 | 76 | 77 | 78 | 79 | mime-тип ... 80 | text/html 81 | http 82 | server 83 | location 84 | 0.7.9 85 | 86 | 87 | Разрешает добавлять текст в ответах с указанными MIME-типами 88 | в дополнение к “text/html”. 89 | Специальное значение “*” соответствует любому MIME-типу 90 | (0.8.29). 91 | 92 | 93 | 94 | 95 |
    96 | 97 |
    98 | -------------------------------------------------------------------------------- /xml/ru/docs/http/ngx_http_gunzip_module.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 9 | 10 | 14 | 15 |
    16 | 17 | 18 | Модуль ngx_http_gunzip_module — это фильтр, 19 | распаковывающий ответы с “Content-Encoding: gzip” 20 | для тех клиентов, которые не поддерживают метод сжатия “gzip”. 21 | Модуль будет полезен, когда данные желательно хранить сжатыми 22 | для экономии места и сокращения затрат на ввод-вывод. 23 | 24 | 25 | 26 | По умолчанию этот модуль не собирается, его сборку необходимо 27 | разрешить с помощью конфигурационного параметра 28 | --with-http_gunzip_module. 29 | 30 | 31 |
    32 | 33 | 34 |
    35 | 36 | 37 | 38 | location /storage/ { 39 | gunzip on; 40 | ... 41 | } 42 | 43 | 44 | 45 |
    46 | 47 | 48 |
    49 | 50 | 51 | on | off 52 | off 53 | http 54 | server 55 | location 56 | 57 | 58 | Разрешает или запрещает распаковку ответов, сжатых методом gzip, 59 | для тех клиентов, которые его не поддерживают. 60 | Если разрешено, то для определения, поддерживает ли клиент gzip, 61 | также учитываются следующие директивы: 62 | , 63 | и 64 | . 65 | См. также директиву . 66 | 67 | 68 | 69 | 70 | 71 | 72 | число размер 73 | 32 4k|16 8k 74 | http 75 | server 76 | location 77 | 78 | 79 | Задаёт число и размер буферов, 80 | в которые будет разжиматься ответ. 81 | По умолчанию размер одного буфера равен размеру страницы. 82 | В зависимости от платформы это или 4K, или 8K. 83 | 84 | 85 | 86 | 87 |
    88 | 89 |
    90 | -------------------------------------------------------------------------------- /xml/en/docs/http/ngx_http_mirror_module.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | 9 | 13 | 14 |
    15 | 16 | 17 | The ngx_http_mirror_module module (1.13.4) implements 18 | mirroring of an original request 19 | by creating background mirror subrequests. 20 | Responses to mirror subrequests are ignored. 21 | 22 | 23 |
    24 | 25 | 26 |
    27 | 28 | 29 | 30 | location / { 31 | mirror /mirror; 32 | proxy_pass http://backend; 33 | } 34 | 35 | location = /mirror { 36 | internal; 37 | proxy_pass http://test_backend$request_uri; 38 | } 39 | 40 | 41 | 42 |
    43 | 44 | 45 |
    46 | 47 | 48 | uri | off 49 | off 50 | http 51 | server 52 | location 53 | 54 | 55 | Sets the URI to which an original request will be mirrored. 56 | Several mirrors can be specified on the same configuration level. 57 | 58 | 59 | 60 | 61 | 62 | 63 | on | off 64 | on 65 | http 66 | server 67 | location 68 | 69 | 70 | Indicates whether the client request body is mirrored. 71 | When enabled, the client request body will be read 72 | prior to creating mirror subrequests. 73 | In this case, unbuffered client request body proxying 74 | set by the 75 | , 76 | , 77 | , 78 | and 79 | 80 | directives will be disabled. 81 | 82 | location / { 83 | mirror /mirror; 84 | mirror_request_body off; 85 | proxy_pass http://backend; 86 | } 87 | 88 | location = /mirror { 89 | internal; 90 | proxy_pass http://log_backend; 91 | proxy_pass_request_body off; 92 | proxy_set_header Content-Length ""; 93 | proxy_set_header X-Original-URI $request_uri; 94 | } 95 | 96 | 97 | 98 | 99 | 100 |
    101 | 102 |
    103 | --------------------------------------------------------------------------------