Kuring nembe robah server virtual, sarta kapaksa ngonpigurasikeun sagalana deui. Kuring resep yén situs éta tiasa diaksés via https sareng sertipikat letsencrypt dicandak sareng di-renew sacara otomatis. Ieu tiasa dihontal ku ngagunakeun dua gambar docker nginx-proxy sareng nginx-proxy-companion.
Ieu mangrupikeun pituduh ngeunaan cara nyetél halaman wéb dina Docker, kalayan proksi anu otomatis nampi sertipikat SSL. Pangladén virtual CentOS 7 dianggo.
Kuring nganggap yén server geus dibeuli, ngonpigurasi, asup maké konci, fail2ban dipasang, jsb.
Mimiti anjeun kedah pasang docker.
- Mimiti anjeun kedah pasang dependensi
$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2
- Sambungkeun gudang
$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
- Teras pasang édisi komunitas docker
$ sudo yum install docker-ce docker-ce-cli containerd.io
- Tambahkeun docker pikeun ngamimitian sareng ngajalankeun
$ sudo systemctl enable docker $ sudo systemctl start docker
- Tambahkeun pangguna kana grup docker pikeun tiasa ngajalankeun docker tanpa sudo
$ usermod -aG docker user
Lengkah saterusna nyaéta masang docker-compose. Utiliti tiasa dipasang ku sababaraha cara, tapi kuring langkung resep masang pip manager sareng virtualenv, supados henteu ngaganggu sistem sareng bungkusan anu teu perlu.
- Pasang pip
$ sudo yum install python-pip
- Pasang virtualenv
$ pip install virtualenv
- Satuluyna anjeun kudu nyieun folder jeung proyék jeung initialize eta. Polder sareng sadaya anu anjeun peryogikeun pikeun ngatur bungkusan bakal disebat ve.
$ mkdir docker $ cd docker $ virtualenv ve
- Pikeun ngamimitian nganggo lingkungan virtual, anjeun kedah ngajalankeun paréntah di handap ieu dina folder proyék.
$ source ve/bin/activate
- Anjeun tiasa masang docker-compose.
pip install docker-compose
Dina raraga wadahna ningali silih, urang bakal nyieun jaringan. Sacara standar, supir sasak dianggo.
$ docker network create network
Salajengna anjeun kedah ngonpigurasikeun docker-compose, proxy bakal aya dina folder proxy, situs uji bakal aya dina folder uji. Contona, Kuring maké ngaran domain example.com
$ mkdir proxy $ mkdir test $ touch proxy/docker-compose.yml $ touch test/docker-compose.yml
Eusi 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:
Variabel lingkungan NGINX_PROXY_CONTAINER perlu pikeun wadah letsencrypt ningali wadahna proxy. The /etc/nginx/certs /etc/nginx/vhost.d jeung /usr/share/nginx/html polder kudu dibagikeun ku duanana peti. Pikeun wadah letsencrypt tiasa dianggo leres, aplikasina kedah tiasa diaksés dina port 80 sareng 443.
Eusi 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]
Di dieu, variabel lingkungan diperyogikeun supados proxy leres ngolah pamundut ka server sareng nyuhunkeun sertipikat pikeun nami domain anu leres.
Sadaya anu tetep nyaéta ngajalankeun docker-compose
$ cd proxy $ docker-compose up -d $ cd ../test $ docker-compose up -d
sumber: www.habr.com