Skip to content

🌐 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 system

uninstall ​

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 --cloudflare

site 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.

См. также ​

Распространяется по лицензии MIT.