لینکس پر ڈاکر کا استعمال کرتے ہوئے letsencrypt سرٹیفکیٹس کی خودکار رسید ترتیب دینا

میں نے حال ہی میں ورچوئل سرور کو تبدیل کیا، اور ہر چیز کو دوبارہ ترتیب دینا پڑا۔ میں ترجیح دیتا ہوں کہ سائٹ https کے ذریعے قابل رسائی ہو اور letsencrypt سرٹیفکیٹ حاصل کیے جائیں اور خود بخود تجدید ہو جائیں۔ یہ دو ڈاکر امیجز nginx-proxy اور nginx-proxy-companion استعمال کرکے حاصل کیا جاسکتا ہے۔

یہ ایک گائیڈ ہے کہ ڈوکر پر ویب سائٹ کیسے ترتیب دی جائے، ایک پراکسی کے ساتھ جو خود بخود SSL سرٹیفکیٹ حاصل کرتی ہے۔ CentOS 7 ورچوئل سرور استعمال کیا جاتا ہے۔

میں فرض کرتا ہوں کہ سرور پہلے ہی خریدا جا چکا ہے، کنفیگر ہو چکا ہے، کلید کا استعمال کر کے لاگ ان ہو چکا ہے، فیل 2بان انسٹال ہو چکا ہے، وغیرہ۔

پہلے آپ کو ڈوکر انسٹال کرنے کی ضرورت ہے۔

  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

اگلا مرحلہ docker-compose انسٹال کرنا ہے۔ یوٹیلیٹی کو کئی طریقوں سے انسٹال کیا جا سکتا ہے، لیکن میں پائپ مینیجر اور ورچوئلنوی کے ذریعے انسٹال کرنے کو ترجیح دیتا ہوں، تاکہ سسٹم کو غیر ضروری پیکجوں سے بے ترتیبی نہ ہو۔

  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

    اس کے بعد آپ کو docker-compose ترتیب دینے کی ضرورت ہے، پراکسی پراکسی فولڈر میں ہوگی، ٹیسٹ سائٹ ٹیسٹ فولڈر میں ہوگی۔ مثال کے طور پر، میں ڈومین کا نام 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

نیا تبصرہ شامل کریں