Hivi majuzi nilibadilisha seva yangu ya kawaida na ilibidi nisanidi kila kitu tena. Ninapendelea tovuti ipatikane kupitia https na vyeti vya letsencrypt vitolewe na kusasishwa kiotomatiki. Hii inaweza kupatikana kwa kutumia picha mbili za Docker: nginx-proksi na nginx-proxy-companion.
Huu ni mwongozo wa jinsi ya kuanzisha tovuti kwenye Docker, ukiwa na proksi inayopokea kiotomatiki Vyeti vya SSLSeva pepe hutumika. CentOS 7.
Nadhani seva tayari imenunuliwa, imesanidiwa, ufikiaji ni kupitia ufunguo, kushindwa2ban imewekwa, nk.
Kwanza unahitaji kufunga docker.
- Kwanza unahitaji kufunga utegemezi
$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2 - Unganisha hazina
$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo - Kisha usakinishe Toleo la Jumuiya ya Docker
$ sudo yum install docker-ce docker-ce-cli containerd.io - Ongeza docker ili kuanza na kukimbia
$ sudo systemctl enable docker $ sudo systemctl start docker - Ongeza mtumiaji kwenye kikundi cha docker ili kuweza kuendesha docker bila sudo
$ usermod -aG docker user
Hatua inayofuata ni kusakinisha docker-compose. Kuna njia kadhaa za kusanikisha huduma hii, lakini napendelea kuisanikisha kupitia bomba na virtualenv ili kuzuia kusambaza mfumo na vifurushi visivyo vya lazima.
- Weka bomba
$ sudo yum install python-pip - Sakinisha virtualenv
$ pip install virtualenv - Ifuatayo, unahitaji kuunda folda ya mradi na kuianzisha. Folda iliyo na kila kitu kinachohitajika kwa usimamizi wa kifurushi itaitwa ve.
$ mkdir docker $ cd docker $ virtualenv ve - Ili kuanza kutumia mazingira ya kawaida, unahitaji kuendesha amri ifuatayo kwenye folda ya mradi.
$ source ve/bin/activate - Unaweza kusakinisha docker-compose.
pip install docker-composeIli kuwezesha vyombo kuonana, tutaunda mtandao. Dereva wa daraja hutumiwa kwa chaguo-msingi.
$ docker network create networkIfuatayo, unahitaji kusanidi Docker-compose. Proksi itakuwa kwenye folda ya proksi, na tovuti ya jaribio itakuwa kwenye folda ya majaribio. Kwa mfano huu, ninatumia jina la kikoa example.com.
$ mkdir proxy $ mkdir test $ touch proxy/docker-compose.yml $ touch test/docker-compose.ymlYaliyomo proksi/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:Tofauti ya mazingira NGINX_PROXY_CONTAINER Hii ni muhimu kwa kontena ya letsencrypt kuona chombo cha proksi. Folda /etc/nginx/certs /etc/nginx/vhost.d na /usr/share/nginx/html lazima zishirikiwe kati ya vyombo vyote viwili. Ili kontena la letsencrypt lifanye kazi ipasavyo, ni lazima programu ifikiwe kwenye milango 80 na 443.
Yaliyomo 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.comHapa, vigezo vya mazingira vinahitajika ili proksi ichakate kwa usahihi ombi kwa seva na kuomba cheti cha jina sahihi la kikoa.
Kilichobaki kufanya ni kukimbia docker-compose
$ cd proxy $ docker-compose up -d $ cd ../test $ docker-compose up -d
Chanzo: mapenzi.com
