Newidiais weinydd rhithwir yn ddiweddar, a bu'n rhaid i mi osod popeth eto. Mae'n well gennyf i'r wefan fod yn hygyrch dros https ac i dystysgrifau letsencrypt gael eu cael a'u hadnewyddu'n awtomatig. Gellir cyflawni hyn trwy ddefnyddio dwy ddelwedd docwr nginx-proxy a nginx-proxy-companion.
Mae hwn yn ganllaw ar sut i sefydlu gwefan ar docwr, gyda dirprwy sy'n derbyn tystysgrifau SSL yn awtomatig. Defnyddir gweinydd rhithwir CentOS 7.
Rwy'n cymryd bod y gweinydd eisoes wedi'i brynu, ei ffurfweddu, mae mynediad iddo yn cael ei wneud trwy allwedd, mae fail2ban wedi'i osod, ac ati.
Yn gyntaf mae angen i chi osod docwr.
- Yn gyntaf mae angen i chi osod y dibyniaethau
$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2
- Cysylltu ystorfa
$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
- Yna gosodwch rifyn cymunedol docker
$ sudo yum install docker-ce docker-ce-cli containerd.io
- Ychwanegu docwr i gychwyn a rhedeg
$ sudo systemctl enable docker $ sudo systemctl start docker
- Ychwanegwch ddefnyddiwr i'r grΕ΅p docwyr er mwyn gallu rhedeg docwr heb sudo
$ usermod -aG docker user
Y cam nesaf yw gosod docker-compose. Gellir gosod y cyfleustodau mewn sawl ffordd, ond mae'n well gen i osod trwy'r rheolwr pip a virtualenv, er mwyn peidio Γ’ rhwystro'r system Γ’ phecynnau diangen.
- Gosod pip
$ sudo yum install python-pip
- Gosod virtualenv
$ pip install virtualenv
- Nesaf, mae angen i chi greu ffolder gyda'r prosiect a'i gychwyn. Gelwir y ffolder gyda phopeth sydd ei angen ar gyfer rheoli pecynnau yn ve.
$ mkdir docker $ cd docker $ virtualenv ve
- I ddechrau defnyddio'r amgylchedd rhithwir, mae angen i chi redeg y gorchymyn canlynol yn y ffolder prosiect.
$ source ve/bin/activate
- Gallwch chi osod docker-compose.
pip install docker-compose
Er mwyn i'r cynwysyddion weld ei gilydd, gadewch i ni greu rhwydwaith. Defnyddir gyrrwr y bont yn ddiofyn.
$ docker network create network
Nesaf, mae angen i chi ffurfweddu docker-compose, bydd y dirprwy yn y ffolder dirprwy, y safle prawf yn y ffolder prawf. Er enghraifft, rwy'n defnyddio'r enw parth example.com
$ mkdir proxy $ mkdir test $ touch proxy/docker-compose.yml $ touch test/docker-compose.yml
Cynnwys 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:
newidyn amgylchedd NGINX_PROXY_CONTAINER sydd ei angen er mwyn i'r cynhwysydd letsencrypt weld y cynhwysydd dirprwy. Rhaid i'r ddau gynhwysydd rannu'r ffolderi /etc/nginx/certs /etc/nginx/vhost.d a /usr/share/nginx/html. Er mwyn i'r cynhwysydd letsencrypt weithio'n gywir, rhaid i'r rhaglen fod ar gael ar borthladdoedd 80 a 443.
Cynnwys 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]
Yma, mae angen newidynnau amgylchedd fel bod y dirprwy yn prosesu'r cais i'r gweinydd yn gywir ac yn gofyn am dystysgrif ar gyfer yr enw parth cywir.
Erys dim ond i redeg docker-compose
$ cd proxy $ docker-compose up -d $ cd ../test $ docker-compose up -d
Ffynhonnell: hab.com