рд▓рд┐рдирдХреНрд╕рдорд╛ рдбрдХрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ letsencrypt рдкреНрд░рдорд╛рдгрдкрддреНрд░рд╣рд░реВрдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░рд╕рд┐рдж рд╕реЗрдЯ рдЕрдк рдЧрд░реНрджреИ

рдореИрд▓реЗ рднрд░реНрдЪреБрдЕрд▓ рд╕рд░реНрднрд░ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реЗрдВ, рд░ рд╕рдмреИ рдХреБрд░рд╛ рдлреЗрд░рд┐ рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░реНрдиреБрдкрд░реНтАНрдпреЛред рдо рд░реБрдЪрд╛рдЙрдБрдЫреБ рдХрд┐ рд╕рд╛рдЗрдЯ https рдорд╛рд░реНрдлрдд рдкрд╣реБрдБрдЪрдпреЛрдЧреНрдп рд╣реЛрд╕реН рд░ letsencrypt рдкреНрд░рдорд╛рдгрдкрддреНрд░рд╣рд░реВ рдкреНрд░рд╛рдкреНрдд рд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдкрдорд╛ рдирд╡реАрдХрд░рдг рд╣реЛрд╕реНред рдпреЛ рджреБрдИ рдбрдХрд░ рдЫрд╡рд┐рд╣рд░реВ nginx-proxy рд░ nginx-proxy-companion рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред

рдпреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдкрдорд╛ SSL рдкреНрд░рдорд╛рдгрдкрддреНрд░рд╣рд░реВ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреЗ рдкреНрд░реЛрдХреНрд╕реАрдХреЛ рд╕рд╛рде, рдбрдХрд░рдорд╛ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдХрд╕рд░реА рд╕реЗрдЯрдЕрдк рдЧрд░реНрдиреЗ рднрдиреНрдиреЗ рдмрд╛рд░реЗ рдЧрд╛рдЗрдб рд╣реЛред CentOS 7 рднрд░реНрдЪреБрдЕрд▓ рд╕рд░реНрднрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫред

рдо рдорд╛рдиреНрджрдЫреБ рдХрд┐ рд╕рд░реНрднрд░ рдкрд╣рд┐рд▓реЗ рдиреИ рдЦрд░рд┐рдж рдЧрд░рд┐рдПрдХреЛ рдЫ, рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░рд┐рдПрдХреЛ рдЫ, рдХреБрдЮреНрдЬреА рдкреНрд░рдпреЛрдЧ рдЧрд░реА рд▓рдЧ рдЗрди рдЧрд░рд┐рдПрдХреЛ рдЫ, fail2ban рд╕реНрдерд╛рдкрдирд╛ рдЧрд░рд┐рдПрдХреЛ рдЫ, рдЖрджрд┐ред

рдкрд╣рд┐рд▓реЗ рддрдкрд╛рдИрдВрд▓реЗ рдбрдХрд░ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред

  1. рдкрд╣рд┐рд▓реЗ рддрдкрд╛рдИрдВрд▓реЗ рдирд┐рд░реНрднрд░рддрд╛рд╣рд░реВ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ
    $ sudo yum install -y yum-utils  device-mapper-persistent-data lvm2
  2. рднрдгреНрдбрд╛рд░ рдЬрдбрд╛рди рдЧрд░реНрдиреБрд╣реЛрд╕реН
    $ sudo yum-config-manager  --add-repo  https://download.docker.com/linux/centos/docker-ce.repo
  3. рддреНрдпрд╕рдкрдЫрд┐ рдбрдХрд░ рд╕рдореБрджрд╛рдп рд╕рдВрд╕реНрдХрд░рдг рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН
    $ sudo yum install docker-ce docker-ce-cli containerd.io
  4. рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рд░ рдЪрд▓рд╛рдЙрди рдбрдХрд░ рдердкреНрдиреБрд╣реЛрд╕реН
    $ sudo systemctl enable docker
    $ sudo systemctl start docker
  5. sudo рдмрд┐рдирд╛ рдбрдХрд░ рдЪрд▓рд╛рдЙрди рд╕рдХреНрд╖рдо рд╣реБрди рдбрдХрд░ рд╕рдореВрд╣рдорд╛ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рдердкреНрдиреБрд╣реЛрд╕реН
    $ usermod -aG docker user

рдЕрд░реНрдХреЛ рдЪрд░рдг рдбрдХрд░-рдХрдореНрдкреЛрдЬ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрдиреБ рд╣реЛред рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдзреЗрд░реИ рддрд░рд┐рдХрд╛рдорд╛ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ, рддрд░ рдо рдкрд╛рдЗрдк рдкреНрд░рдмрдиреНрдзрдХ рд░ virtualenv рдорд╛рд░реНрдлрдд рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрди рд░реБрдЪрд╛рдЙрдБрдЫреБ, рддрд╛рдХрд┐ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВрд╕рдБрдЧ рдкреНрд░рдгрд╛рд▓реА рдЕрд╡реНрдпрд╡рд╕реНрдерд┐рдд рдирд╣реЛрд╕реНред

  1. рдкрд╛рдЗрдк рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН
    $ sudo yum install python-pip
  2. virtualenv рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН
    $ pip install virtualenv
  3. рдЕрд░реНрдХреЛ рддрдкрд╛рдИрдВрд▓реЗ рдкрд░рд┐рдпреЛрдЬрдирд╛рдХреЛ рд╕рд╛рде рдлреЛрд▓реНрдбрд░ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рд░ рдпрд╕рд▓рд╛рдИ рдкреНрд░рд╛рд░рдореНрдн рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред рддрдкрд╛рдИрдВрд▓реЗ рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВ рдкреНрд░рдмрдиреНрдз рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рд╕рдмреИ рдЪреАрдЬрд╣рд░реВ рднрдПрдХреЛ рдлреЛрд▓реНрдбрд░рд▓рд╛рдИ ve рднрдирд┐рдиреЗрдЫред
    $ mkdir docker
    $ cd docker
    $ virtualenv ve
  4. рднрд░реНрдЪреБрдЕрд▓ рд╡рд╛рддрд╛рд╡рд░рдг рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕реБрд░реБ рдЧрд░реНрди, рддрдкрд╛рдИрдВрд▓реЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдлреЛрд▓реНрдбрд░рдорд╛ рдирд┐рдореНрди рдЖрджреЗрд╢ рдЪрд▓рд╛рдЙрди рдЖрд╡рд╢реНрдпрдХ рдЫред
    $ source ve/bin/activate
  5. рддрдкрд╛рдИрдВ docker-compose рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред
    pip install docker-compose

    рдХрдиреНрдЯреЗрдирд░рд╣рд░реВ рдПрдХрдЕрд░реНрдХрд╛рд▓рд╛рдИ рд╣реЗрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐, рд╣рд╛рдореА рдиреЗрдЯрд╡рд░реНрдХ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреЗрдЫреМрдВред рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░реВрдкрдорд╛, рдкреБрд▓ рдЪрд╛рд▓рдХ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫред

    $ docker network create network

    рдЕрд░реНрдХреЛ рддрдкрд╛рдИрдВрд▓реЗ рдбрдХрд░-рдХрдореНрдкреЛрдЬ рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ, рдкреНрд░реЛрдХреНрд╕реА рдкреНрд░реЛрдХреНрд╕реА рдлреЛрд▓реНрдбрд░рдорд╛ рд╣реБрдиреЗрдЫ, рдкрд░реАрдХреНрд╖рдг рд╕рд╛рдЗрдЯ рдкрд░реАрдХреНрд╖рдг рдлреЛрд▓реНрдбрд░рдорд╛ рд╣реБрдиреЗрдЫред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдо рдбреЛрдореЗрди рдирд╛рдо example.com рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджреИрдЫреБ

    $ mkdir proxy
    $ mkdir test
    $ touch proxy/docker-compose.yml
    $ touch test/docker-compose.yml

    рд╕рд╛рдорд╛рдЧреНрд░реА proxy/docker-compose.yml

    version: '3'
    
    networks:
      default:
        external:
          name: network
    
    services:
      nginx-proxy:
        container_name: nginx-proxy
        image: jwilder/nginx-proxy
        ports:
          - 80:80
          - 443:443
        volumes:
          - certs:/etc/nginx/certs
          - vhost.d:/etc/nginx/vhost.d
          - html:/usr/share/nginx/html
          - /var/run/docker.sock:/tmp/docker.sock:ro
    
      nginx-proxy-letsencrypt:
        container_name: nginx-proxy-letsencrypt
        image: jrcs/letsencrypt-nginx-proxy-companion
        volumes: 
          - certs:/etc/nginx/certs
          - vhost.d:/etc/nginx/vhost.d
          - html:/usr/share/nginx/html
          - /var/run/docker.sock:/var/run/docker.sock:ro
        environment:
          - NGINX_PROXY_CONTAINER=nginx-proxy
    
    volumes:
      certs:
      vhost.d:
      html:

    рдкрд░рд┐рд╡реЗрд╢ рдЪрд░ NGINX_PROXY_CONTAINER рдпреЛ letsencrypt рдХрдиреНрдЯреЗрдирд░рдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд░реЛрдХреНрд╕реА рдХрдиреНрдЯреЗрдирд░ рд╣реЗрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред /etc/nginx/certs /etc/nginx/vhost.d рд░ /usr/share/nginx/html рдлреЛрд▓реНрдбрд░рд╣рд░реВ рджреБрд╡реИ рдХрдиреНрдЯреЗрдирд░рд╣рд░реВрджреНрд╡рд╛рд░рд╛ рд╕рд╛рдЭрд╛ рд╣реБрдиреБрдкрд░реНрдЫред letsencrypt рдХрдиреНрдЯреЗрдирд░ рд╕рд╣реА рддрд░рд┐рдХрд╛рд▓реЗ рдХрд╛рдо рдЧрд░реНрди рдХреЛ рд▓рд╛рдЧреА, рдЕрдиреБрдкреНрд░рдпреЛрдЧ рджреБрдмреИ рдкреЛрд░реНрдЯ 80 рд░ 443 рдорд╛ рдкрд╣реБрдБрдЪрдпреЛрдЧреНрдп рд╣реБрдиреБрдкрд░реНрдЫред

    рд╕рд╛рдорд╛рдЧреНрд░реА test/docker-compose.yml

    version: '3'
    
    networks:
      default:
        external:
          name: network
    
    services:
    
      nginx:
        container_name: nginx
        image: nginx:latest
        environment:
          - VIRTUAL_HOST=example.com
          - LETSENCRYPT_HOST=example.com
          - [email protected]

    рдпрд╣рд╛рдБ, рд╡рд╛рддрд╛рд╡рд░рдг рдЪрд░ рдЖрд╡рд╢реНрдпрдХ рдЫ рддрд╛рдХрд┐ рдкреНрд░реЛрдХреНрд╕реАрд▓реЗ рд╕рд░реНрднрд░рдорд╛ рдЕрдиреБрд░реЛрдзрд▓рд╛рдИ рд╕рд╣реА рддрд░рд┐рдХрд╛рд▓реЗ рдкреНрд░рд╢реЛрдзрди рдЧрд░реНрдЫ рд░ рд╕рд╣реА рдбреЛрдореЗрди рдирд╛рдордХреЛ рд▓рд╛рдЧрд┐ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдЕрдиреБрд░реЛрдз рдЧрд░реНрджрдЫред

    рдмрд╛рдБрдХреА рд╕рдмреИ рдбрдХрд░-рдХрдореНрдкреЛрдЬ рдЪрд▓рд╛рдЙрди рд╣реЛ

    $ cd proxy
    $ docker-compose up -d
    $ cd ../test
    $ docker-compose up -d

рд╕реНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди