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 kumaha nyetél halaman wéb dina Docker, nganggo proxy anu sacara otomatis nampi sertipikat SSLServer virtual dianggo. CentOS 7.
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-composeDina raraga wadahna ningali silih, urang bakal nyieun jaringan. Sacara standar, supir sasak dianggo.
$ docker network create networkSalajengna 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.ymlEusi 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 - LETSENCRYPT_EMAIL=admin@example.comDi 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
