Message-ID: <1789971727.2304.1711628104261.JavaMail.confluence@confluence-ru-0> Subject: Exported From Confluence MIME-Version: 1.0 Content-Type: multipart/related; boundary="----=_Part_2303_1208637603.1711628104260" ------=_Part_2303_1208637603.1711628104260 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Content-Location: file:///C:/exported.html
=D0=A1=D1=82=D0=B0=D0=BD=D0=B4=D0=B0=D1=80=D1=82=D0=BD=D1=8B=D0=
=B9 =D0=BE=D0=B1=D1=80=D0=B0=D0=B7 NGINX
=D0=BD=D0=B5 =D0=BF=D0=BE=D0=B7=D0=
=B2=D0=BE=D0=BB=D1=8F=D0=B5=D1=82 =D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D1=
=8F=D1=82=D1=8C =D0=BD=D0=BE=D0=B2=D1=8B=D0=B5 =D0=BC=D0=BE=D0=B4=D1=83=D0=
=BB=D0=B8. =D0=9F=D0=BE=D1=8D=D1=82=D0=BE=D0=BC=D1=83 =D0=B4=D0=BB=D1=8F =
=D1=8D=D1=82=D0=BE=D0=B3=D0=BE =D0=BF=D0=BE=D0=BD=D0=B0=D0=B4=D0=BE=D0=B1=
=D0=B8=D1=82=D1=81=D1=8F =D1=81=D0=BE=D0=B1=D1=80=D0=B0=D1=82=D1=8C =D0=BA=
=D0=B0=D1=81=D1=82=D0=BE=D0=BC=D0=BD=D1=8B=D0=B9 =D0=BE=D0=B1=D1=80=D0=B0=
=D0=B7.
=D0=97=D0=B0 =D0=BE=D1=81=D0=BD=D0=BE=D0=B2=D1=83 =D0=B2=D0=B7=D1=8F=D1=
=82 =D0=BE=D0=B1=D1=80=D0=B0=D0=B7 NGINX
c =D0=B2=D0=
=B5=D1=80=D1=81=D0=B8=D0=B9 1.22.0
=D0=B8 =D1=80=D0=
=B5=D1=86=D0=B5=D0=BF=D1=82 =D1=81 github, =D0=B3=D0=B4=D0=B5 =D0=BE=D0=BF=D1=83=D0=B1=D0=BB=D0=B8=D0=
=BA=D0=BE=D0=B2=D0=B0=D0=BD =D0=BE=D1=84=D0=B8=D1=86=D0=B8=D0=B0=D0=BB=D1=
=8C=D0=BD=D0=BE=D0=B9 =D0=BE=D0=B1=D1=80=D0=B0=D0=B7. =D0=A1=D0=BF=D0=B8=D1=
=81=D0=BE=D0=BA =D0=B4=D0=BE=D1=81=D1=82=D1=83=D0=BF=D0=BD=D1=8B=D1=85 =D0=
=BC=D0=BE=D0=B4=D1=83=D0=BB=D0=B5=D0=B9, =D0=BA=D0=BE=D1=82=D0=BE=D1=80=D1=
=8B=D0=B5 =D0=BC=D0=BE=D0=B6=D0=BD=D0=BE =D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=
=B8=D1=82=D1=8C =D0=B2 =D0=BA=D0=B0=D1=81=D1=82=D0=BE=D0=BC=D0=BD=D1=8B=D0=
=B9 =D0=BE=D0=B1=D1=80=D0=B0=D0=B7 =D0=BE=D0=BF=D1=83=D0=B1=D0=BB=D0=B8=D0=
=BA=D0=BE=D0=B2=D0=B0=D0=BD=D1=8B =D0=B7=D0=B4=D0=B5=D1=81=D1=8C: PKG-OSS.
=D0=A1=D0=BC=D0=BE=D1=82=D1=80=D0=B5=D1=
=82=D1=8C =D0=BD=D0=B0 Mak=
efile.module-*.
=
=D0=9F=D1=80=D0=B8 =D0=BD=D0=B5=D0=BE=D0=B1=D1=85=D0=BE=D0=B4=D0=B8=D0=BC=
=D0=BE=D1=81=D1=82=D0=B8 =D0=BC=D0=BE=D0=B6=D0=BD=D0=BE =D0=B8=D0=B7=D0=BC=
=D0=B5=D0=BD=D0=B8=D1=82=D1=8C =D0=B2=D0=B5=D1=80=D1=81=D0=B8=D1=8E =D0=B2=
=D0=B5=D0=B1-=D1=81=D0=B5=D1=80=D0=B2=D0=B5=D1=80=D0=B0 =D0=B2=D0=B7=D1=8F=
=D0=B2 Dockerfile
=D0=B8=D0=B7 =D0=BD=D1=83=D0=B6=D0=
=BD=D0=BE=D0=B9 =D0=B2=D0=B5=D1=82=D0=BA=D0=B8.
=D0=90=D0=BB=D0=B3=D0=BE=D1=80=D0= =B8=D1=82=D0=BC =D1=81=D0=BB=D0=B5=D0=B4=D1=83=D1=8E=D1=89=D0=B8=D0=B9:
=D0=A1=D0=BE=D0=B7=D0=B4=D0=B0=D1=82=D1= =8C =D0=B4=D0=B8=D1=80=D0=B5=D0=BA=D1=82=D0=BE=D1=80=D0=B8=D0=B8 =D0=B4=D0= =BB=D1=8F =D0=BA=D0=BE=D0=BD=D1=84=D0=B8=D0=B3=D1=83=D1=80=D0=B0=D1=86=D0= =B8=D0=BE=D0=BD=D0=BD=D1=8B=D1=85 =D1=84=D0=B0=D0=B9=D0=BB=D0=BE=D0=B2 (con= f.d =E2=80=94 =D0=B4=D0=BB=D1=8F =D0=BA=D0=BE=D0=BD=D1=84=D0=B8=D0=B3=D1=83= =D1=80=D0=B0=D1=86=D0=B8=D0=B9 =D0=B2=D0=B8=D1=80=D1=82=D1=83=D0=B0=D0=BB= =D1=8C=D0=BD=D1=8B=D1=85 =D1=85=D0=BE=D1=81=D1=82=D0=BE=D0=B2 =D0=B2 =D1=80= =D0=B0=D0=B7=D1=80=D0=B5=D0=B7=D0=B5 =D0=BF=D1=80=D0=B8=D0=BB=D0=BE=D0=B6= =D0=B5=D0=BD=D0=B8=D0=B9, modules-enabled - =D0=B4=D0=BB=D1=8F =D0=BA=D0=BE= =D0=BD=D1=84=D0=B8=D0=B3=D1=83=D1=80=D0=B0=D1=86=D0=B8=D0=B9 =D1=81 =D0=B7= =D0=B0=D0=B3=D1=80=D1=83=D0=B7=D0=BA=D0=BE=D0=B9 =D0=BD=D0=BE=D0=B2=D1=8B= =D1=85 =D0=BC=D0=BE=D0=B4=D1=83=D0=BB=D0=B5=D0=B9):
sudo mkdir /e= tc/hydra/nginx-custom && sudo mkdir /etc/hydra/nginx-custom/conf.d = /etc/hydra/nginx-custom/modules-enabled=20
=D0=A1=D0=BE=D0=B7=D0=B4=D0=B0=D0=B5=D0= =BC =D0=BA=D0=BE=D0=BD=D1=84=D0=B8=D0=B3=D1=83=D1=80=D0=B0=D1=86=D0=B8=D1= =8E =D0=BF=D0=BE =D1=83=D0=BC=D0=BE=D0=BB=D1=87=D0=B0=D0=BD=D0=B8=D1=8E =D0= =B4=D0=BB=D1=8F nginx:
resolver 127.= 0.0.11 valid=3D10s;=20
=D0=A1=D0=BE=D0=B7=D0=B4=D0=B0=D0=B5=D0= =BC =D0=BA=D0=BE=D0=BD=D1=84=D0=B8=D0=B3=D1=83=D1=80=D0=B0=D1=86=D0=B8=D1= =8E =D0=B2=D0=B5=D0=B1-=D1=81=D0=B5=D1=80=D0=B2=D0=B5=D1=80=D0=B0 =D0=B8 = =D0=B7=D0=B0=D0=B3=D1=80=D1=83=D0=B7=D0=BA=D0=B8 =D0=BC=D0=BE=D0=B4=D1=83= =D0=BB=D0=B5=D0=B9:
user nginx; worker_processes auto; error_log /var/log/nginx/error.log notice; pid /var/run/nginx.pid; include /etc/nginx/modules-enabled/*.conf; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request"= ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; #tcp_nopush on; keepalive_timeout 65; #gzip on; include /etc/nginx/conf.d/*.conf; }=20
=D0=A1=D0=BE=D0=B7=D0=B4=D0=B0=D0=B5=D0=
=BC docker-compose.yml. =D0=92 ENABLED_MODULES
=
=D0=BF=D0=B5=D1=80=D0=B5=D1=87=D0=B8=D1=81=D0=BB=D1=8F=D0=B5=D0=BC =D0=BD=
=D1=83=D0=B6=D0=BD=D1=8B=D0=B5 =D0=BC=D0=BE=D0=B4=D1=83=D0=BB=D0=B8.
version: "3.8= " services: nginx-custom: image: nginx-custom:v1 build: context: . args: #=D0=9F=D0=B5=D1=80=D0=B5=D1=87=D0=B8=D1=81=D0=BB=D1=8F=D0=B5=D0=BC= =D0=B2=D1=81=D0=B5 =D0=BD=D1=83=D0=B6=D0=BD=D1=8B=D0=B5 =D0=BC=D0=BE=D0=B4= =D1=83=D0=BB=D0=B8 ENABLED_MODULES: "ndk lua" ### =D0=94=D0=BB=D1=8F =D0=BF=D1=80=D0= =B8=D0=BC=D0=B5=D1=80=D0=B0 container_name: nginx-custom restart: unless-stopped volumes: - ./conf.d:/etc/nginx/conf.d:ro - /var/log/hydra/nginx-custom:/var/log/nginx - ./modules-enabled:/etc/nginx/modules-enabled:ro - ./nginx.conf:/etc/nginx/nginx.conf:ro networks: - default - nginx-custom ports: - 80:80 - 443:443 logging: driver: "syslog" options: tag: "hydra/nginx-custom/{{.Name}}" #=D0=9C=D0=BE=D0=B6=D0=B5=D1=82 =D0=BF=D1=80=D0=B8=D0=B3=D0=BE=D0=B4=D0= =B8=D1=82=D1=8C=D1=81=D1=8F =D0=B4=D0=BB=D1=8F =D0=BE=D1=82=D0=BB=D0=B0=D0= =B4=D0=BA=D0=B8 =D1=80=D0=B0=D0=B1=D0=BE=D1=82=D1=8B =D0=BF=D1=80=D0=B8=D0= =BB=D0=BE=D0=B6=D0=B5=D0=BD=D0=B8=D1=8F ##=D0=92=D0=BA=D0=BB=D1=8E=D1=87=D0=B0=D1=82=D1=8C, =D0=B5=D1=81=D0=BB= =D0=B8 =D0=B2=D0=B5=D0=B1-=D1=81=D0=B5=D1=80=D0=B2=D0=B5=D1=80 =D0=BD=D0=B5= =D1=81=D1=82=D0=B0=D1=80=D1=82=D1=83=D0=B5=D1=82 ###command: tail -F /remove-after-moving.txt networks: nginx-custom: internal: true name: nginx-custom=20
=D0=A1=D0=BE=D0=B7=D0=B4=D0=B0=D0=B5=D0=
=BC =D0=BA=D0=BE=D0=BD=D1=84=D0=B8=D0=B3=D1=83=D1=80=D0=B0=D1=86=D0=B8=D1=
=8E =D1=81 =D0=B7=D0=B0=D0=B3=D1=80=D1=83=D0=B7=D0=BA=D0=BE=D0=B9 =D0=BD=D1=
=83=D0=B6=D0=BD=D1=8B=D1=85 =D0=BC=D0=BE=D0=B4=D1=83=D0=BB=D0=B5=D0=B9. =D0=
=92 =D1=81=D0=BB=D1=83=D1=87=D0=B0=D0=B5 =D1=81 ngx_http_lua_mod=
ule
=D1=81=D0=BD=D0=B0=D1=87=D0=B0=D0=BB=D0=B0 =D0=BD=D0=B5=D0=
=BE=D0=B1=D1=85=D0=BE=D0=B4=D0=B8=D0=BC=D0=BE =D0=B2=D1=8B=D0=BF=D0=BE=D0=
=BB=D0=BD=D0=B8=D1=82=D1=8C =D0=B7=D0=B0=D0=B3=D1=80=D1=83=D0=B7=D0=BA=D1=
=83 ndk_http_module
:
load_module /= etc/nginx/modules/ndk_http_module.so; load_module /etc/nginx/modules/ngx_http_lua_module.so;=20
=D0=A1=D0=BE=D0=B7=D0=B4=D0=B0=D0=B5=D0=
=BC Dockerfile
=D0=B4=D0=BB=D1=8F =D1=81=D0=B1=D0=BE=
=D1=80=D0=BA=D0=B8 =D0=BE=D0=B1=D1=80=D0=B0=D0=B7=D0=B0 (=D0=92 =D0=BD=D0=
=B5=D0=BC =D0=BD=D0=B8=D1=87=D0=B5=D0=B3=D0=BE =D0=BD=D0=B5 =D0=BD=D1=83=D0=
=B6=D0=BD=D0=BE =D0=BC=D0=B5=D0=BD=D1=8F=D1=82=D1=8C):
FROM nginx:ma= inline as builder ARG ENABLED_MODULES RUN set -ex \ && if [ "$ENABLED_MODULES" =3D "" ]; then \ echo "No additional modules enabled, exiting"; \ exit 1; \ fi COPY ./ /modules/ RUN set -ex \ && apt update \ && apt install -y --no-install-suggests --no-install-recommends= \ patch make wget mercurial devscripts debhelper dpkg-dev \ quilt lsb-release build-essential libxml2-utils xsltproc \ equivs git g++ \ && hg clone -r ${NGINX_VERSION}-${PKG_RELEASE%%~*} https://hg.n= ginx.org/pkg-oss/ \ && cd pkg-oss \ && mkdir /tmp/packages \ && for module in $ENABLED_MODULES; do \ echo "Building $module for nginx-$NGINX_VERSION"; \ if [ -d /modules/$module ]; then \ echo "Building $module from user-supplied sources"; \ # check if module sources file is there and not empty if [ ! -s /modules/$module/source ]; then \ echo "No source file for $module in modules/$module/source,= exiting"; \ exit 1; \ fi; \ # some modules require build dependencies if [ -f /modules/$module/build-deps ]; then \ echo "Installing $module build dependencies"; \ apt update && apt install -y --no-install-suggests = --no-install-recommends $(cat /modules/$module/build-deps | xargs); \ fi; \ # if a module has a build dependency that is not in a distro, p= rovide a # shell script to fetch/build/install those # note that shared libraries produced as a result of this scrip= t will # not be copied from the builder image to the main one so build= static if [ -x /modules/$module/prebuild ]; then \ echo "Running prebuild script for $module"; \ /modules/$module/prebuild; \ fi; \ /pkg-oss/build_module.sh -v $NGINX_VERSION -f -y -o /tmp/packag= es -n $module $(cat /modules/$module/source); \ BUILT_MODULES=3D"$BUILT_MODULES $(echo $module | tr '[A-Z]' '[a= -z]' | tr -d '[/_\-\.\t ]')"; \ elif make -C /pkg-oss/debian list | grep -P "^$module\s+\d" > /d= ev/null; then \ echo "Building $module from pkg-oss sources"; \ cd /pkg-oss/debian; \ make rules-module-$module BASE_VERSION=3D$NGINX_VERSION NGINX_V= ERSION=3D$NGINX_VERSION; \ mk-build-deps --install --tool=3D"apt-get -o Debug::pkgProblemR= esolver=3Dyes --no-install-recommends --yes" debuild-module-$module/nginx-$= NGINX_VERSION/debian/control; \ make module-$module BASE_VERSION=3D$NGINX_VERSION NGINX_VERSION= =3D$NGINX_VERSION; \ find ../../ -maxdepth 1 -mindepth 1 -type f -name "*.deb" -exec= mv -v {} /tmp/packages/ \;; \ BUILT_MODULES=3D"$BUILT_MODULES $module"; \ else \ echo "Don't know how to build $module module, exiting"; \ exit 1; \ fi; \ done \ && echo "BUILT_MODULES=3D\"$BUILT_MODULES\"" > /tmp/packages= /modules.env FROM nginx:mainline COPY --from=3Dbuilder /tmp/packages /tmp/packages RUN set -ex \ && apt update \ && . /tmp/packages/modules.env \ && for module in $BUILT_MODULES; do \ apt install --no-install-suggests --no-install-recommends -y /tm= p/packages/nginx-module-${module}_${NGINX_VERSION}*.deb; \ done \ && rm -rf /tmp/packages \ && rm -rf /var/lib/apt/lists/=20
=D0=97=D0=B0=D1=85=D0=BE=D0=B4=D0=B8=D0= =BC =D0=B2 =D0=B4=D0=B8=D1=80=D0=B5=D0=BA=D1=82=D0=BE=D1=80=D0=B8=D1=8E =D1= =81 =D0=BF=D1=80=D0=B8=D0=BB=D0=BE=D0=B6=D0=B5=D0=BD=D0=B8=D0=B5=D0=BC =D0= =B8 =D1=81=D0=BE=D0=B1=D0=B8=D1=80=D0=B0=D0=B5=D0=BC =D0=B5=D0=B3=D0=BE:
cd /etc/hydra= /nginx-custom/ sudo docker-compose build=20
=D0=97=D0=B0=D0=BF=D1=83=D1=81=D0=BA=D0= =B0=D0=B5=D0=BC =D0=B2=D0=B5=D0=B1-=D1=81=D0=B5=D1=80=D0=B2=D0=B5=D1=80:.= p>
cd /etc/hydra= /nginx-custom/ sudo docker-compose up -d=20
=D0=9F=D0=BE=D1=81=D0=BC=D0=BE=D1=82=
=D1=80=D0=B5=D1=82=D1=8C =D0=BB=D0=BE=D0=B3=D0=B8 NGINX
=D0=BC=
=D0=BE=D0=B6=D0=BD=D0=BE =D0=B2 =D1=81=D0=BB=D0=B5=D0=B4=D1=83=D1=8E=D1=89=
=D0=B5=D0=B9 =D0=B4=D0=B8=D1=80=D0=B5=D0=BA=D1=82=D0=BE=D1=80=D0=B8=D0=B8: =
/var/log/hydra/nginx-custom
, =D0=BB=D0=B8=D0=B1=D0=BE =D0=BF=
=D1=80=D0=B8 =D0=BF=D0=BE=D0=BC=D0=BE=D1=89=D0=B8 =D0=BA=D0=BE=D0=BC=D0=B0=
=D0=BD=D0=B4=D1=8B =D0=BD=D0=B8=D0=B6=D0=B5:
sudo docker l= ogs nginx-custom=20
=D0=9F=D0=B5=D1=80=D0=B5=D0=B7=D0=B0=D0=
=BF=D1=83=D1=81=D1=82=D0=B8=D1=82=D1=8C nginx-=D0=BA=D0=BE=D0=BD=D1=
=84=D0=B8=D0=B3
=D0=BC=D0=BE=D0=B6=D0=BD=D0=BE =D0=BF=D1=80=D0=B8 =
=D0=BF=D0=BE=D0=BC=D0=BE=D1=89=D0=B8 =D1=81=D0=BB=D0=B5=D0=B4=D1=83=D1=8E=
=D1=89=D0=B5=D0=B9 =D0=BA=D0=BE=D0=BC=D0=B0=D0=BD=D0=B4=D1=8B:
sudo docker e= xec nginx-custom nginx -s reload=20