linuxలో డాకర్‌ని ఉపయోగించి లెట్‌సెన్‌క్రిప్ట్ సర్టిఫికెట్‌ల స్వయంచాలక రసీదుని సెటప్ చేస్తోంది

నేను ఇటీవల వర్చువల్ సర్వర్‌ని మార్చాను మరియు ప్రతిదీ మళ్లీ కాన్ఫిగర్ చేయాల్సి వచ్చింది. సైట్‌ని https ద్వారా యాక్సెస్ చేయవచ్చని మరియు సెన్క్రిప్ట్ సర్టిఫికేట్‌లను స్వయంచాలకంగా పొందాలని మరియు పునరుద్ధరించాలని నేను ఇష్టపడతాను. 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. సుడో లేకుండా డాకర్‌ను అమలు చేయడానికి డాకర్ సమూహానికి వినియోగదారుని జోడించండి
    $ usermod -aG docker user

తదుపరి దశ డాకర్-కంపోజ్‌ని ఇన్‌స్టాల్ చేయడం. యుటిలిటీని అనేక విధాలుగా ఇన్‌స్టాల్ చేయవచ్చు, కాని అనవసరమైన ప్యాకేజీలతో సిస్టమ్‌ను అస్తవ్యస్తం చేయకుండా ఉండటానికి నేను పిప్ మేనేజర్ మరియు వర్చువలెన్వ్ ద్వారా ఇన్‌స్టాల్ చేయడానికి ఇష్టపడతాను.

  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. మీరు డాకర్-కంపోజ్‌ని ఇన్‌స్టాల్ చేయవచ్చు.
    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 లెట్సెన్‌క్రిప్ట్ కంటైనర్‌కు ప్రాక్సీ కంటైనర్‌ను చూడడం అవసరం. /etc/nginx/certs /etc/nginx/vhost.d మరియు /usr/share/nginx/html ఫోల్డర్‌లు తప్పనిసరిగా రెండు కంటైనర్‌ల ద్వారా భాగస్వామ్యం చేయబడాలి. లెట్‌సెన్‌క్రిప్ట్ కంటైనర్ సరిగ్గా పని చేయడానికి, అప్లికేషన్ తప్పనిసరిగా పోర్ట్ 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

ఒక వ్యాఖ్యను జోడించండి