நான் சமீபத்தில் மெய்நிகர் சேவையகத்தை மாற்றினேன், மேலும் எல்லாவற்றையும் மீண்டும் கட்டமைக்க வேண்டியிருந்தது. தளத்தை https மூலம் அணுகலாம் மற்றும் என்கிரிப்ட் சான்றிதழ்கள் தானாகவே பெறப்பட்டு புதுப்பிக்கப்பட வேண்டும் என்று நான் விரும்புகிறேன். nginx-proxy மற்றும் nginx-proxy-companion ஆகிய இரண்டு டோக்கர் படங்களைப் பயன்படுத்தி இதை அடையலாம்.
SSL சான்றிதழ்களைத் தானாகப் பெறும் ப்ராக்ஸியுடன், டோக்கரில் இணையதளத்தை எவ்வாறு அமைப்பது என்பதற்கான வழிகாட்டி இது. CentOS 7 மெய்நிகர் சேவையகம் பயன்படுத்தப்படுகிறது.
சேவையகம் ஏற்கனவே வாங்கப்பட்டது, கட்டமைக்கப்பட்டது, ஒரு விசையைப் பயன்படுத்தி உள்நுழைந்துள்ளது, fail2ban நிறுவப்பட்டது போன்றவற்றை நான் கருதுகிறேன்.
முதலில் நீங்கள் டோக்கரை நிறுவ வேண்டும்.
- முதலில் நீங்கள் சார்புகளை நிறுவ வேண்டும்
$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2
- களஞ்சியத்தை இணைக்கவும்
$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
- பின்னர் டோக்கர் சமூக பதிப்பை நிறுவவும்
$ sudo yum install docker-ce docker-ce-cli containerd.io
- தொடக்கத்தில் டோக்கரைச் சேர்த்து இயக்கவும்
$ sudo systemctl enable docker $ sudo systemctl start docker
- சூடோ இல்லாமல் டோக்கரை இயக்க, டோக்கர் குழுவில் ஒரு பயனரைச் சேர்க்கவும்
$ usermod -aG docker user
அடுத்த படியாக docker-compose ஐ நிறுவ வேண்டும். பயன்பாடு பல வழிகளில் நிறுவப்படலாம், ஆனால் தேவையற்ற தொகுப்புகளுடன் கணினியை ஒழுங்கீனம் செய்யாமல் இருக்க, நான் pip மேலாளர் மற்றும் virtualenv மூலம் நிறுவ விரும்புகிறேன்.
- பிப்பை நிறுவவும்
$ sudo yum install python-pip
- virtualenv ஐ நிறுவவும்
$ pip install virtualenv
- அடுத்து நீங்கள் திட்டத்துடன் ஒரு கோப்புறையை உருவாக்கி அதை துவக்க வேண்டும். நீங்கள் தொகுப்புகளை நிர்வகிக்க வேண்டிய அனைத்தையும் கொண்ட கோப்புறை ve என அழைக்கப்படும்.
$ mkdir docker $ cd docker $ virtualenv ve
- மெய்நிகர் சூழலைப் பயன்படுத்தத் தொடங்க, நீங்கள் திட்ட கோப்புறையில் பின்வரும் கட்டளையை இயக்க வேண்டும்.
$ source ve/bin/activate
- நீங்கள் 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 ப்ராக்ஸி கொள்கலனை பார்க்க லெசன்கிரிப்ட் கொள்கலன் அவசியம். /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]
இங்கே, சூழல் மாறிகள் தேவைப்படுவதால், ப்ராக்ஸி சேவையகத்திற்கான கோரிக்கையைச் சரியாகச் செயல்படுத்துகிறது மற்றும் சரியான டொமைன் பெயருக்கான சான்றிதழைக் கோருகிறது.
டாக்கர் இசையமைப்பது மட்டுமே எஞ்சியுள்ளது
$ cd proxy $ docker-compose up -d $ cd ../test $ docker-compose up -d
ஆதாரம்: www.habr.com