நான் சமீபத்தில் மெய்நிகர் சேவையகத்தை மாற்றினேன், மேலும் எல்லாவற்றையும் மீண்டும் கட்டமைக்க வேண்டியிருந்தது. தளத்தை 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 - LETSENCRYPT_EMAIL=admin@example.comஇங்கே, சூழல் மாறிகள் தேவைப்படுவதால், ப்ராக்ஸி சேவையகத்திற்கான கோரிக்கையைச் சரியாகச் செயல்படுத்துகிறது மற்றும் சரியான டொமைன் பெயருக்கான சான்றிதழைக் கோருகிறது.
டாக்கர் இசையமைப்பது மட்டுமே எஞ்சியுள்ளது
$ cd proxy $ docker-compose up -d $ cd ../test $ docker-compose up -d
ஆதாரம்: www.habr.com
