revert expanded docker solutions for main
This commit is contained in:
parent
5435d7bdc6
commit
eeaaffad6b
|
@ -1 +0,0 @@
|
||||||
**/*.md
|
|
|
@ -1,10 +1,8 @@
|
||||||
logs/*
|
logs/*
|
||||||
ssl/*
|
ssl/*
|
||||||
sites-enabled/*
|
sites-enabled/*
|
||||||
project/*
|
!sites-enabled/reverse.conf.tplm
|
||||||
!sites-enabled/reverse.conf.tmpl
|
|
||||||
!sites-enabled/http_redirect.conf
|
!sites-enabled/http_redirect.conf
|
||||||
!sites-enabled/default.conf
|
!sites-enabled/default.conf
|
||||||
!sites-enabled/reverse.conf.tmpl.expanded
|
!sites-enabled/reverse.conf.tplm.expanded
|
||||||
!sites-enabled/upstreams.conf.tmpl
|
!sites-enabled/upstreams.conf
|
||||||
!sites-enabled/static.conf.tmpl
|
|
|
@ -1,12 +0,0 @@
|
||||||
FROM nginx:stable-alpine
|
|
||||||
COPY --chmod=0440 ["./locations", "/etc/nginx/locations"]
|
|
||||||
COPY --chmod=0440 ["./configuration", "/etc/nginx/configuration"]
|
|
||||||
COPY --chmod=0440 ["./error-pages", "/etc/nginx/error-pages"]
|
|
||||||
COPY --chmod=0440 ["./resources", "/var/www/html/resources"]
|
|
||||||
COPY --chmod=0440 ["./resources", "/var/www/html/resources"]
|
|
||||||
COPY --chmod=0440 ["./nginx_configs/nginx.conf", "/etc/nginx/nginx.conf"]
|
|
||||||
|
|
||||||
ARG CONT_IMG_VER
|
|
||||||
ENV CONT_IMG_VER=${CONT_IMG_VER:-v1.0.0}
|
|
||||||
|
|
||||||
CMD ["nginx", "-g", "daemon off;"]
|
|
|
@ -1,41 +0,0 @@
|
||||||
# Для доставки сертификати в /etc/nginx/ssl/ использовать volume
|
|
||||||
#ARGS: SERVER_NAMES, CERT_FILE, CERT_KEY_FILE, CONT_IMG_VER
|
|
||||||
|
|
||||||
FROM nginx:stable-alpine
|
|
||||||
USER nginx
|
|
||||||
EXPOSE 80 443
|
|
||||||
|
|
||||||
#static site + http to https redirect server
|
|
||||||
COPY ./nginx_configs/nginx_static.conf /etc/nginx/nginx.conf
|
|
||||||
|
|
||||||
#set server name if arg not empty
|
|
||||||
ARG SERVER_NAMES
|
|
||||||
RUN if [ ! -z ${SERVER_NAMES} ]; then \
|
|
||||||
sed -i "s/server_name _;/server_name $SERVER_NAMES;/g" /etc/nginx/nginx.conf ;\
|
|
||||||
fi
|
|
||||||
|
|
||||||
#set certificate file name if arg not empty
|
|
||||||
ARG CERT_FILE
|
|
||||||
RUN if [ ! -z ${CERT_FILE} ]; then \
|
|
||||||
sed -i "s/ssl_certificate \/etc\/nginx\/ssl\/cert.pem;/ssl_certificate \/etc\/nginx\/ssl\/$CERT_FILE;/g" /etc/nginx/sites-enabled/static.conf ;\
|
|
||||||
fi
|
|
||||||
|
|
||||||
#set certificate key file name if arg not empty
|
|
||||||
ARG CERT_KEY_FILE
|
|
||||||
RUN if [ ! -z ${CERT_KEY_FILE} ]; then \
|
|
||||||
sed -i "s/ssl_certificate_key \/etc\/nginx\/ssl\/key.pem;/ssl_certificate_key \/etc\/nginx\/ssl\/$CERT_KEY_FILE;/g" /etc/nginx/sites-enabled/static.conf ;\
|
|
||||||
fi
|
|
||||||
|
|
||||||
#set container image version if arg not empty else 1.0.0
|
|
||||||
ARG CONT_IMG_VER
|
|
||||||
ENV CONT_IMG_VER=${CONT_IMG_VER:-v1.0.0}
|
|
||||||
|
|
||||||
#copy project files
|
|
||||||
COPY ./project /var/www/html/
|
|
||||||
|
|
||||||
CMD ["nginx", "-g", "daemon off;"]
|
|
||||||
|
|
||||||
#build string example
|
|
||||||
#docker build -f Dockerfiles/Dockerfile_staticsite -t static_site --no-cache --build-arg SERVER_NAMES=softsols.ru .
|
|
||||||
#check server_name in image
|
|
||||||
#docker run --rm -it -p 8084:443 -p 8083:80 static_site sh -c "cat /etc/nginx/sites-enabled/static.conf"
|
|
|
@ -1,8 +0,0 @@
|
||||||
services:
|
|
||||||
reverse:
|
|
||||||
image: nginx:stable-alpine
|
|
||||||
container_name: reverse
|
|
||||||
hostname: reverse
|
|
||||||
restart: always
|
|
||||||
extra_hosts:
|
|
||||||
- "host.docker.internal=host-gateway"
|
|
|
@ -1,5 +0,0 @@
|
||||||
networks:
|
|
||||||
services:
|
|
||||||
external: true
|
|
||||||
driver: bridge
|
|
||||||
name: services
|
|
40
control.sh
40
control.sh
|
@ -1,40 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
#exec 0<data
|
|
||||||
#exec 1>out.log
|
|
||||||
#exec 2>logs/error.log
|
|
||||||
|
|
||||||
compose_file="docker-compose.yaml"
|
|
||||||
merge_file="docker-compose.limits.yaml"
|
|
||||||
|
|
||||||
root_folder=`pwd`
|
|
||||||
|
|
||||||
menu="
|
|
||||||
[1] up dev reverse
|
|
||||||
[2] restart dev reverse
|
|
||||||
[3] down dev reverse
|
|
||||||
[4] ps dev reverse
|
|
||||||
"
|
|
||||||
input=""
|
|
||||||
while true
|
|
||||||
do
|
|
||||||
echo "$menu"
|
|
||||||
echo -n "Select function № on enter q to exit:\n"
|
|
||||||
read input
|
|
||||||
|
|
||||||
if [ $input = "q" ]
|
|
||||||
then
|
|
||||||
break;
|
|
||||||
fi
|
|
||||||
|
|
||||||
case "$input" in
|
|
||||||
1) docker compose -f $compose_file -f $merge_file up -d;break ;;
|
|
||||||
2) docker compose -f $compose_file -f $merge_file down && \
|
|
||||||
docker compose -f $compose_file -f $merge_file up -d;break ;;
|
|
||||||
3) docker compose -f $compose_file -f $merge_file down;break ;;
|
|
||||||
4) docker compose -f $compose_file -f $merge_file ps;break ;;
|
|
||||||
*) echo "key not found"
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
|
|
||||||
echo "end of the script"
|
|
|
@ -1,5 +0,0 @@
|
||||||
services:
|
|
||||||
reverse:
|
|
||||||
cpu_count: 2
|
|
||||||
mem_limit: 256m
|
|
||||||
mem_reservation: 256m
|
|
|
@ -1,38 +0,0 @@
|
||||||
name: reverse_dev
|
|
||||||
include:
|
|
||||||
- path:
|
|
||||||
- compose_extends/network.include.yaml
|
|
||||||
|
|
||||||
services:
|
|
||||||
reverse:
|
|
||||||
extends:
|
|
||||||
file: compose_extends/docker-compose.base.yaml
|
|
||||||
service: reverse
|
|
||||||
build:
|
|
||||||
context: .
|
|
||||||
dockerfile: Dockerfiles/Dockerfile_devserver
|
|
||||||
args:
|
|
||||||
CONT_IMG_VER: "v1.0.0"
|
|
||||||
pull_policy: missing
|
|
||||||
volumes:
|
|
||||||
- "./sites-enabled:/etc/nginx/sites-enabled:ro"
|
|
||||||
ports:
|
|
||||||
- 80:80
|
|
||||||
- 443:443
|
|
||||||
networks:
|
|
||||||
- services
|
|
||||||
secrets:
|
|
||||||
- source: softsols_cert
|
|
||||||
target: /etc/nginx/ssl/live/softsols.ru/fullchain.pem
|
|
||||||
- source: softsols_key
|
|
||||||
target: /etc/nginx/ssl/live/softsols.ru/privkey.pem
|
|
||||||
|
|
||||||
secrets:
|
|
||||||
softsols_cert:
|
|
||||||
name: softsols_cert
|
|
||||||
file: ./ssl/live/softsols.ru/fullchain.pem
|
|
||||||
external: false
|
|
||||||
softsols_key:
|
|
||||||
name: softsols_key
|
|
||||||
file: ./ssl/live/softsols.ru/privkey.pem
|
|
||||||
external: false
|
|
|
@ -0,0 +1,28 @@
|
||||||
|
services:
|
||||||
|
reverse:
|
||||||
|
image: nginx:stable-alpine
|
||||||
|
container_name: reverse
|
||||||
|
hostname: reverse
|
||||||
|
restart: always
|
||||||
|
extra_hosts:
|
||||||
|
- "host.docker.internal=host-gateway"
|
||||||
|
volumes:
|
||||||
|
- "./nginx.conf:/etc/nginx/nginx.conf:ro"
|
||||||
|
- "./locations:/etc/nginx/locations:ro"
|
||||||
|
- "./configuration:/etc/nginx/configuration:ro"
|
||||||
|
- "./sites-enabled:/etc/nginx/sites-enabled:ro"
|
||||||
|
- "./error-pages:/etc/nginx/error-pages/"
|
||||||
|
- "./resources:/var/www/html/resources"
|
||||||
|
- "./ssl:/etc/nginx/ssl"
|
||||||
|
- "./logs:/var/log/nginx/"
|
||||||
|
networks:
|
||||||
|
local_net: {}
|
||||||
|
ports:
|
||||||
|
- 80:80
|
||||||
|
- 443:443
|
||||||
|
|
||||||
|
networks:
|
||||||
|
local_net:
|
||||||
|
external: true
|
||||||
|
driver: bridge
|
||||||
|
name: services
|
|
@ -1,2 +0,0 @@
|
||||||
# Репозиторий с конфигурцаицями WEB-сервера Nginx
|
|
||||||
## Изначально Предназначен для использования в контейнере Docker
|
|
|
@ -7,10 +7,7 @@ server {
|
||||||
ssl_certificate /etc/nginx/ssl/live/softsols.ru/fullchain.pem;
|
ssl_certificate /etc/nginx/ssl/live/softsols.ru/fullchain.pem;
|
||||||
ssl_certificate_key /etc/nginx/ssl/live/softsols.ru/privkey.pem;
|
ssl_certificate_key /etc/nginx/ssl/live/softsols.ru/privkey.pem;
|
||||||
|
|
||||||
# Просматриваемый каталог по умолчанию, корень сайта
|
|
||||||
root /var/www/html;
|
root /var/www/html;
|
||||||
|
|
||||||
# Открываемый файл по умолчанию
|
|
||||||
index index.html index.htm;
|
index index.html index.htm;
|
||||||
|
|
||||||
include configuration/_includes.conf;
|
include configuration/_includes.conf;
|
||||||
|
|
|
@ -1,68 +0,0 @@
|
||||||
# ПРИМЕР конфигурации для статичного сайта
|
|
||||||
|
|
||||||
server {
|
|
||||||
#ipv4
|
|
||||||
listen 443 ssl;
|
|
||||||
|
|
||||||
#ipv6
|
|
||||||
listen [::]:443 ssl;
|
|
||||||
|
|
||||||
#Разрешить использование http2;
|
|
||||||
http2 on;
|
|
||||||
|
|
||||||
#Доменное имя, по совпадению будет использована эта конфигурация
|
|
||||||
server_name resources.softsols.ru;
|
|
||||||
|
|
||||||
#Имя файла сертификата (путь)
|
|
||||||
ssl_certificate /etc/nginx/ssl/live/softsols.ru/fullchain.pem;
|
|
||||||
|
|
||||||
#Имя файла приватного(закрытого) ключа сертификата (путь)
|
|
||||||
ssl_certificate_key /etc/nginx/ssl/live/softsols.ru/privkey.pem;
|
|
||||||
|
|
||||||
#Версии TLS, TLS v1.0 и 1.1 отключены по причине древности
|
|
||||||
ssl_protocols TLSv1.2 TLSv1.3;
|
|
||||||
|
|
||||||
#Набор шифров для установления защищенного соединения (Только сильные шифры, запрет шифров без аутентификации, запрет хеш-флгортима md5)
|
|
||||||
ssl_ciphers HIGH:!aNULL:!MD5;
|
|
||||||
|
|
||||||
#Использование только шифров, предлагаемых сервером
|
|
||||||
ssl_prefer_server_ciphers on;
|
|
||||||
|
|
||||||
#Внешние зависимости
|
|
||||||
include configuration/_includes.conf;
|
|
||||||
|
|
||||||
#Основной location для сайта
|
|
||||||
#Все запросы, отправленные на корневой url сайта
|
|
||||||
location / {
|
|
||||||
|
|
||||||
#Корневой каталог
|
|
||||||
root /var/www/html/resources;
|
|
||||||
|
|
||||||
#Индексный файл, используется по умлочанию
|
|
||||||
index index.html;
|
|
||||||
|
|
||||||
#Логика обработки файлов и запросов
|
|
||||||
#Открывать файл(или каталог) из uri и, если нет, вернуть 404
|
|
||||||
#Предотвращает ситуацию, когда сервер может случайно передать что-то нежелательное, если запрашиваемый ресурс не существует
|
|
||||||
try_files $uri $uri/ =404;
|
|
||||||
}
|
|
||||||
|
|
||||||
#! Опционально
|
|
||||||
#кэширования для статических файлов(картинок, скриптов и т.д.)
|
|
||||||
#Бляха-муха, поясню:
|
|
||||||
# ~* - регистронезависимая регулярка
|
|
||||||
# \.(jpg|jpeg|png|gif|ico|css|js|svg)$ будет пременен ко всем файлам с соответствующими расширениями, например *.jpg$
|
|
||||||
#т.е. location нацелен на обработку статических данных, которые можно кэшировать
|
|
||||||
location ~* \.(jpg|jpeg|png|gif|ico|css|js|svg)$ {
|
|
||||||
#Сообщить клиенту (браузеру, прокси), что данные можно держать в кэше 30 дней
|
|
||||||
expires 30d;
|
|
||||||
#Добавляет возвращаемый заголовок Cache-Control управления кэшированием
|
|
||||||
#public - могут кешировать как браузеры, так и промежуточные прокси-серверы
|
|
||||||
#no-transform (промежуточные прокси-сервера и браузеры) не должны изменять содержимое файла (например, не должны перекодировать изображения)
|
|
||||||
#более гибкий и современный, чем Expires, и используется для более точного контроля кэширования.
|
|
||||||
add_header Cache-Control "public, no-transform";
|
|
||||||
#! Опционально
|
|
||||||
#Отключает ведение логов доступа для этих файлов.
|
|
||||||
access_log off;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,7 +1,7 @@
|
||||||
upstream rr_backend {
|
# Использовать вместе с конфигурациями обратного прокси
|
||||||
server 127.0.0.1:8080 weight=5 max_fails=3 fail_timeout=60s;
|
|
||||||
server 10.9.0.9:80 weight=2 max_fails=3 fail_timeout=60s;
|
#Round Robin - запросы чередуются между серверами
|
||||||
server google.com weight=3 max_fails=3 fail_timeout=60s;
|
|
||||||
server ya.ru backup;
|
#Least Connections - запросы направятся к серверу с наименьшим числом подключений
|
||||||
keepalive 8;
|
|
||||||
}
|
#IP Hash - запросы одного клиента всегда направляются на один сервер
|
|
@ -1,75 +0,0 @@
|
||||||
# Использовать вместе с конфигурациями обратного прокси
|
|
||||||
|
|
||||||
#Round Robin - запросы чередуются между серверами
|
|
||||||
upstream rr_backend {
|
|
||||||
server 127.0.0.1:8080 weight=5 max_fails=3 fail_timeout=60s;
|
|
||||||
server 10.9.0.9:80 weight=2 max_fails=3 fail_timeout=60s;
|
|
||||||
server google.com weight=3 max_fails=3 fail_timeout=60s;
|
|
||||||
server ya.ru backup;
|
|
||||||
keepalive 8;
|
|
||||||
|
|
||||||
#server [hostname, ip] [вес сервера] [максимальное кол-во неудачных подключений] [описано ниже]
|
|
||||||
#Weight. Чем больше вес, тем больше трафика будет направлено серверу
|
|
||||||
#fail_timeout. время, в течение которого должно произойти количество неудачных попыток(max_fails), чтобы сервер был помечен как недоступный
|
|
||||||
#keepalive. максимальное количество открытых подключений к серверам в группе
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
#Least Connections - запросы направятся к серверу с наименьшим числом подключений
|
|
||||||
upstream lc_backend {
|
|
||||||
least_conn;
|
|
||||||
server 127.0.0.1:8080;
|
|
||||||
server 10.9.0.9:80;
|
|
||||||
server google.com;
|
|
||||||
server ya.ru backup;
|
|
||||||
keepalive 8;
|
|
||||||
}
|
|
||||||
|
|
||||||
#IP Hash - запросы одного ip клиента всегда направляются на один сервер
|
|
||||||
upstream hi_backend {
|
|
||||||
ip_hash;
|
|
||||||
server backend1.example.com;
|
|
||||||
server backend2.example.com;
|
|
||||||
server backend3.example.com;
|
|
||||||
}
|
|
||||||
|
|
||||||
#!!! Сторонний модуль ngx_http_upstream_hash_module
|
|
||||||
#URL Hash - запросы одного url клиента всегда направляются на один сервер
|
|
||||||
upstream hu_backend {
|
|
||||||
hash $request_uri consistent; # Хешируем по URI запроса
|
|
||||||
server backend1.example.com;
|
|
||||||
server backend2.example.com;
|
|
||||||
server backend3.example.com;
|
|
||||||
}
|
|
||||||
|
|
||||||
#!!! Сторонний модуль nginx-sticky-module
|
|
||||||
#Sticky Sessions - привязка сессий
|
|
||||||
upstream ss_backend {
|
|
||||||
sticky;
|
|
||||||
server backend1.example.com;
|
|
||||||
server backend2.example.com;
|
|
||||||
server backend3.example.com;
|
|
||||||
}
|
|
||||||
|
|
||||||
#пример блока server Sticky Sessions без модулей
|
|
||||||
http {
|
|
||||||
upstream backend {
|
|
||||||
server backend1.example.com;
|
|
||||||
server backend2.example.com;
|
|
||||||
server backend3.example.com;
|
|
||||||
}
|
|
||||||
|
|
||||||
server {
|
|
||||||
listen 80;
|
|
||||||
|
|
||||||
location / {
|
|
||||||
set $backend "backend"; # Переменная для прокси
|
|
||||||
if ($cookie_route) {
|
|
||||||
set $backend "backend_$cookie_route";
|
|
||||||
}
|
|
||||||
|
|
||||||
proxy_pass http://$backend;
|
|
||||||
add_header Set-Cookie "route=$backend; Path=/";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in New Issue