D'athraigh mé an freastalaí fíorúil le déanaí, agus bhí orm gach rud a chumrú arís. Is fearr liom go mbeadh an suíomh inrochtana trí https agus go bhfaighfí agus go n-athnuachann deimhnithe letsencrypt go huathoibríoch. Is féidir é seo a bhaint amach trí dhá íomhá docker nginx-proxy agus nginx-proxy-companion a úsáid.
Is treoir é seo maidir le conas suíomh Gréasáin a bhunú ar Docker, le seachfhreastalaí a fhaigheann deimhnithe SSL go huathoibríoch. Úsáidtear freastalaí fíorúil CentOS 7.
Glacaim leis go bhfuil an freastalaí ceannaithe cheana féin, cumraithe, logáilte isteach ag baint úsáide as eochair, suiteáilte fail2ban, etc.
Ar dtús ní mór duit docker a shuiteáil.
- An Chéad is gá duit a shuiteáil spleáchais
$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2
- Ceangail stór
$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
- Ansin suiteáil eagrán pobail docker
$ sudo yum install docker-ce docker-ce-cli containerd.io
- Cuir docker leis an am tosaithe agus a rith
$ sudo systemctl enable docker $ sudo systemctl start docker
- Cuir úsáideoir leis an ngrúpa docker chun a bheith in ann docker a rith gan sudo
$ usermod -aG docker user
Is é an chéad chéim eile ná docker-compose a shuiteáil. Is féidir an fóntais a shuiteáil ar bhealaí éagsúla, ach is fearr liom a shuiteáil tríd an mbainisteoir pip agus virtualenv, ionas nach gcuirfí clutter ar an gcóras le pacáistí gan ghá.
- Suiteáil pip
$ sudo yum install python-pip
- Suiteáil virtualenv
$ pip install virtualenv
- Ansin ní mór duit fillteán a chruthú leis an tionscadal agus é a thúsú. Tabharfar ve ar an bhfillteán ina bhfuil gach rud atá uait chun pacáistí a bhainistiú.
$ mkdir docker $ cd docker $ virtualenv ve
- Chun an timpeallacht fhíorúil a úsáid, ní mór duit an t-ordú seo a leanas a reáchtáil san fhillteán tionscadail.
$ source ve/bin/activate
- Is féidir leat docker-compose a shuiteáil.
pip install docker-compose
Ionas go bhfeicfidh na coimeádáin a chéile, cruthóimid líonra. De réir réamhshocraithe, úsáidtear an tiománaí droichead.
$ docker network create network
Ansin ní mór duit docker-compose a chumrú, beidh an seachfhreastalaí san fhillteán seachfhreastalaí, beidh an suíomh tástála san fhillteán tástála. Mar shampla, tá an t-ainm fearainn sampla.com á úsáid agam
$ mkdir proxy $ mkdir test $ touch proxy/docker-compose.yml $ touch test/docker-compose.yml
Ábhar seachfhreastalaí/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:
Athróg timpeallachta NGINX_PROXY_CONTAINER ní mór don choimeádán letsencrypt an coimeádán seachfhreastalaí a fheiceáil. Caithfidh an dá choimeádán na fillteáin /etc/nginx/certs /etc/nginx/vhost.d agus /usr/share/nginx/html a roinnt. Chun go n-oibreoidh an coimeádán letsencrypt i gceart, ní mór an feidhmchlár a bheith inrochtana ar chalafoirt 80 agus 443 araon.
Ábhar 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]
Anseo, tá gá le hathróga timpeallachta ionas go ndéanann an seachfhreastalaí próiseáil cheart ar an iarratas chuig an bhfreastalaí agus go n-iarrann sé teastas don ainm fearainn ceart.
Níl fágtha ach cumadóireacht docker a rith
$ cd proxy $ docker-compose up -d $ cd ../test $ docker-compose up -d
Foinse: will.com