Hivi majuzi nilibadilisha seva ya kawaida, na ilibidi nisanidi kila kitu tena. Ninapendelea tovuti ipatikane kupitia https na vyeti vya letsencrypt kupatikana na kusasishwa kiotomatiki. Hii inaweza kupatikana kwa kutumia picha mbili za docker nginx-proksi na nginx-proxy-companion.
Huu ni mwongozo wa jinsi ya kusanidi tovuti kwenye Docker, na proksi inayopokea cheti cha SSL kiotomatiki. Seva pepe ya CentOS 7 inatumika.
Nadhani seva tayari imenunuliwa, imesanidiwa, imeingia kwa kutumia ufunguo, kushindwa2ban kusakinishwa, 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. Huduma inaweza kusanikishwa kwa njia kadhaa, lakini napendelea kusanikisha kupitia meneja wa bomba na virtualenv, ili usisumbue mfumo na vifurushi visivyo vya lazima.
- Weka bomba
$ sudo yum install python-pip
- Sakinisha virtualenv
$ pip install virtualenv
- Ifuatayo, unahitaji kuunda folda na mradi na uanzishe. Folda iliyo na kila kitu unachohitaji kudhibiti vifurushi 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-compose
Ili vyombo vione kila mmoja, tutaunda mtandao. Kwa default, dereva wa daraja hutumiwa.
$ docker network create network
Ifuatayo unahitaji kusanidi docker-compose, proksi itakuwa kwenye folda ya wakala, tovuti ya majaribio itakuwa kwenye folda ya majaribio. Kwa mfano, ninatumia jina la kikoa example.com
$ mkdir proxy $ mkdir test $ touch proxy/docker-compose.yml $ touch test/docker-compose.yml
Yaliyomo 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 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 na vyombo vyote viwili. Ili kontena la letsencrypt lifanye kazi ipasavyo, ni lazima programu ipatikane kwenye bandari 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 - [email protected]
Hapa, vigezo vya mazingira vinahitajika ili proksi ichakate kwa usahihi ombi kwa seva na kuomba cheti cha jina sahihi la kikoa.
Kilichobaki ni kuendesha docker-compose
$ cd proxy $ docker-compose up -d $ cd ../test $ docker-compose up -d
Chanzo: mapenzi.com