ืืื ืืขืฆืื ืก ืคืืจืขื ืืขืจื ืื ืืืืจืืืึทื ืกืขืจืืืขืจ, ืืื ืืื ืฆื ืงืึทื ืคืืืืขืจ ืึทืืฅ ืืืืืขืจ. ืืื ืืขืกืขืจ ืืืขืื ืึทื ืื ืคึผืืึทืฅ ืืื ืฆืืืจืืืืขื ืืืจื https ืืื ืืขืฆืขื ืงืจืืคึผื ืกืขืจืืืคืืงืึทืฅ ืืืขืจื ืืืงืืืขื ืืื ืืื ืืื ืืืืืึธืืึทืืืฉ. ืืขื ืงืขื ืขื ืืืื ืึทืืฉืืืื ืืืจื ื ืืฆื ืฆืืืื ืืึธืงืงืขืจ ืืืืืขืจ nginx-proxy ืืื nginx-proxy-companion.
ืืึธืก ืืื ืึท ืืืขืืืืืึทืืขืจ ืืื ืฆื ืฉืืขืื ืึท ืืืขืืืืืื ืืืืฃ ืืึธืงืขืจ, ืืื ืึท ืคึผืจืึทืงืกื ืืืึธืก ืืืืืึธืืึทืืืฉ ื ืขืื ืกืกื ืกืขืจืืืคืืงืึทืฅ. ืื 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
ืืขืจ ืืืืึทืืขืจ ืฉืจืื ืืื ืฆื ืื ืกืืึทืืืจื docker-compose. ืื ื ืืฆื ืงืขื ืขื ืืืื ืืื ืกืืึทืืืจื ืืื ืขืืืขืืข ืืืขืื, ืึธืืขืจ ืืื ืืขืกืขืจ ืฆื ืื ืกืืึทืืืจื ืืืจื ืื ืคึผืืคึผ ืคืึทืจืืืึทืืืขืจ ืืื ืืืืจืืืึทืืขื ืื, ืึทืืื ื ืืฉื ืฆื ืงืืึทืืขืจ ืื ืกืืกืืขื ืืื ืืื ืืืืืง ืคึผืึทืงืึทืืืฉืึทื.
- ืื ืกืืึทืืืจื ืคึผืืคึผ
$ sudo yum install python-pip
- ืื ืกืืึทืืืจื virtualenv
$ pip install virtualenv
- ืืืืึทืืขืจ ืืืจ ืืึทืจืคึฟื ืฆื ืฉืึทืคึฟื ืึท ืืขืงืข ืืื ืื ืคึผืจืืืขืงื ืืื ืื ืืฉืึทืืืื ืขืก. ืืขืจ ืืขืงืข ืืื ืึทืืฅ ืืืจ ืืึทืจืคึฟื ืฆื ืคืืจื ืคึผืึทืงืึทืืืฉืึทื ืืืขื ืืืื ืืขืจืืคื ve.
$ mkdir docker $ cd docker $ virtualenv ve
- ืฆื ืึธื ืืืืื ื ืืฆื ืื ืืืืจืืืึทื ืกืืืืืืข, ืืืจ ืืึทืจืคึฟื ืฆื ืืืืคื ืื ืคืืืืขื ืืข ืืึทืคึฟืขื ืืื ืื ืคึผืจืืืขืงื ืืขืงืข.
$ source ve/bin/activate
- ืืืจ ืงืขื ืขื ืื ืกืืึทืืืจื docker-compose.
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 ืขืก ืืื ื ืืืืืง ืคึฟืึทืจ ืื letencrypt ืงืึทื ืืืื ืขืจ ืฆื ืืขื ืื ืคึผืจืึทืงืกื ืงืึทื ืืืื ืขืจ. ืื /etc/nginx/certs /etc/nginx/vhost.d ืืื /usr/share/nginx/html ืคืึธืืืขืจืก ืืืื ืืืื ืฉืขืจื ืืืจื ืืืืืข ืงืึทื ืืืื ืขืจื. ืคึฟืึทืจ ืื ืืขืฆืขื ืงืจืืคึผื ืงืึทื ืืืื ืขืจ ืฆื ืึทืจืืขืื ืจืืืืืง, ืื ืึทืคึผืืึทืงืืืฉืึทื ืืืื ืืืื ืฆืืืจืืืืขื ืืืืฃ ืืืืืข ืคึผืึธืจื 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