Репроксирование с модификацией страниц.
nginx
redis
ssdb
php81-fpm
php81-redis
php81-cli
php81-ctype
php81-dom
php81-bcmath
php81-session
Вся конфигурация для сайтов описывается в файле .config.json
Файл global.json
не изменяется.
app/config/global.json
- Глобальная конфигурация
app/config/hosts.json
- Конфигурация сайтов
app/config/access.json
- Список пользователей для редактирования конфигурации hosts.json
Глобальные настройки наследуются с пользовательскими. Если в пользовательских настройках не будет задан какой-либо параметр, он будет наследован из глобальной конфигурации.
"enabled": false
Параметр используется для вкл/выкл различного функционала.
"storage": {
"type": "disk",
"redis": {
"host": "127.0.0.1",
"port": 6379
},
"ssdb": {
"host": "127.0.0.1",
"port": 8888
}
}
type
- disk, memory
Опция устанавливает где хранить статичные элементы сайтов в cache
Тип disk
хранение в ssdb
Тип memory
хранение в redis
Если весь кэш не помещается в память, рекомендуется установить тип
disk
"hosts": []
Описание конфигурации для каждого сайта отдельно
Если некоторые параметры не заданы в настройках сайта, они наследуются из глобальной конфигурации
"forceSSL": true
Принудительная установка HTTPS урлов.
"styles": "relative"
relative
- относительный путь css
absolute
- абсолютный путь css
"scripts": "relative"
relative
- относительный путь js
absolute
- абсолютный путь js
"images": "relative"
relative
- относительный путь img
absolute
- абсолютный путь img
"fonts": "relative"
relative
- относительный путь font
absolute
- абсолютный путь font
"icons": "relative"
relative
- относительный путь icons
absolute
- абсолютный путь icons
"salt": "wzvvHBWVYQLnX5jFqDmGWPf6om1Hsx8g"
Используется для relative
шифрует ссылки
"lang": "ru"
Локализация для внутренних и внешних сообщений приложения
"type": "Plain"
Тип конструктора
Plain - пустой модуль
"editor": {
"enabled": true
}
Редактирование файла конфигурации hosts.json
Используется совместно с access.json Доступ к редактированию
hosts.json
осуществляется посредством добавления параметра?editor
в урл устроку сайта https://sitename.tld/?editor
"site": "https://site.tld",
"site": [
"https://site.tld",
"https://anothersite.tld"
]
Имя сайта с протоколом (внешнее)
"project": "https://project.tld"
Имя сайта с протоколом (внутреннее)
"cache": {
"enabled": false,
"expire": 1,
"stats": true
}
Все элементы сайта можно закешировать, чтобы ускорить процесс рендера страницы. Кеширование элементов: html, css, js, font, ico.
expire
- Время жизни в минутах.
stats
- Отображать в разметке комментарий с временем загрузки страницы.
https://sitename.tld/?cleaner
- получение браузерного идентификатора для очистки кеша.
После получения идентификатора браузером, происходит перенаправление на главную страницу сайта.
Сверху слева появится иконка перезагрузки ⟳ при нажатии, произойдёт очистка
кеша и перезагрузка страницы.
"compress": {
"enabled": true
}
Включение HTML компрессии
"privoxy": {
"enabled": false,
"host": "127.0.0.1",
"port": 8118
}
Запросы к внутреннему сайту через прокси
host
- имя хоста
port
- порт хоста
"metrics": {
"enabled": true,
"ga": "GTM-123123",
"ya": "93467514"
}
Счётчики Google Analytics & Yandex Metrika
ga
- идентификатор Google Analytics
ya
- идентификатор Yandex Metrika
"mail": {
"enabled": true,
"subject": "New submission",
"from":"[email protected]",
"success": "Сообщение успешно отправлено!",
"error": "Ошибка!",
"to": [
"[email protected]",
"[email protected]"
]
}
Отправка почтовых сообщений
subject
- Заголовок сообщения
from
- Ящик отправителя
to
- Ящики для приёма
success
- Сообщение об успешной отправке
error
- Сообщение об ошибке
"favicon": {
"enabled": true
}
Замена favicon на сайте
Необходимо добавить файл favicon в директорию app/favicon
. Имя файла должно совпадать с именем основного домена sitename.tld.ico
"inject": {
"enabled": true,
"header": true,
"footer": true
}
Необходимо добавить файлы в директорию app/inject
.
header
- Инъекция блока html с произвольным кодом в шапку разметки </head>
Имя файла должно совпадать с именем основного домена sitename.tld-header.html
footer
- Инъекция блока html с произвольным кодом в шапку разметки вниз </body>
Имя файла должно совпадать с именем основного домена sitename.tld-footer.html
"hosts": [
{
"compress": {
"enabled": true
},
"type": "Plain",
"site": [
"https://sitename.tld",
"https://anothersitename.tld"
],
"project": "https://project123-constructor.tld",
"privoxy": {
"enabled": false
},
"mail": {
"enabled": true,
"subject": "Заявка с сайта",
"from":"[email protected]",
"to": [
"[email protected]",
"[email protected]"
]
},
"favicon": {
"enabled": true
},
"metrics": {
"enabled": true,
"ga": "GTM-123123",
"ya": "123456789"
},
"inject": {
"enabled": true,
"header": true
}
}
]