├── 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 |
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 |
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 |
13 |
14 |
15 |
16 |
17 |
18 |
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 |
33 |
34 |
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 | 容量可以用千字节(k ,K )和兆字节(m ,M )来描述,比如“8k ”,“1m ”。
18 | 如果没有指定单位,容量以字节为单位。
19 |
20 |
21 |
22 | 时间可以用分钟、小时、天等来描述:
23 |
24 | s 秒
25 | m 分钟
26 | h 小时
27 | d 天
28 | w 周
29 | M 月,30天
30 | y 年,365天
31 |
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 |
34 |
35 |
36 |
37 |
38 |
39 |
40 | !{@title} X:text { } !{@description}
41 | Docs •
42 | Code
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
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 |
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_log の debug レベルをセットします:
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 |
20 |
21 |
22 |
27 |
28 |
29 |
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 |
19 |
20 |
21 |
26 |
27 |
28 |
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 |
19 |
20 |
21 |
26 |
27 |
28 |
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 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 | Docs •
43 | Code
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
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 |
14 |
15 |
16 |
17 |
18 |
19 |
20 | title:
21 | authors: author:
22 |
23 |
24 | ,
25 |
26 |
27 |
28 | translator:
29 | publisher:
30 | language:
31 | year:
32 |
33 |
34 |
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 |
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 |
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 | ms millisecondi
28 | s secondi
29 | m minuti
30 | h ore
31 | d giorni
32 | w settimane
33 | M mesi, 30 giorni
34 | y anni, 365 giorni
35 |
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 |
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/16 和 192.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 |
--------------------------------------------------------------------------------