āĻāĻŽāĻŋ āĻ¸āĻŽā§āĻĒā§āĻ°āĻ¤āĻŋ āĻāĻāĻāĻŋ āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°ā§āĻāĻŋ āĻāĻŦāĻ āĻāĻŽāĻžāĻā§ āĻāĻŦāĻžāĻ° āĻ¸āĻŦāĻāĻŋāĻā§ āĻ¸ā§āĻ āĻāĻĒ āĻāĻ°āĻ¤ā§ āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛āĨ¤ āĻāĻŽāĻŋ āĻ¸āĻžāĻāĻāĻāĻŋāĻā§ 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
- virtualenv āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°ā§āĻ¨
$ 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