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=9F=D0=BE=D0=B4=D0=B3=D0=BE=D1=82=D0=BE=D0=B2=D0=BA=D0=B0 NGI= NX =D0=B2 Docker =D1=81 =D1=83=D1=81=D1=82=D0=B0=D0=BD=D0=BE=D0=B2=D0=BA=D0= =BE=D0=B9 =D0=B4=D0=BE=D0=BF=D0=BE=D0=BB=D0=BD=D0=B8=D1=82=D0=B5=D0=BB=D1= =8C=D0=BD=D1=8B=D1=85 =D0=BC=D0=BE=D0=B4=D1=83=D0=BB=D0=B5=D0=B9

=D0=9F=D0=BE=D0=B4=D0=B3=D0=BE=D1=82=D0=BE=D0=B2=D0=BA=D0=B0 NGINX = =D0=B2 Docker =D1=81 =D1=83=D1=81=D1=82=D0=B0=D0=BD=D0=BE=D0=B2=D0=BA=D0=BE= =D0=B9 =D0=B4=D0=BE=D0=BF=D0=BE=D0=BB=D0=BD=D0=B8=D1=82=D0=B5=D0=BB=D1=8C= =D0=BD=D1=8B=D1=85 =D0=BC=D0=BE=D0=B4=D1=83=D0=BB=D0=B5=D0=B9

=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:

  1. =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):

    =20
    sudo mkdir /e=
    tc/hydra/nginx-custom && sudo mkdir /etc/hydra/nginx-custom/conf.d =
    /etc/hydra/nginx-custom/modules-enabled
    =20
  2. =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:

    /etc/hydra/nginx-custom/conf.d/nginx.conf
    =20
    resolver 127.=
    0.0.11 valid=3D10s;
    =20
  3. =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:

    /etc/hydra/nginx-custom/nginx.conf
    =20
    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
  4. =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.

    /etc/hydra/nginx-custom/docker-compose.yml
    =20
    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
  5. =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:

    /etc/hydra/nginx-custom/modules-enabled/modules.conf
    =20
    load_module /=
    etc/nginx/modules/ndk_http_module.so;
    load_module /etc/nginx/modules/ngx_http_lua_module.so;
    =20
  6. =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):

    /etc/hydra/nginx-custom/Dockerfile
    =20
    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
  7. =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:

    =D0=A1=D0=B1=D0=BE=D1=80=D0=BA=D0=B0 =D0=BE=D0=B1=D1=80=D0=B0=D0=B7=D0= =B0
    =20
    cd /etc/hydra=
    /nginx-custom/
    sudo docker-compose build
    =20
  8. =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:.

    =D0=A1=D0=B1=D0=BE=D1=80=D0=BA=D0=B0 =D0=BE=D0=B1=D1=80=D0=B0=D0=B7=D0= =B0
    =20
    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:

    =D0=A1=D0=B1=D0=BE=D1=80=D0=BA=D0=B0 =D0=BE=D0=B1=D1=80=D0=B0=D0=B7=D0= =B0
    =20
    sudo docker l=
    ogs nginx-custom
    =20
  9. =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:

    =20
    sudo docker e=
    xec nginx-custom nginx -s reload
    =20
------=_Part_2303_1208637603.1711628104260--