Kev teeb tsa tsis siv neeg tau txais daim ntawv pov thawj letsencrypt siv docker ntawm linux

Kuv nyuam qhuav hloov lub virtual server, thiab yuav tsum tau teeb tsa txhua yam ntxiv. Kuv xav kom lub vev xaib nkag tau los ntawm https thiab tso cai rau daim ntawv pov thawj tau txais thiab rov ua dua tshiab. Qhov no tuaj yeem ua tiav los ntawm kev siv ob daim duab docker nginx-proxy thiab nginx-proxy-tus khub.

Nov yog phau ntawv qhia yuav ua li cas teeb tsa lub vev xaib ntawm Docker, nrog lub npe uas tau txais SSL daim ntawv pov thawj. CentOS 7 virtual server yog siv.

Kuv xav tias tus neeg rau zaub mov twb tau yuav, teeb tsa, nkag mus siv tus yuam sij, tsis ua haujlwm 2ban ntsia, thiab lwm yam.

Ua ntej koj yuav tsum nruab docker.

  1. Ua ntej koj yuav tsum nruab dependencies
    $ sudo yum install -y yum-utils  device-mapper-persistent-data lvm2
  2. Txuas chaw cia khoom
    $ sudo yum-config-manager  --add-repo  https://download.docker.com/linux/centos/docker-ce.repo
  3. Tom qab ntawd nruab docker zej zog tsab
    $ sudo yum install docker-ce docker-ce-cli containerd.io
  4. Ntxiv docker rau kev pib thiab khiav
    $ sudo systemctl enable docker
    $ sudo systemctl start docker
  5. Ntxiv ib tus neeg siv rau pawg docker kom tuaj yeem khiav docker yam tsis muaj sudo
    $ usermod -aG docker user

Cov kauj ruam tom ntej yog rau nruab docker-compose. Cov khoom siv hluav taws xob tuaj yeem ntsia tau rau ntau txoj hauv kev, tab sis kuv nyiam nruab los ntawm tus tswj hwm pip thiab virtualenv, kom tsis txhob cuam tshuam cov kab ke nrog cov pob khoom tsis tsim nyog.

  1. Nruab pip
    $ sudo yum install python-pip
  2. Nruab virtualenv
    $ pip install virtualenv
  3. Tom ntej no koj yuav tsum tsim ib daim nplaub tshev nrog qhov project thiab pib nws. Cov ntawv tais ceev tseg nrog txhua yam koj xav tau los tswj cov pob khoom yuav raug hu ua ve.
    $ mkdir docker
    $ cd docker
    $ virtualenv ve
  4. Txhawm rau pib siv ib puag ncig virtual, koj yuav tsum khiav cov lus txib hauv qab no hauv qhov project folder.
    $ source ve/bin/activate
  5. Koj tuaj yeem nruab docker-compose.
    pip install docker-compose

    Txhawm rau kom cov thawv ntim tau pom ib leeg, peb yuav tsim lub network. Los ntawm lub neej ntawd, tus choj tsav tsheb yog siv.

    $ docker network create network

    Tom ntej no koj yuav tsum configure docker-compose, lub npe yuav nyob rau hauv lub npe nplaub tshev, qhov chaw xeem yuav nyob rau hauv lub xeem folder. Piv txwv li, kuv siv lub npe sau example.com

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

    Cov ntsiab lus 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:

    Ib puag ncig hloov pauv NGINX_PROXY_CONTAINER Nws yog ib qho tsim nyog rau lub thawv letsencrypt kom pom lub thawv npe. Lub /etc/nginx/certs /etc/nginx/vhost.d thiab /usr/share/nginx/html folders yuav tsum tau muab faib los ntawm ob lub thawv. Rau lub thawv letsencrypt ua haujlwm kom raug, daim ntawv thov yuav tsum nkag mus rau ntawm qhov chaw nres nkoj 80 thiab 443.

    Cov ntsiab lus 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]

    Ntawm no, ib puag ncig hloov pauv yuav tsum tau ua kom lub npe raug ua tiav qhov kev thov rau lub server thiab thov daim ntawv pov thawj rau lub npe sau npe raug.

    Txhua yam uas tseem tshuav yog khiav docker-compose

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

Tau qhov twg los: www.hab.com

Ntxiv ib saib