🌐 asc web
Веб-сервер ноды: nginx как системный пакет или Docker-контейнер, сайты, которые проксируют домены на приложения или адреса, сертификаты Let's Encrypt, выпускаемые демоном, и реальные IP за Cloudflare. Как конфигурация генерируется, проверяется и применяется — на странице модуля 🌐 webserver.
Использование
asc web <действие> [аргументы]Веб-сервером управляет root — выполняйте команды через sudo. Без запущенного демона они работают in-process.
status
asc web statusПоказать движок и его версию, режим установки, работает ли nginx, число сайтов, время последнего применения и последнюю ошибку.
install
asc web install [--mode system|docker]Установить nginx и применить конфигурацию.
--mode system(по умолчанию) — пакет nginx.org (или дистрибутива, если nginx.org не собирает под этот релиз) под systemd. Уже установленный nginx подхватывается: егоnginx.confсохраняется вnginx.conf.asc-orig, аconf.d/sites-enabledоператора продолжают работать.--mode docker— контейнерasc-webserverизnginx:stable-alpineв сети хоста. Порты 80 и 443 должны быть свободны.
sudo asc web install --mode systemuninstall
asc web uninstall [--purge]Удалить веб-сервер. Подхваченный nginx получает исходную конфигурацию обратно и остаётся установленным. --purge удаляет ещё и сгенерированную конфигурацию, список сайтов и все сертификаты.
test
asc web testОтрендерить то, что было бы применено сейчас, и прогнать nginx -t, ничего не применяя. Если конфигурация отклонена — код выхода 1 и вывод nginx.
reload
asc web reloadПерерисовать конфигурацию, проверить её nginx -t и перезагрузить nginx.
site list
asc web site listСписок сайтов: имена, цель, состояние и срок TLS, состояние применения и владелец (local или platform).
site add
asc web site add <имя>... (--app <id> --port <порт> | --to <host:port>) [флаги...]Добавить сайт или заменить сайт с тем же id.
--app <id>+--port <порт>— проксировать на установленное приложение; порт — порт контейнера, хост-порт демон находит сам.--to <host:port>— проксировать на произвольный адрес; повторите флаг, чтобы балансировать между несколькими серверами.--balance round-robin|least-conn|ip-hash— как распределять запросы между серверами--to.--health off|tcp|http,--health-path <путь>— активные проверки здоровья: упавший сервер выходит из ротации, пока снова не начнёт отвечать.--tls none|letsencrypt— HTTPS с сертификатом, который демон выпускает и продлевает (по умолчаниюnone). Имя должно указывать на эту ноду — демон проверяет это до заказа.--cloudflare— домен проксирует Cloudflare: передавать приложению реальные IP посетителей.--no-websocket— не пропускать WebSocket.--max-body <размер>— максимальный размер тела запроса в синтаксисе nginx (64m,1g).--id <id>— id сайта (по умолчанию — первое имя).
sudo asc web site add grafana.example.com --app grafana --port 3000 --tls letsencrypt
sudo asc web site add api.example.com --to 127.0.0.1:8080 --cloudflaresite show
asc web site show <id>Показать сайт со статусом, включая последнюю ошибку nginx -t или Let's Encrypt.
site remove
asc web site remove <id>Удалить сайт.
site renew
asc web site renew <id>Запросить сертификат Let's Encrypt сейчас, игнорируя паузу между попытками, и показать получившееся состояние TLS.
См. также
- 🌐 webserver — модуль подробно
- ⏰ schedule · 💾 backup