



bash <(curl -s http://repository.sandbox.infoboxcloud.ru/scripts/docker/centos7/install.sh) yum install -y git git clone https://github.com/InfoboxHosting/DockerNginxSimpleStaticSite.git cd DockerNginxSimpleStaticSite/ docker-compose build docker-compose up -d 
docker ps You can see the site in the list of containers.

user www-data; worker_processes 1; pid /run/nginx.pid; events { worker_connections 4086; use epoll; multi_accept on; } http { sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; keepalive_requests 1000; types_hash_max_size 2048; include /etc/nginx/mime.types; default_type application/octet-stream; access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; gzip on; gzip_min_length 10240; gzip_proxied expired no-cache no-store private auth; gzip_types text/plain text/css text/xml text/javascript application/x-javascript application/xml; gzip_disable "msie6"; include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*; server { listen 80; server_name domain.tld www.domain.tld; location / { root /usr/share/nginx/html; } } } FROM nginx MAINTAINER Yuri Trukhin "trukhinyuri@infoboxcloud.com" COPY conf/nginx.conf /etc/nginx/nginx.conf COPY html/ /usr/share/nginx/html sitename: build: . ports: - 80:80 restart: always docker-compose build docker-compose up -d docker ps docker stop bc88ee61a933 docker rm bc88ee61a933 




cd ~ git clone https://github.com/InfoboxHosting/DockerNginxSimpleBalancer.git 
cd ~/DockerNginxSimpleBalancer/balancer docker-compose build docker-compose up -d 

user www-data; worker_processes 1; pid /run/nginx.pid; events { worker_connections 4086; use epoll; multi_accept on; } http { sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; keepalive_requests 1000; types_hash_max_size 2048; include /etc/nginx/mime.types; default_type application/octet-stream; access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; gzip on; gzip_min_length 10240; gzip_proxied expired no-cache no-store private auth; gzip_types text/plain text/css text/xml text/javascript application/x-javascript application/xml; gzip_disable "msie6"; include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*; server { listen 80; server_name domain1.com www.domain1.com; location / { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://frontend1:80; } } server { listen 80; server_name domain2.com www.domain2.com; location / { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://frontend2:80; } } } cd ~/DockerNginxSimpleBalancer/balancer docker-compose build docker-compose up -d yum install -y git 




git clone https://github.com/InfoboxHosting/DockerNginxGeoRedundantBalancer.git bash ~/DockerNginxGeoRedundantBalancer/rename.sh domain.com domain1.com domain2.com user www-data; worker_processes 1; pid /run/nginx.pid; events { worker_connections 4086; use epoll; multi_accept on; } http { sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; keepalive_requests 1000; types_hash_max_size 2048; include /etc/nginx/mime.types; default_type application/octet-stream; access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; gzip on; gzip_min_length 10240; gzip_proxied expired no-cache no-store private auth; gzip_types text/plain text/css text/xml text/javascript application/x-javascript application/xml; gzip_disable "msie6"; include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*; upstream frontend1 { #!!!replace domain.com #!!!remove backup word in your location server spb.domain.com:8000 backup; server msk.domain.com:8000 backup; server ams.domain.com:8000 backup; } upstream frontend2 { #!!!replace domain.com #!!!remove backup word in your location server spb.domain.com:8001 backup; server msk.domain.com:8001 backup; server ams.domain.com:8001 backup; } server { listen 80; #!!!replace domain1.com server_name domain1.com www.domain1.com; location / { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://frontend1; } } server { listen 80; #!!!replace domain2.com server_name domain2.com www.domain2.com; location / { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://frontend2; } } } user www-data; worker_processes 1; pid /run/nginx.pid; events { worker_connections 4086; use epoll; multi_accept on; } http { sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; keepalive_requests 1000; types_hash_max_size 2048; include /etc/nginx/mime.types; default_type application/octet-stream; access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; gzip on; gzip_min_length 10240; gzip_proxied expired no-cache no-store private auth; gzip_types text/plain text/css text/xml text/javascript application/x-javascript application/xml; gzip_disable "msie6"; include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*; upstream frontend1 { #!!!replace domain.com server spb.plugndo.com:8000 backup; server msk.plugndo.com:8000 backup; server ams.plugndo.com:8000; } upstream frontend2 { #!!!replace domain.com server spb.plugndo.com:8001 backup; server msk.plugndo.com:8001 backup; server ams.plugndo.com:8001; } server { listen 80; #!!!replace domain1.com server_name site1.plugndo.com www.site1.plugndo.com; location / { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://frontend1; } } server { listen 80; #!!!replace domain1.com server_name site2.plugndo.com www.site2.plugndo.com; location / { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://frontend2; } } } user www-data; worker_processes 1; pid /run/nginx.pid; events { worker_connections 4086; use epoll; multi_accept on; } http { sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; keepalive_requests 1000; types_hash_max_size 2048; include /etc/nginx/mime.types; default_type application/octet-stream; access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; gzip on; gzip_min_length 10240; gzip_proxied expired no-cache no-store private auth; gzip_types text/plain text/css text/xml text/javascript application/x-javascript application/xml; gzip_disable "msie6"; include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*; upstream frontend1 { #!!!replace domain.com server spb.plugndo.com:8000; server msk.plugndo.com:8000 backup; server ams.plugndo.com:8000 backup; } upstream frontend2 { #!!!replace domain.com server spb.plugndo.com:8001; server msk.plugndo.com:8001 backup; server ams.plugndo.com:8001 backup; } server { listen 80; #!!!replace domain1.com server_name site1.plugndo.com www.site1.plugndo.com; location / { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://frontend1; } } server { listen 80; #!!!replace domain1.com server_name site2.plugndo.com www.site2.plugndo.com; location / { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://frontend2; } } } user www-data; worker_processes 1; pid /run/nginx.pid; events { worker_connections 4086; use epoll; multi_accept on; } http { sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; keepalive_requests 1000; types_hash_max_size 2048; include /etc/nginx/mime.types; default_type application/octet-stream; access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; gzip on; gzip_min_length 10240; gzip_proxied expired no-cache no-store private auth; gzip_types text/plain text/css text/xml text/javascript application/x-javascript application/xml; gzip_disable "msie6"; include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*; upstream frontend1 { #!!!replace domain.com server spb.plugndo.com:8000 backup; server msk.plugndo.com:8000; server ams.plugndo.com:8000 backup; } upstream frontend2 { #!!!replace domain.com server spb.plugndo.com:8001 backup; server msk.plugndo.com:8001; server ams.plugndo.com:8001 backup; } server { listen 80; #!!!replace domain1.com server_name site1.plugndo.com www.site1.plugndo.com; location / { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://frontend1; } } server { listen 80; #!!!replace domain1.com server_name site2.plugndo.com www.site2.plugndo.com; location / { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://frontend2; } } } cd DockerNginxGeoRedundantBalancer/balancerMSK/ cd DockerNginxGeoRedundantBalancer/balancerAMS/ cd DockerNginxGeoRedundantBalancer/balancerSPB/ docker-compose build docker-compose up -d 

Source: https://habr.com/ru/post/265231/
All Articles