เชฎเซเช เชคเชพเชเซเชคเชฐเชฎเชพเช เชตเชฐเซเชเซเชฏเซเช เชฒ เชธเชฐเซเชตเชฐ เชฌเชฆเชฒเซเชฏเซเช เชเซ, เช เชจเซ เชฌเชงเซเช เชซเชฐเซเชฅเซ เชเซเช เชตเชตเซเช เชชเชกเซเชฏเซเช. เชนเซเช เชชเชธเชเชฆ เชเชฐเซเช เชเซเช เชเซ เชธเชพเชเช https เชฆเซเชตเชพเชฐเชพ เชเชเซเชธเซเชธเชฟเชฌเชฒ เชนเซเชฏ เช เชจเซ letsencrypt เชชเซเชฐเชฎเชพเชฃเชชเชคเซเชฐเซ เชฎเซเชณเชตเชตเชพเชฎเชพเช เชเชตเซ เช เชจเซ เชเชชเชฎเซเชณเซ เชจเชตเซเชเชฐเชฃ เชฅเชพเชฏ. เช เชฌเซ เชกเซเชเชฐ เชเชฎเซเชเซ nginx-proxy เช เชจเซ nginx-proxy-companion เชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชชเซเชฐเชพเชชเซเชค เชเชฐเซ เชถเชเชพเชฏ เชเซ.
เช เชเช เชชเซเชฐเซเชเซเชธเซ เชธเชพเชฅเซ เชกเซเชเชฐ เชชเชฐ เชตเซเชฌเชธเชพเชเช เชเซเชตเซ เชฐเซเชคเซ เชธเซเช เชเชฐเชตเซ เชคเซ เช เชเชเซเชจเซ เชฎเชพเชฐเซเชเชฆเชฐเซเชถเชฟเชเชพ เชเซ เชเซ เชเชชเชฎเซเชณเซ SSL เชชเซเชฐเชฎเชพเชฃเชชเชคเซเชฐเซ เชฎเซเชณเชตเซ เชเซ. CentOS 7 เชตเชฐเซเชเซเชฏเซเช เชฒ เชธเชฐเซเชตเชฐเชจเซ เชเชชเชฏเซเช เชฅเชพเชฏ เชเซ.
เชนเซเช เชงเชพเชฐเซเช เชเซเช เชเซ เชธเชฐเซเชตเชฐ เชชเชนเซเชฒเซเชฅเซ เช เชเชฐเซเชฆเชพเชฏเซเชฒเซเช เชเซ, เชเซเช เชตเซเชฒเซเช เชเซ, เชเซเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชฒเซเช เชเชจ เชเชฐเซเชฒเซเช เชเซ, fail2ban เชเชจเซเชธเซเชเซเชฒ เชเชฐเซเชฒเซเช เชเซ, เชตเชเซเชฐเซ.
เชชเซเชฐเชฅเชฎ เชคเชฎเชพเชฐเซ เชกเซเชเชฐ เชเชจเซเชธเซเชเซเชฒ เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ.
- เชชเซเชฐเชฅเชฎ เชคเชฎเชพเชฐเซ เชจเชฟเชฐเซเชญเชฐเชคเชพ เชธเซเชฅเชพเชชเชฟเชค เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ
$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2
- เชฐเซเชชเซเชเซเชเชฐเซ เชเชจเซเชเซเช เชเชฐเซ
$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
- เชชเชเซ เชกเซเชเชฐ เชเซเชฎเซเชฏเซเชจเชฟเชเซ เชเชกเชฟเชถเชจ เชเชจเซเชธเซเชเซเชฒ เชเชฐเซ
$ sudo yum install docker-ce docker-ce-cli containerd.io
- เชธเซเชเชพเชฐเซเชเช
เชช เช
เชจเซ เชฐเชจเชฎเชพเช เชกเซเชเชฐ เชเชฎเซเชฐเซ
$ sudo systemctl enable docker $ sudo systemctl start docker
- เชธเซเชกเซ เชตเชฟเชจเชพ เชกเซเชเชฐ เชเชฒเชพเชตเชตเชพ เชฎเชพเชเซ เชธเชเซเชทเชฎ เชฅเชตเชพ เชฎเชพเชเซ เชกเซเชเชฐ เชเซเชฅเชฎเชพเช เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพ เชเชฎเซเชฐเซ
$ usermod -aG docker user
เชเชเชณเชจเซเช เชชเชเชฒเซเช เชกเซเชเชฐ-เชเชเชชเซเช เชเชจเซเชธเซเชเซเชฒ เชเชฐเชตเชพเชจเซเช เชเซ. เชฏเซเชเชฟเชฒเชฟเชเซ เชเชฃเซ เชฐเซเชคเซ เชเชจเซเชธเซเชเซเชฒ เชเชฐเซ เชถเชเชพเชฏ เชเซ, เชชเชฐเชเชคเซ เชนเซเช เชชเชพเชเชช เชฎเซเชจเซเชเชฐ เช เชจเซ เชตเชฐเซเชเซเชฏเซเช เชฒเซเชจเชต เชฆเซเชตเชพเชฐเชพ เชเชจเซเชธเซเชเซเชฒ เชเชฐเชตเชพเชจเซเช เชชเชธเชเชฆ เชเชฐเซเช เชเซเช, เชเซเชฅเซ เชฌเชฟเชจเชเชฐเซเชฐเซ เชชเซเชเซเชเซ เชธเชพเชฅเซ เชธเชฟเชธเซเชเชฎเชฎเชพเช เชเชกเชฌเชก เชจ เชฅเชพเชฏ.
- เชชเชพเชเชช เชเชจเซเชธเซเชเซเชฒ เชเชฐเซ
$ sudo yum install python-pip
- เชตเชฐเซเชเซเชฏเซเช
เชฒเซเชจเชต เชเชจเซเชธเซเชเซเชฒ เชเชฐเซ
$ pip install virtualenv
- เชเชเชณ เชคเชฎเชพเชฐเซ เชชเซเชฐเซเชเซเชเซเช เชธเชพเชฅเซ เชซเซเชฒเซเชกเชฐ เชฌเชจเชพเชตเชตเชพเชจเซ เช
เชจเซ เชคเซเชจเซ เชชเซเชฐเชพเชฐเชเชญ เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ. เชคเชฎเชจเซ เชชเซเชเซเชเซ เชฎเซเชจเซเช เชเชฐเชตเชพ เชฎเชพเชเซ เชเชฐเซเชฐเซ เชฆเชฐเซเช เชตเชธเซเชคเซ เชธเชพเชฅเซเชจเซเช เชซเซเชฒเซเชกเชฐ ve เชเชนเซเชตเชพเชถเซ.
$ mkdir docker $ cd docker $ virtualenv ve
- เชตเชฐเซเชเซเชฏเซเช
เชฒ เชชเชฐเซเชฏเชพเชตเชฐเชฃเชจเซ เชเชชเชฏเซเช เชถเชฐเซ เชเชฐเชตเชพ เชฎเชพเชเซ, เชคเชฎเชพเชฐเซ เชชเซเชฐเซเชเซเชเซเช เชซเซเชฒเซเชกเชฐเชฎเชพเช เชจเซเชเซเชจเซ เชเชฆเซเชถ เชเชฒเชพเชตเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ.
$ source ve/bin/activate
- เชคเชฎเซ เชกเซเชเชฐ-เชเชเชชเซเช เชเชจเซเชธเซเชเซเชฒ เชเชฐเซ เชถเชเซ เชเซ.
pip install docker-compose
เชเชจเซเชเซเชจเชฐ เชเชเชฌเซเชเชพเชจเซ เชเซเช เชถเชเซ เชคเซ เชฎเชพเชเซ, เช เชฎเซ เชจเซเชเชตเชฐเซเช เชฌเชจเชพเชตเซเชถเซเช. เชฎเซเชณเชญเซเชค เชฐเซเชคเซ, เชฌเซเชฐเชฟเช เชกเซเชฐเชพเชเชตเชฐเชจเซ เชเชชเชฏเซเช เชฅเชพเชฏ เชเซ.
$ docker network create network
เชเชเชณ เชคเชฎเชพเชฐเซ เชกเซเชเชฐ-เชเชเชชเซเช เชเซเช เชตเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ, เชชเซเชฐเซเชเซเชธเซ เชชเซเชฐเซเชเซเชธเซ เชซเซเชฒเซเชกเชฐเชฎเชพเช เชนเชถเซ, เชเซเชธเซเช เชธเชพเชเช เชเซเชธเซเช เชซเซเชฒเซเชกเชฐเชฎเชพเช เชนเชถเซ. เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, เชนเซเช เชกเซเชฎเซเชจ เชจเชพเชฎ example.com เชจเซ เชเชชเชฏเซเช เชเชฐเซเช เชเซเช
$ mkdir proxy $ mkdir test $ touch proxy/docker-compose.yml $ touch test/docker-compose.yml
เชธเชพเชฎเชเซเชฐเซ 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:
เชชเชฐเซเชฏเชพเชตเชฐเชฃ เชเชฒ NGINX_PROXY_CONTAINER เชคเซ letsencrypt เชเชจเซเชเซเชจเชฐ เชฎเชพเชเซ เชชเซเชฐเซเชเซเชธเซ เชเชจเซเชเซเชจเชฐ เชเซเชตเชพ เชฎเชพเชเซ เชเชฐเซเชฐเซ เชเซ. /etc/nginx/certs /etc/nginx/vhost.d เช เชจเซ /usr/share/nginx/html เชซเซเชฒเซเชกเชฐเซเชธ เชฌเชเชจเซ เชเชจเซเชเซเชจเชฐ เชฆเซเชตเชพเชฐเชพ เชถเซเชฐ เชเชฐเชตเชพ เชเชตเชถเซเชฏเช เชเซ. letsencrypt เชเชจเซเชเซเชจเชฐ เชฏเซเชเซเชฏ เชฐเซเชคเซ เชเชพเชฎ เชเชฐเซ เชคเซ เชฎเชพเชเซ, เชเชชเซเชฒเชฟเชเซเชถเชจ เชชเซเชฐเซเช 80 เช เชจเซ 443 เชฌเชเชจเซ เชชเชฐ เชธเซเชฒเชญ เชนเซเชตเซ เชเซเชเช.
เชธเชพเชฎเชเซเชฐเซ 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]
เช เชนเซเช, เชชเชฐเซเชฏเชพเชตเชฐเชฃ เชเชฒเซ เชเชฐเซเชฐเซ เชเซ เชเซเชฅเซ เชชเซเชฐเซเชเซเชธเซ เชธเชฐเซเชตเชฐ เชชเชฐ เชตเชฟเชจเชเชคเซเชจเซ เชฏเซเชเซเชฏ เชฐเซเชคเซ เชชเซเชฐเชเซเชฐเชฟเชฏเชพ เชเชฐเซ เช เชจเซ เชธเชพเชเชพ เชกเซเชฎเซเชจ เชจเชพเชฎ เชฎเชพเชเซ เชชเซเชฐเชฎเชพเชฃเชชเชคเซเชฐเชจเซ เชตเชฟเชจเชเชคเซ เชเชฐเซ.
เชเซ เชฌเชพเชเซ เชเซ เชคเซ เชกเซเชเชฐ-เชเชเชชเซเช เชเชฒเชพเชตเชตเชพเชจเซเช เชเซ
$ cd proxy $ docker-compose up -d $ cd ../test $ docker-compose up -d
เชธเซเชฐเซเชธ: www.habr.com