áá»áœááºá¯ááºááẠáááŒá¬áá±ážáá®á virtual server ááá¯ááŒá±á¬ááºážáá²á·ááŒá®áž á¡áá¬á¡á¬ážáá¯á¶ážááᯠáááºáá¶ááŒááºáááºáá²á·ááá«áááºá ááá¯ááºááᯠhttps ááŸáá áºááá·áº áááºáá±á¬ááºááŒáá·áºááŸá¯ááá¯ááºááŒá®áž áááºááŸááºáá»á¬ážááᯠááá°ááŒá®áž á¡ááá¯á¡áá»á±á¬áẠáááºáááºážááá¯ážááŒááºážááᯠááŸá áºáááºáá«áááºá docker áá¯á¶áá»á¬áž nginx-proxy ááŸáá·áº nginx-proxy-companion ááŸá áºáá¯ááᯠá¡áá¯á¶ážááŒá¯ááŒááºážááŒáá·áº áááºážááᯠá¡á±á¬ááºááŒááºááá¯ááºáááºá
áááºážááẠSSL áááºááŸááºáá»á¬ážááᯠá¡ááá¯á¡áá»á±á¬ááºáááºáá¶áááŸáááá·áº ááá±á¬ááºá á®áá áºáá¯ááŒáá·áº Docker ááœáẠáááºááá¯ááºáá áºáá¯áááºáá±á¬ááºáá¯á¶á¡ááœáẠáááºážááœáŸááºáá»ááºááŒá áºáááºá CentOS 7 virtual server ááᯠá¡áá¯á¶ážááŒá¯áá¬ážáááºá
áá¬áá¬ááᯠáááºáá°áá¬ážááŒá®ážá ááŒááºáááºáááºááŸááºáá¬ážááŒá®ážá áá±á¬á·áá áºáá¯á¡áá¯á¶ážááŒá¯á áá±á¬á·ááºá¡ááºá fail2ban ááá·áºááœááºážáá¬ážááŒá®ážá á áááºááá¯á·ááᯠááŒá¯áá¯ááºáá¬ážááŒá®ážááŒá áºáááºáᯠáá»áœááºá¯ááºáá°ááá«áááºá
á¡áááºáá¯á¶áž docker ááᯠinstall áá¯ááºááá«áááºá
- ááááŠážá
áœá¬áááºááŸá®ááá¯á¡á¬ážááá·áºááœááºážáááºááá¯á¡ááºáááºá
$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2
- repository ááá¯áá»áááºáááºáá«á
$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
- ááá¯á·áá±á¬áẠdocker community edition ááᯠááá·áºááœááºážáá«á
$ sudo yum install docker-ce docker-ce-cli containerd.io
- á
áááºáá¯ááºáá±á¬ááºááẠdocker ááá¯ááá·áºáá«á
$ sudo systemctl enable docker $ sudo systemctl start docker
- sudo ááá«áá² docker ááᯠrun ááá¯ááºá
á±áááºá¡áá¯á¶ážááŒá¯áá°á¡á¬áž docker á¡ááœá²á·ááá¯á·ááá·áºáá«á
$ usermod -aG docker user
áá±á¬ááºáá áºááá·áºááŸá¬ docker-compose ááᯠááá·áºááœááºážáááºááŒá áºáááºá utility ááᯠáááºážáááºážáá»á¬ážá áœá¬ááŒáá·áº install áá¯ááºááá¯ááºáá±á¬áºáááºáž pip manager ááŸáá·áº virtualenv ááŸáááá·áº áááá¯á¡ááºáá±á¬ packages áá»á¬ážááŒáá·áº system ááᯠááŸá¯ááºááœááá±á á±ááẠááŸá áºáááºáá«áááºá
- pip ááᯠinstall áá¯ááºáá«á
$ sudo yum install python-pip
- virtualenv ááᯠinstall áá¯ááºáá«á
$ pip install virtualenv
- ááá¯á·áá±á¬áẠáááºááẠááá±á¬áá»ááºááŸáá·áºá¡áá° ááá¯ááºááœá²áá
áºáá¯ááᯠáááºáá®ážááŒá®áž áááºážááᯠá
áááºááẠááá¯á¡ááºáááºá áááºáá±á·áá»áºáá»á¬ážááᯠá
á®áá¶ááá·áºááœá²ááẠááá¯á¡ááºááá»áŸ ááá¯ááºááœá²ááᯠve áá¯áá±á«áºáá«áááºá
$ mkdir docker $ cd docker $ virtualenv ve
- á¡áá¯á¡áá±á¬ááºáááºáááºážáá»ááºááᯠá
áááºá¡áá¯á¶ážááŒá¯áááºá ááá±á¬áá»ááºááá¯ááºááœá²ááœáẠá¡á±á¬ááºáá« command ááᯠáááºáá¯ááºáá±á¬ááºááẠááá¯á¡ááºáááºá
$ source ve/bin/activate
- docker-compose ááᯠáááºááá·áºááœááºážááá¯ááºáááºá
pip install docker-compose
ááœááºááááºáá¬áá»á¬ážááᯠá¡áá»ááºážáá»ááºáž ááŒááºááá¯ááºá á±áááºá¡ááœáẠááœááºáááºáá áºáᯠáááºáá®ážáá«áááºá áá¯á¶ááŸááºá¡á¬ážááŒáá·áºá áá¶áá¬ážáááá¯ááºáá¬ááᯠá¡áá¯á¶ážááŒá¯áááºá
$ docker network create network
áá±á¬ááºáá áºáá¯ááẠdocker-compose ááᯠconfigure áá¯ááºáááºááá¯á¡ááºáááºá proxy ááẠproxy folder ááœááºááŸááááá·áºáááºá test site ááẠtest folder ááœááºááŸááááá·áºáááºá á¥ááá¬á¡á¬ážááŒáá·áºá áá»áœááºá¯ááºááẠááá¯ááááºážá¡ááẠ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 proxy container ááá¯ááŒáá·áºááẠletsencrypt container ááẠááá¯á¡ááºáá«áááºá /etc/nginx/certs /etc/nginx/vhost.d ááŸáá·áº /usr/share/nginx/html ááá¯ááºááœá²áá»á¬ážááᯠááœááºááááºáá¬ááŸá áºáá¯áá¯á¶ážá០áá»áŸáá±ááá«áááºá letsencrypt container ááẠááŸááºáááºá áœá¬ á¡áá¯ááºáá¯ááºáááºá¡ááœááºá á¡ááá®áá±ážááŸááºážááᯠport 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]
á€ááœááºá ááá±á¬ááºá á®ááẠáá¬áá¬áᶠáá±á¬ááºážááá¯áá»ááºááᯠááŸááºáááºá áœá¬ áá¯ááºáá±á¬ááºááŒá®áž ááŸááºáááºáá±á¬ ááá¯ááááºážá¡áááºá¡ááœáẠáááºááŸááºáá áºáᯠáá±á¬ááºážááá¯ááá¯ááºáááºá á€ááœááºá áááºáááºážáá»áẠááááºážááŸááºáá»á¬áž ááá¯á¡ááºáá«áááºá
áá»ááºáááºááŸá¬ docker-compose ááᯠrun áááºááŒá áºáááºá
$ cd proxy $ docker-compose up -d $ cd ../test $ docker-compose up -d
source: www.habr.com