рдореА рдиреБрдХрддрд╛рдЪ рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рд╕рд░реНрд╡реНрд╣рд░ рдмрджрд▓рд▓рд╛ рдЖрдгрд┐ рд╕рд░реНрд╡рдХрд╛рд╣реА рдкреБрдиреНрд╣рд╛ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░рд╛рд╡реЗ рд▓рд╛рдЧрд▓реЗ. рдореА рд╣реЗ рдкрд╕рдВрдд рдХрд░рддреЛ рдХреА рд╕рд╛рдЗрдЯ 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
- sudo рд╢рд┐рд╡рд╛рдп рдбреЙрдХрд░ рдЪрд╛рд▓рд╡рдгреНрдпрд╛рд╕ рд╕рдХреНрд╖рдо рд╣реЛрдгреНрдпрд╛рд╕рд╛рдареА рдбреЙрдХрд░ рдЧреНрд░реБрдкрдордзреНрдпреЗ рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рдЬреЛрдбрд╛
$ 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