Kumisikidza otomatiki risiti ye letsencrypt zvitupa uchishandisa docker palinux

Ini nguva pfupi yadarika ndakachinja sevha chaiyo, uye ndaifanira kugadzirisa zvese zvakare. Ini ndinoda kuti saiti iwanikwe kuburikidza ne https uye letsencrypt zvitupa zviwanikwe uye kuvandudzwa otomatiki. Izvi zvinogona kuwanikwa nekushandisa maviri docker mifananidzo nginx-proxy uye nginx-proxy-shamwari.

Iri igwara rekuti ungamisa sei webhusaiti paDocker, ine proxy inogamuchira otomatiki zvitupa zveSSL. Iyo CentOS 7 virtual server inoshandiswa.

Ini ndinofungidzira kuti sevha yakatotengwa, yakagadziriswa, yakapinda uchishandisa kiyi, fail2ban yakaiswa, nezvimwe.

Kutanga iwe unofanirwa kuisa docker.

  1. Kutanga iwe unofanirwa kuisa dependencies
    $ sudo yum install -y yum-utils  device-mapper-persistent-data lvm2
  2. Batanidza repository
    $ sudo yum-config-manager  --add-repo  https://download.docker.com/linux/centos/docker-ce.repo
  3. Wobva waisa docker nharaunda edition
    $ sudo yum install docker-ce docker-ce-cli containerd.io
  4. Wedzera docker kutanga uye kumhanya
    $ sudo systemctl enable docker
    $ sudo systemctl start docker
  5. Wedzera mushandisi kuboka re docker kuti ukwanise kumhanya docker pasina sudo
    $ usermod -aG docker user

Nhanho inotevera ndeyekuisa docker-compose. Iyo yekushandisa inogona kuiswa munzira dzinoverengeka, asi ini ndinosarudza kuisa kuburikidza nepip maneja uye virtualenv, kuti urege kusanganisa sisitimu nemapakeji asina kufanira.

  1. Isa pip
    $ sudo yum install python-pip
  2. Isa virtualenv
    $ pip install virtualenv
  3. Tevere iwe unofanirwa kugadzira folda ine purojekiti uye woitanga. Iyo folda ine zvese zvaunoda kubata mapakeji ichanzi ve.
    $ mkdir docker
    $ cd docker
    $ virtualenv ve
  4. Kuti utange kushandisa iyo chaiyo nharaunda, iwe unofanirwa kumhanya unotevera kuraira mune purojekiti folda.
    $ source ve/bin/activate
  5. Unogona kuisa docker-compose.
    pip install docker-compose

    Kuti midziyo ione mumwe nemumwe, isu tichagadzira network. Nokusingaperi, mutyairi webhiriji anoshandiswa.

    $ docker network create network

    Tevere iwe unofanirwa kugadzirisa docker-compose, iyo proxy ichave iri muproxy folda, saiti yekuyedza ichave muyedzo folda. Semuenzaniso, ndiri kushandisa zita rezita rekuti example.com

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

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

    Environment variable NGINX_PROXY_CONTAINER zvinodikanwa kuti letsencrypt mudziyo uone iyo proxy mudziyo. Iyo /etc/nginx/certs /etc/nginx/vhost.d uye /usr/share/nginx/html maforodha anofanira kugovaniswa nemidziyo miviri. Kuti letsencrypt mudziyo ushande nemazvo, application yacho inofanirwa kuwanikwa pachiteshi 80 ne443.

    Zvemukati 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]

    Pano, shanduko yemamiriro ekunze inodiwa kuti proxy inyatso kugadzirisa chikumbiro kune server uye kukumbira chitupa chezita chairo rezita.

    Chasara kumhanyisa docker-compose

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

Source: www.habr.com

Voeg