Структура и схема
Общая схема
В контейнере http сервер выступает в роли прокси сервера, который перенаправляет запросы на встроенный ASP.NET Core веб сервер Kestrel, который в свою очередь уже непосредственно связан с приложением. При разворачивании приложения (без указания порта Kestrel) веб серверу Kestrel назначается порт, равный порту http Apache с добавлением цифры от 0 до 9 (исключение - порт 443
, для прибавления берется значение 5443
).
Пример: Для порта http сервера Apache 443, для приложения 1 будет назначен порт 54430
, приложения 2 - 54431
и так далее по порядку до 54439
.
Таким образом, без указания порта Kestrel можно развернуть до 100 приложений. Дальнейшее развертывание 101 приложения в рамкам текущего контейнера по 443 порту http сервера Apache или Nginx уже потребует указать порт вручную. Если установка производится без web сервера, то приложения доступны только по протоколу http и по портам Kestrel.
Схема развертывания
Структура каталога управления
|-- /conf.ks
|-- /vhost.ks
|-- apache2.conf
|-- ports_ks.conf
|-- sslks.conf
|-- vhost_ks.conf
|-- /ctl
|-- /app
|-- /sys
|-- /tar_files
|-- app_start.sh
|-- app_stop.sh
|-- readme.txt
|-- ws_*.sh
|-- /log
|-- *.log
|-- /ssl
|-- wsks-19.08_demo.crt
|-- wsks-19.08_demo.key
|-- /template
|-- 5xxx_app.sh.t
|-- 5xxx_ks.conf.t
|-- *appsettings.Production.json.t
|-- /www
|-- /html
|-- index.html
|-- COPYRIGHT
|-- dks_version
Наименование | Описание |
---|---|
/conf.ks | каталог конфигурационных файлов для http сервера |
/ctl | каталог с файлами управления .NET Core приложениями |
/app | каталог модулей запуска .NET Core приложений |
/sys | каталог системных модулей |
/tar_files | каталог для архивов исходного кода для разворачивания .NET Core приложений |
app_start.sh | bash скрипт запуска .NET Core приложений |
app_stop.sh | bash скрипт остановки .NET Core приложений |
readme.txt | текущий файл описания |
ws_*.sh | bash скрипты управления |
/log | каталог логирования работы http сервера |
/ssl | самоподписанные демо сертификаты для ssl соединения |
/template | каталог шаблонов файлов конфигурации и управления .NET Core приложениями |
/www | каталог для развертывания рабочих каталогов .NET Core приложений |
COPYRIGHT | файл лицензии |
dks_version | файл версии установочного пакета |
Структура каталога данных
Каталог для хранения каких-либо изменяемых данных приложений:
/var/lib/wsks-6.0.9_443
Файл в структуре systemd, обеспечивающий автоматический запуск контейнера и приложений после перезапуска хоста:
/lib/systemd/system/wsks-6.0.9_443.service
Структура смонтированных каталогов http сервера Apache и Nginx
Поставка http серверов в контейнере осуществляется с базовыми настройками, но все конфигурационные файлы и файлы логов работы серверов смонтированы на хост, что позволяет дополнительно их настраивать и конфигурировать.
/opt/wsks-6.0.9_443
|-- /conf.ks
|-- /vhost.ks
|-- 54430_ks.conf
|-- ............
|-- apache2.conf
|-- ports_ks.conf
|-- sslks.conf
|-- vhost_ks.conf
|-- /log
|-- error.log
|-- error_access.log
|-- /ssl
|-- wsks-19.08_demo.crt
|-- wsks-19.08_demo.key
/opt/wsks-6.0.9_443
|-- /conf.ks
|-- /vhost.ks
|-- 54430_ks.conf
|-- ............
|-- nginx.conf
|-- nginx_server.conf
|-- sslks.conf
|-- /log
|-- error.log
|-- error_access.log
|-- /ssl
|-- wsks-19.08_demo.crt
|-- wsks-19.08_demo.key
Наименование | Описание |
---|---|
conf.ks | Каталог конфигурационных файлов для http сервера - путь в контейнере /etc/apache2/conf.ks - путь в контейнере Nginx /etc/nginx/conf.ks |
54430_ks.conf | Описание виртуального хоста конечного .Net Core приложения |
apache2.conf nginx.conf | Главный файл конфигурации - запуск в контейнере Apache : /usr/sbin/apache2ctl -f /etc/apache2/conf.ks/apache2.conf -k start - запуск в контейнере Nginx: /usr/sbin/nginx -c /etc/nginx/conf.ks/nginx.conf |
ports_ks.conf | Конфигурация портов |
sslks.conf | Конфигурация ssl соединений (https протокол) |
vhost_ks.conf | Конфигурация виртуальных хостов |
nginx_server.conf | Файл конфигурации сервера и виртуальных хостов |
log | Каталог логов работы - путь в контейнере для Apache /var/log/apache2/ - путь в контейнере Nginx /var/log/nginx/ |
ssl | Каталог с демо сертификатами - путь в контейнере для Apache /etc/apache2/ssl/ - путь в контейнере Nginx /etc/nginx/ssl/ |
Структура смонтированных каталогов модулей мониторинга
/opt/wsks-6.0.9_443
|-- /conf.etc
|-- /prometheus
|-- /sd_files
|-- *_prometheus.json
|-- prometheus.yml
|-- /log
|-- prometheus.log
/var/lib/wsks-6.0.9_443
|-- /prometheus
Наименование | Описание |
---|---|
conf.etc | Каталог конфигурационных файлов модулей мониторинга |
*_prometheus.json | Файлы конфигураций "работ" prometheus |
prometheus.yml | Главный файл конфигурации prometheus |
log | Каталог логов работы (путь в контейнере /var/log/apache2/ или /var/log/nginx/ ) |
prometheus | Каталог данных prometheus |