ನಾನು ಇತ್ತೀಚೆಗೆ ವರ್ಚುವಲ್ ಸರ್ವರ್ ಅನ್ನು ಬದಲಾಯಿಸಿದ್ದೇನೆ ಮತ್ತು ಎಲ್ಲವನ್ನೂ ಮತ್ತೆ ಕಾನ್ಫಿಗರ್ ಮಾಡಬೇಕಾಗಿತ್ತು. ಸೈಟ್ ಅನ್ನು https ಮೂಲಕ ಪ್ರವೇಶಿಸಲು ಮತ್ತು ಎನ್ಕ್ರಿಪ್ಟ್ ಪ್ರಮಾಣಪತ್ರಗಳನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಪಡೆದುಕೊಳ್ಳಲು ಮತ್ತು ನವೀಕರಿಸಲು ನಾನು ಬಯಸುತ್ತೇನೆ. 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 ಲೆಟ್ಸೆನ್ಕ್ರಿಪ್ಟ್ ಕಂಟೈನರ್ ಪ್ರಾಕ್ಸಿ ಕಂಟೇನರ್ ಅನ್ನು ನೋಡಲು ಇದು ಅವಶ್ಯಕವಾಗಿದೆ. /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