ಲಿನಕ್ಸ್‌ನಲ್ಲಿ ಡಾಕರ್ ಬಳಸಿಕೊಂಡು ಲೆಟ್ಸೆನ್‌ಕ್ರಿಪ್ಟ್ ಪ್ರಮಾಣಪತ್ರಗಳ ಸ್ವಯಂಚಾಲಿತ ರಸೀದಿಯನ್ನು ಹೊಂದಿಸಲಾಗುತ್ತಿದೆ

ನಾನು ಇತ್ತೀಚೆಗೆ ವರ್ಚುವಲ್ ಸರ್ವರ್ ಅನ್ನು ಬದಲಾಯಿಸಿದ್ದೇನೆ ಮತ್ತು ಎಲ್ಲವನ್ನೂ ಮತ್ತೆ ಕಾನ್ಫಿಗರ್ ಮಾಡಬೇಕಾಗಿತ್ತು. ಸೈಟ್ ಅನ್ನು 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

ಕಾಮೆಂಟ್ ಅನ್ನು ಸೇರಿಸಿ