ලිනක්ස් හි ඩොකර් භාවිතා කර letsencrypt සහතික සඳහා ස්වයංක්‍රීය රිසිට්පතක් සැකසීම

මම මෑතකදී අථත්‍ය සේවාදායකය වෙනස් කළ අතර නැවත සියල්ල වින්‍යාස කිරීමට සිදු විය. https හරහා වෙබ් අඩවියට ප්‍රවේශ විය හැකි අතර, ස්වයංක්‍රීයව ලබා ගැනීමට සහ අලුත් කිරීමට encrypt සහතික ලබා දීමට මම කැමැත්තෙමි. nginx-proxy සහ nginx-proxy-companion යන ඩොකර් රූප දෙකක් භාවිතා කිරීමෙන් මෙය සාක්ෂාත් කරගත හැකිය.

මෙය SSL සහතික ස්වයංක්‍රීයව ලැබෙන ප්‍රොක්සියක් සමඟින්, Docker හි වෙබ් අඩවියක් සකසන ආකාරය පිළිබඳ මාර්ගෝපදේශයකි. 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 නොමැතිව docker ධාවනය කිරීමට හැකි වන පරිදි docker කණ්ඩායමට පරිශීලකයෙකු එක් කරන්න
    $ usermod -aG docker user

ඊළඟ පියවර වන්නේ docker-compose ස්ථාපනය කිරීමයි. උපයෝගිතා ක්රම කිහිපයකින් ස්ථාපනය කළ හැකි නමුත්, අනවශ්ය පැකේජ සමඟ පද්ධතිය අවුල් නොකිරීමට, මම pip කළමනාකරු සහ 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]

    මෙහිදී, පරිසර විචල්‍යයන් අවශ්‍ය වන අතර එමඟින් ප්‍රොක්සිය විසින් සේවාදායකය වෙත ඉල්ලීම නිවැරදිව ක්‍රියා කර නිවැරදි වසම් නාමය සඳහා සහතිකයක් ඉල්ලා සිටී.

    ඉතිරිව ඇත්තේ docker-compose ධාවනය කිරීම පමණි

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

මූලාශ්රය: www.habr.com

අදහස් එක් කරන්න