Kuweka upokeaji otomatiki wa vyeti vya letsencrypt kwa kutumia docker kwenye linux

Hivi majuzi nilibadilisha seva ya kawaida, na ilibidi nisanidi kila kitu tena. Ninapendelea tovuti ipatikane kupitia https na vyeti vya letsencrypt kupatikana na kusasishwa kiotomatiki. Hii inaweza kupatikana kwa kutumia picha mbili za docker nginx-proksi na nginx-proxy-companion.

Huu ni mwongozo wa jinsi ya kusanidi tovuti kwenye Docker, na proksi inayopokea cheti cha SSL kiotomatiki. Seva pepe ya CentOS 7 inatumika.

Nadhani seva tayari imenunuliwa, imesanidiwa, imeingia kwa kutumia ufunguo, kushindwa2ban kusakinishwa, nk.

Kwanza unahitaji kufunga docker.

  1. Kwanza unahitaji kufunga utegemezi
    $ sudo yum install -y yum-utils  device-mapper-persistent-data lvm2
  2. Unganisha hazina
    $ sudo yum-config-manager  --add-repo  https://download.docker.com/linux/centos/docker-ce.repo
  3. Kisha usakinishe toleo la jumuiya ya docker
    $ sudo yum install docker-ce docker-ce-cli containerd.io
  4. Ongeza docker ili kuanza na kukimbia
    $ sudo systemctl enable docker
    $ sudo systemctl start docker
  5. Ongeza mtumiaji kwenye kikundi cha docker ili kuweza kuendesha docker bila sudo
    $ usermod -aG docker user

Hatua inayofuata ni kusakinisha docker-compose. Huduma inaweza kusanikishwa kwa njia kadhaa, lakini napendelea kusanikisha kupitia meneja wa bomba na virtualenv, ili usisumbue mfumo na vifurushi visivyo vya lazima.

  1. Weka bomba
    $ sudo yum install python-pip
  2. Sakinisha virtualenv
    $ pip install virtualenv
  3. Ifuatayo, unahitaji kuunda folda na mradi na uanzishe. Folda iliyo na kila kitu unachohitaji kudhibiti vifurushi itaitwa ve.
    $ mkdir docker
    $ cd docker
    $ virtualenv ve
  4. Ili kuanza kutumia mazingira ya kawaida, unahitaji kuendesha amri ifuatayo kwenye folda ya mradi.
    $ source ve/bin/activate
  5. Unaweza kusakinisha docker-compose.
    pip install docker-compose

    Ili vyombo vione kila mmoja, tutaunda mtandao. Kwa default, dereva wa daraja hutumiwa.

    $ docker network create network

    Ifuatayo unahitaji kusanidi docker-compose, proksi itakuwa kwenye folda ya wakala, tovuti ya majaribio itakuwa kwenye folda ya majaribio. Kwa mfano, ninatumia jina la kikoa example.com

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

    Yaliyomo proksi/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:

    Tofauti ya mazingira NGINX_PROXY_CONTAINER ni muhimu kwa kontena ya letsencrypt kuona chombo cha proksi. Folda /etc/nginx/certs /etc/nginx/vhost.d na /usr/share/nginx/html lazima zishirikiwe na vyombo vyote viwili. Ili kontena la letsencrypt lifanye kazi ipasavyo, ni lazima programu ipatikane kwenye bandari 80 na 443.

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

    Hapa, vigezo vya mazingira vinahitajika ili proksi ichakate kwa usahihi ombi kwa seva na kuomba cheti cha jina sahihi la kikoa.

    Kilichobaki ni kuendesha docker-compose

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

Chanzo: mapenzi.com

Kuongeza maoni